diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
commit | a175314c3e5827eb193872241446f2f8f5c9d33c (patch) | |
tree | cd3d60ca99ae00829c52a6ca79150a5b6e62528b /sql/yy_mariadb.cc | |
parent | Initial commit. (diff) | |
download | mariadb-10.5-upstream/1%10.5.12.tar.xz mariadb-10.5-upstream/1%10.5.12.zip |
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | sql/yy_mariadb.cc | 55179 |
1 files changed, 55179 insertions, 0 deletions
diff --git a/sql/yy_mariadb.cc b/sql/yy_mariadb.cc new file mode 100644 index 00000000..1416c9d9 --- /dev/null +++ b/sql/yy_mariadb.cc @@ -0,0 +1,55179 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.0.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "/home/buildbot/git/sql/myskel.m4" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + +/* Substitute the variable and function names. */ +#define yyparse MYSQLparse +#define yylex MYSQLlex +#define yyerror MYSQLerror +#define yydebug MYSQLdebug +#define yynerrs MYSQLnerrs + + +/* Copy the first part of user declarations. */ +#line 25 "/home/buildbot/git/sql/sql_yacc.yy" + + +#define YYLIP (& thd->m_parser_state->m_lip) +#define YYPS (& thd->m_parser_state->m_yacc) +#define YYCSCL (thd->variables.character_set_client) + +#define MYSQL_YACC +#define YYINITDEPTH 100 +#define YYMAXDEPTH 3200 /* Because of 64K stack */ +#define Lex (thd->lex) + +#define Select Lex->current_select +#include "mariadb.h" +#include "sql_priv.h" +#include "sql_parse.h" /* comp_*_creator */ +#include "sql_table.h" /* primary_key_name */ +#include "sql_partition.h" /* partition_info, HASH_PARTITION */ +#include "sql_class.h" /* Key_part_spec, enum_filetype, Diag_condition_item_name */ +#include "slave.h" +#include "lex_symbol.h" +#include "item_create.h" +#include "sp_head.h" +#include "sp_rcontext.h" +#include "sp.h" +#include "sql_show.h" +#include "sql_alter.h" // Sql_cmd_alter_table* +#include "sql_truncate.h" // Sql_cmd_truncate_table +#include "sql_admin.h" // Sql_cmd_analyze/Check..._table +#include "sql_partition_admin.h" // Sql_cmd_alter_table_*_part. +#include "sql_handler.h" // Sql_cmd_handler_* +#include "sql_signal.h" +#include "sql_get_diagnostics.h" // Sql_cmd_get_diagnostics +#include "sql_cte.h" +#include "sql_window.h" +#include "item_windowfunc.h" +#include "event_parse_data.h" +#include "create_options.h" +#include <myisam.h> +#include <myisammrg.h> +#include "keycaches.h" +#include "set_var.h" +#include "rpl_mi.h" +#include "lex_token.h" +#include "sql_lex.h" +#include "sql_sequence.h" +#include "my_base.h" +#include "sql_type_json.h" + +/* this is to get the bison compilation windows warnings out */ +#ifdef _MSC_VER +/* warning C4065: switch statement contains 'default' but no 'case' labels */ +#pragma warning (disable : 4065) +#endif + +int yylex(void *yylval, void *yythd); + +#define yyoverflow(A,B,C,D,E,F) \ + { \ + size_t val= *(F); \ + if (unlikely(my_yyoverflow((B), (D), &val))) \ + { \ + yyerror(thd, (char*) (A)); \ + return 2; \ + } \ + else \ + { \ + *(F)= (YYSIZE_T)val; \ + } \ + } + +#define MYSQL_YYABORT \ + do \ + { \ + LEX::cleanup_lex_after_parse_error(thd); \ + YYABORT; \ + } while (0) + +#define MYSQL_YYABORT_UNLESS(A) \ + if (unlikely(!(A))) \ + { \ + thd->parse_error(); \ + MYSQL_YYABORT; \ + } + +#define my_yyabort_error(A) \ + do { my_error A; MYSQL_YYABORT; } while(0) + +#ifndef DBUG_OFF +#define YYDEBUG 1 +#else +#define YYDEBUG 0 +#endif + + +static Item* escape(THD *thd) +{ + thd->lex->escape_used= false; + const char *esc= thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES ? "" : "\\"; + return new (thd->mem_root) Item_string_ascii(thd, esc, MY_TEST(esc[0])); +} + + +/** + @brief Bison callback to report a syntax/OOM error + + This function is invoked by the bison-generated parser + when a syntax error, a parse error or an out-of-memory + condition occurs. This function is not invoked when the + parser is requested to abort by semantic action code + by means of YYABORT or YYACCEPT macros. This is why these + macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT + instead). + + The parser will abort immediately after invoking this callback. + + This function is not for use in semantic actions and is internal to + the parser, as it performs some pre-return cleanup. + In semantic actions, please use thd->parse_error() or my_error to + push an error into the error stack and MYSQL_YYABORT + to abort from the parser. +*/ + +static void yyerror(THD *thd, const char *s) +{ + /* + Restore the original LEX if it was replaced when parsing + a stored procedure. We must ensure that a parsing error + does not leave any side effects in the THD. + */ + LEX::cleanup_lex_after_parse_error(thd); + + /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */ + if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0) + s= ER_THD(thd, ER_SYNTAX_ERROR); + thd->parse_error(s, 0); +} + + +#ifndef DBUG_OFF +#define __CONCAT_UNDERSCORED(x,y) x ## _ ## y +#define _CONCAT_UNDERSCORED(x,y) __CONCAT_UNDERSCORED(x,y) +void _CONCAT_UNDERSCORED(turn_parser_debug_on,yyparse)() +{ + /* + MYSQLdebug is in sql/yy_*.cc, in bison generated code. + Turning this option on is **VERY** verbose, and should be + used when investigating a syntax error problem only. + + The syntax to run with bison traces is as follows : + - Starting a server manually : + mysqld --debug-dbug="d,parser_debug" ... + - Running a test : + mysql-test-run.pl --mysqld="--debug-dbug=d,parser_debug" ... + + The result will be in the process stderr (var/log/master.err) + */ + +#ifndef _AIX + extern int yydebug; +#else + static int yydebug; +#endif + yydebug= 1; +} +#endif + + +#define bincmp_collation(X,Y) \ + do \ + { \ + if (unlikely(Lex->set_bincmp(X,Y))) \ + MYSQL_YYABORT; \ + } while(0) + + +#line 248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "yy_mariadb.hh". */ +#ifndef YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_YY_MARIADB_HH_INCLUDED +# define YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_YY_MARIADB_HH_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int MYSQLdebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + ABORT_SYM = 258, + IMPOSSIBLE_ACTION = 259, + END_OF_INPUT = 260, + COLON_ORACLE_SYM = 261, + PARAM_MARKER = 262, + FOR_SYSTEM_TIME_SYM = 263, + LEFT_PAREN_ALT = 264, + LEFT_PAREN_WITH = 265, + LEFT_PAREN_LIKE = 266, + ORACLE_CONCAT_SYM = 267, + PERCENT_ORACLE_SYM = 268, + WITH_CUBE_SYM = 269, + WITH_ROLLUP_SYM = 270, + WITH_SYSTEM_SYM = 271, + IDENT = 272, + IDENT_QUOTED = 273, + LEX_HOSTNAME = 274, + UNDERSCORE_CHARSET = 275, + BIN_NUM = 276, + DECIMAL_NUM = 277, + FLOAT_NUM = 278, + HEX_NUM = 279, + HEX_STRING = 280, + LONG_NUM = 281, + NCHAR_STRING = 282, + NUM = 283, + TEXT_STRING = 284, + ULONGLONG_NUM = 285, + AND_AND_SYM = 286, + DOT_DOT_SYM = 287, + EQUAL_SYM = 288, + GE = 289, + LE = 290, + MYSQL_CONCAT_SYM = 291, + NE = 292, + NOT2_SYM = 293, + OR2_SYM = 294, + SET_VAR = 295, + SHIFT_LEFT = 296, + SHIFT_RIGHT = 297, + ACCESSIBLE_SYM = 298, + ADD = 299, + ALL = 300, + ALTER = 301, + ANALYZE_SYM = 302, + AND_SYM = 303, + ASC = 304, + ASENSITIVE_SYM = 305, + AS = 306, + BEFORE_SYM = 307, + BETWEEN_SYM = 308, + BIGINT = 309, + BINARY = 310, + BIT_AND = 311, + BIT_OR = 312, + BIT_XOR = 313, + BLOB_MARIADB_SYM = 314, + BLOB_ORACLE_SYM = 315, + BODY_ORACLE_SYM = 316, + BOTH = 317, + BY = 318, + CALL_SYM = 319, + CASCADE = 320, + CASE_SYM = 321, + CAST_SYM = 322, + CHANGE = 323, + CHAR_SYM = 324, + CHECK_SYM = 325, + COLLATE_SYM = 326, + CONDITION_SYM = 327, + CONSTRAINT = 328, + CONTINUE_MARIADB_SYM = 329, + CONTINUE_ORACLE_SYM = 330, + CONVERT_SYM = 331, + COUNT_SYM = 332, + CREATE = 333, + CROSS = 334, + CUME_DIST_SYM = 335, + CURDATE = 336, + CURRENT_ROLE = 337, + CURRENT_USER = 338, + CURSOR_SYM = 339, + CURTIME = 340, + DATABASE = 341, + DATABASES = 342, + DATE_ADD_INTERVAL = 343, + DATE_SUB_INTERVAL = 344, + DAY_HOUR_SYM = 345, + DAY_MICROSECOND_SYM = 346, + DAY_MINUTE_SYM = 347, + DAY_SECOND_SYM = 348, + DECIMAL_SYM = 349, + DECLARE_MARIADB_SYM = 350, + DECLARE_ORACLE_SYM = 351, + DEFAULT = 352, + DELETE_DOMAIN_ID_SYM = 353, + DELETE_SYM = 354, + DENSE_RANK_SYM = 355, + DESCRIBE = 356, + DESC = 357, + DETERMINISTIC_SYM = 358, + DISTINCT = 359, + DIV_SYM = 360, + DO_DOMAIN_IDS_SYM = 361, + DOUBLE_SYM = 362, + DROP = 363, + DUAL_SYM = 364, + EACH_SYM = 365, + ELSEIF_MARIADB_SYM = 366, + ELSE = 367, + ELSIF_ORACLE_SYM = 368, + ENCLOSED = 369, + ESCAPED = 370, + EXCEPT_SYM = 371, + EXISTS = 372, + EXTRACT_SYM = 373, + FALSE_SYM = 374, + FETCH_SYM = 375, + FIRST_VALUE_SYM = 376, + FLOAT_SYM = 377, + FOREIGN = 378, + FOR_SYM = 379, + FROM = 380, + FULLTEXT_SYM = 381, + GOTO_ORACLE_SYM = 382, + GRANT = 383, + GROUP_CONCAT_SYM = 384, + JSON_ARRAYAGG_SYM = 385, + JSON_OBJECTAGG_SYM = 386, + GROUP_SYM = 387, + HAVING = 388, + HOUR_MICROSECOND_SYM = 389, + HOUR_MINUTE_SYM = 390, + HOUR_SECOND_SYM = 391, + IF_SYM = 392, + IGNORE_DOMAIN_IDS_SYM = 393, + IGNORE_SYM = 394, + INDEX_SYM = 395, + INFILE = 396, + INNER_SYM = 397, + INOUT_SYM = 398, + INSENSITIVE_SYM = 399, + INSERT = 400, + IN_SYM = 401, + INTERSECT_SYM = 402, + INTERVAL_SYM = 403, + INTO = 404, + INT_SYM = 405, + IS = 406, + ITERATE_SYM = 407, + JOIN_SYM = 408, + KEYS = 409, + KEY_SYM = 410, + KILL_SYM = 411, + LAG_SYM = 412, + LEADING = 413, + LEAD_SYM = 414, + LEAVE_SYM = 415, + LEFT = 416, + LIKE = 417, + LIMIT = 418, + LINEAR_SYM = 419, + LINES = 420, + LOAD = 421, + LOCATOR_SYM = 422, + LOCK_SYM = 423, + LONGBLOB = 424, + LONG_SYM = 425, + LONGTEXT = 426, + LOOP_SYM = 427, + LOW_PRIORITY = 428, + MASTER_SSL_VERIFY_SERVER_CERT_SYM = 429, + MATCH = 430, + MAX_SYM = 431, + MAXVALUE_SYM = 432, + MEDIAN_SYM = 433, + MEDIUMBLOB = 434, + MEDIUMINT = 435, + MEDIUMTEXT = 436, + MIN_SYM = 437, + MINUTE_MICROSECOND_SYM = 438, + MINUTE_SECOND_SYM = 439, + MODIFIES_SYM = 440, + MOD_SYM = 441, + NATURAL = 442, + NEG = 443, + NOT_SYM = 444, + NO_WRITE_TO_BINLOG = 445, + NOW_SYM = 446, + NTH_VALUE_SYM = 447, + NTILE_SYM = 448, + NULL_SYM = 449, + NUMERIC_SYM = 450, + ON = 451, + OPTIMIZE = 452, + OPTIONALLY = 453, + ORDER_SYM = 454, + OR_SYM = 455, + OTHERS_ORACLE_SYM = 456, + OUTER = 457, + OUTFILE = 458, + OUT_SYM = 459, + OVER_SYM = 460, + PACKAGE_ORACLE_SYM = 461, + PAGE_CHECKSUM_SYM = 462, + PARSE_VCOL_EXPR_SYM = 463, + PARTITION_SYM = 464, + PERCENTILE_CONT_SYM = 465, + PERCENTILE_DISC_SYM = 466, + PERCENT_RANK_SYM = 467, + PORTION_SYM = 468, + POSITION_SYM = 469, + PRECISION = 470, + PRIMARY_SYM = 471, + PROCEDURE_SYM = 472, + PURGE = 473, + RAISE_ORACLE_SYM = 474, + RANGE_SYM = 475, + RANK_SYM = 476, + READS_SYM = 477, + READ_SYM = 478, + READ_WRITE_SYM = 479, + REAL = 480, + RECURSIVE_SYM = 481, + REFERENCES = 482, + REF_SYSTEM_ID_SYM = 483, + REGEXP = 484, + RELEASE_SYM = 485, + RENAME = 486, + REPEAT_SYM = 487, + REPLACE = 488, + REQUIRE_SYM = 489, + RESIGNAL_SYM = 490, + RESTRICT = 491, + RETURNING_SYM = 492, + RETURN_MARIADB_SYM = 493, + RETURN_ORACLE_SYM = 494, + REVOKE = 495, + RIGHT = 496, + ROW_NUMBER_SYM = 497, + ROWS_SYM = 498, + ROWTYPE_ORACLE_SYM = 499, + SECOND_MICROSECOND_SYM = 500, + SELECT_SYM = 501, + SENSITIVE_SYM = 502, + SEPARATOR_SYM = 503, + SERVER_OPTIONS = 504, + SET = 505, + SHOW = 506, + SIGNAL_SYM = 507, + SMALLINT = 508, + SPATIAL_SYM = 509, + SPECIFIC_SYM = 510, + SQL_BIG_RESULT = 511, + SQLEXCEPTION_SYM = 512, + SQL_SMALL_RESULT = 513, + SQLSTATE_SYM = 514, + SQL_SYM = 515, + SQLWARNING_SYM = 516, + SSL_SYM = 517, + STARTING = 518, + STATS_AUTO_RECALC_SYM = 519, + STATS_PERSISTENT_SYM = 520, + STATS_SAMPLE_PAGES_SYM = 521, + STDDEV_SAMP_SYM = 522, + STD_SYM = 523, + STRAIGHT_JOIN = 524, + SUBSTRING = 525, + SUM_SYM = 526, + SYSDATE = 527, + TABLE_REF_PRIORITY = 528, + TABLE_SYM = 529, + TERMINATED = 530, + THEN_SYM = 531, + TINYBLOB = 532, + TINYINT = 533, + TINYTEXT = 534, + TO_SYM = 535, + TRAILING = 536, + TRIGGER_SYM = 537, + TRIM = 538, + TRUE_SYM = 539, + UNDO_SYM = 540, + UNION_SYM = 541, + UNIQUE_SYM = 542, + UNLOCK_SYM = 543, + UNSIGNED = 544, + UPDATE_SYM = 545, + USAGE = 546, + USE_SYM = 547, + USING = 548, + UTC_DATE_SYM = 549, + UTC_TIMESTAMP_SYM = 550, + UTC_TIME_SYM = 551, + VALUES_IN_SYM = 552, + VALUES_LESS_SYM = 553, + VALUES = 554, + VARBINARY = 555, + VARCHAR = 556, + VARIANCE_SYM = 557, + VAR_SAMP_SYM = 558, + VARYING = 559, + WHEN_SYM = 560, + WHERE = 561, + WHILE_SYM = 562, + WITH = 563, + XOR = 564, + YEAR_MONTH_SYM = 565, + ZEROFILL = 566, + BODY_MARIADB_SYM = 567, + ELSEIF_ORACLE_SYM = 568, + ELSIF_MARIADB_SYM = 569, + EXCEPTION_ORACLE_SYM = 570, + GOTO_MARIADB_SYM = 571, + OTHERS_MARIADB_SYM = 572, + PACKAGE_MARIADB_SYM = 573, + RAISE_MARIADB_SYM = 574, + ROWTYPE_MARIADB_SYM = 575, + ACCOUNT_SYM = 576, + ACTION = 577, + ADMIN_SYM = 578, + ADDDATE_SYM = 579, + AFTER_SYM = 580, + AGAINST = 581, + AGGREGATE_SYM = 582, + ALGORITHM_SYM = 583, + ALWAYS_SYM = 584, + ANY_SYM = 585, + ASCII_SYM = 586, + AT_SYM = 587, + ATOMIC_SYM = 588, + AUTHORS_SYM = 589, + AUTOEXTEND_SIZE_SYM = 590, + AUTO_INC = 591, + AUTO_SYM = 592, + AVG_ROW_LENGTH = 593, + AVG_SYM = 594, + BACKUP_SYM = 595, + BEGIN_MARIADB_SYM = 596, + BEGIN_ORACLE_SYM = 597, + BINLOG_SYM = 598, + BIT_SYM = 599, + BLOCK_SYM = 600, + BOOL_SYM = 601, + BOOLEAN_SYM = 602, + BTREE_SYM = 603, + BYTE_SYM = 604, + CACHE_SYM = 605, + CASCADED = 606, + CATALOG_NAME_SYM = 607, + CHAIN_SYM = 608, + CHANGED = 609, + CHARSET = 610, + CHECKPOINT_SYM = 611, + CHECKSUM_SYM = 612, + CIPHER_SYM = 613, + CLASS_ORIGIN_SYM = 614, + CLIENT_SYM = 615, + CLOB_MARIADB_SYM = 616, + CLOB_ORACLE_SYM = 617, + CLOSE_SYM = 618, + COALESCE = 619, + CODE_SYM = 620, + COLLATION_SYM = 621, + COLUMNS = 622, + COLUMN_ADD_SYM = 623, + COLUMN_CHECK_SYM = 624, + COLUMN_CREATE_SYM = 625, + COLUMN_DELETE_SYM = 626, + COLUMN_GET_SYM = 627, + COLUMN_SYM = 628, + COLUMN_NAME_SYM = 629, + COMMENT_SYM = 630, + COMMITTED_SYM = 631, + COMMIT_SYM = 632, + COMPACT_SYM = 633, + COMPLETION_SYM = 634, + COMPRESSED_SYM = 635, + CONCURRENT = 636, + CONNECTION_SYM = 637, + CONSISTENT_SYM = 638, + CONSTRAINT_CATALOG_SYM = 639, + CONSTRAINT_NAME_SYM = 640, + CONSTRAINT_SCHEMA_SYM = 641, + CONTAINS_SYM = 642, + CONTEXT_SYM = 643, + CONTRIBUTORS_SYM = 644, + CPU_SYM = 645, + CUBE_SYM = 646, + CURRENT_SYM = 647, + CURRENT_POS_SYM = 648, + CURSOR_NAME_SYM = 649, + CYCLE_SYM = 650, + DATAFILE_SYM = 651, + DATA_SYM = 652, + DATETIME = 653, + DATE_FORMAT_SYM = 654, + DATE_SYM = 655, + DAY_SYM = 656, + DEALLOCATE_SYM = 657, + DECODE_MARIADB_SYM = 658, + DECODE_ORACLE_SYM = 659, + DEFINER_SYM = 660, + DELAYED_SYM = 661, + DELAY_KEY_WRITE_SYM = 662, + DES_KEY_FILE = 663, + DIAGNOSTICS_SYM = 664, + DIRECTORY_SYM = 665, + DISABLE_SYM = 666, + DISCARD = 667, + DISK_SYM = 668, + DO_SYM = 669, + DUMPFILE = 670, + DUPLICATE_SYM = 671, + DYNAMIC_SYM = 672, + ENABLE_SYM = 673, + END = 674, + ENDS_SYM = 675, + ENGINES_SYM = 676, + ENGINE_SYM = 677, + ENUM = 678, + ERROR_SYM = 679, + ERRORS = 680, + ESCAPE_SYM = 681, + EVENTS_SYM = 682, + EVENT_SYM = 683, + EVERY_SYM = 684, + EXCHANGE_SYM = 685, + EXAMINED_SYM = 686, + EXCLUDE_SYM = 687, + EXECUTE_SYM = 688, + EXCEPTION_MARIADB_SYM = 689, + EXIT_MARIADB_SYM = 690, + EXIT_ORACLE_SYM = 691, + EXPANSION_SYM = 692, + EXPIRE_SYM = 693, + EXPORT_SYM = 694, + EXTENDED_SYM = 695, + EXTENT_SIZE_SYM = 696, + FAST_SYM = 697, + FAULTS_SYM = 698, + FEDERATED_SYM = 699, + FILE_SYM = 700, + FIRST_SYM = 701, + FIXED_SYM = 702, + FLUSH_SYM = 703, + FOLLOWS_SYM = 704, + FOLLOWING_SYM = 705, + FORCE_SYM = 706, + FORMAT_SYM = 707, + FOUND_SYM = 708, + FULL = 709, + FUNCTION_SYM = 710, + GENERAL = 711, + GENERATED_SYM = 712, + GET_FORMAT = 713, + GET_SYM = 714, + GLOBAL_SYM = 715, + GRANTS = 716, + HANDLER_SYM = 717, + HARD_SYM = 718, + HASH_SYM = 719, + HELP_SYM = 720, + HIGH_PRIORITY = 721, + HISTORY_SYM = 722, + HOST_SYM = 723, + HOSTS_SYM = 724, + HOUR_SYM = 725, + ID_SYM = 726, + IDENTIFIED_SYM = 727, + IGNORE_SERVER_IDS_SYM = 728, + IMMEDIATE_SYM = 729, + IMPORT = 730, + INCREMENT_SYM = 731, + INDEXES = 732, + INITIAL_SIZE_SYM = 733, + INSERT_METHOD = 734, + INSTALL_SYM = 735, + INVOKER_SYM = 736, + IO_SYM = 737, + IPC_SYM = 738, + ISOLATION = 739, + ISOPEN_SYM = 740, + ISSUER_SYM = 741, + INVISIBLE_SYM = 742, + JSON_SYM = 743, + KEY_BLOCK_SIZE = 744, + LANGUAGE_SYM = 745, + LAST_SYM = 746, + LAST_VALUE = 747, + LASTVAL_SYM = 748, + LEAVES = 749, + LESS_SYM = 750, + LEVEL_SYM = 751, + LIST_SYM = 752, + LOCAL_SYM = 753, + LOCKS_SYM = 754, + LOGFILE_SYM = 755, + LOGS_SYM = 756, + MASTER_CONNECT_RETRY_SYM = 757, + MASTER_DELAY_SYM = 758, + MASTER_GTID_POS_SYM = 759, + MASTER_HOST_SYM = 760, + MASTER_LOG_FILE_SYM = 761, + MASTER_LOG_POS_SYM = 762, + MASTER_PASSWORD_SYM = 763, + MASTER_PORT_SYM = 764, + MASTER_SERVER_ID_SYM = 765, + MASTER_SSL_CAPATH_SYM = 766, + MASTER_SSL_CA_SYM = 767, + MASTER_SSL_CERT_SYM = 768, + MASTER_SSL_CIPHER_SYM = 769, + MASTER_SSL_CRL_SYM = 770, + MASTER_SSL_CRLPATH_SYM = 771, + MASTER_SSL_KEY_SYM = 772, + MASTER_SSL_SYM = 773, + MASTER_SYM = 774, + MASTER_USER_SYM = 775, + MASTER_USE_GTID_SYM = 776, + MASTER_HEARTBEAT_PERIOD_SYM = 777, + MAX_CONNECTIONS_PER_HOUR = 778, + MAX_QUERIES_PER_HOUR = 779, + MAX_ROWS = 780, + MAX_SIZE_SYM = 781, + MAX_UPDATES_PER_HOUR = 782, + MAX_STATEMENT_TIME_SYM = 783, + MAX_USER_CONNECTIONS_SYM = 784, + MEDIUM_SYM = 785, + MEMORY_SYM = 786, + MERGE_SYM = 787, + MESSAGE_TEXT_SYM = 788, + MICROSECOND_SYM = 789, + MIGRATE_SYM = 790, + MINUTE_SYM = 791, + MINVALUE_SYM = 792, + MIN_ROWS = 793, + MODE_SYM = 794, + MODIFY_SYM = 795, + MONITOR_SYM = 796, + MONTH_SYM = 797, + MUTEX_SYM = 798, + MYSQL_SYM = 799, + MYSQL_ERRNO_SYM = 800, + NAMES_SYM = 801, + NAME_SYM = 802, + NATIONAL_SYM = 803, + NCHAR_SYM = 804, + NEVER_SYM = 805, + NEW_SYM = 806, + NEXT_SYM = 807, + NEXTVAL_SYM = 808, + NOCACHE_SYM = 809, + NOCYCLE_SYM = 810, + NODEGROUP_SYM = 811, + NONE_SYM = 812, + NOTFOUND_SYM = 813, + NO_SYM = 814, + NOMAXVALUE_SYM = 815, + NOMINVALUE_SYM = 816, + NO_WAIT_SYM = 817, + NOWAIT_SYM = 818, + NUMBER_MARIADB_SYM = 819, + NUMBER_ORACLE_SYM = 820, + NVARCHAR_SYM = 821, + OF_SYM = 822, + OFFSET_SYM = 823, + OLD_PASSWORD_SYM = 824, + ONE_SYM = 825, + ONLY_SYM = 826, + ONLINE_SYM = 827, + OPEN_SYM = 828, + OPTIONS_SYM = 829, + OPTION = 830, + OVERLAPS_SYM = 831, + OWNER_SYM = 832, + PACK_KEYS_SYM = 833, + PAGE_SYM = 834, + PARSER_SYM = 835, + PARTIAL = 836, + PARTITIONS_SYM = 837, + PARTITIONING_SYM = 838, + PASSWORD_SYM = 839, + PERIOD_SYM = 840, + PERSISTENT_SYM = 841, + PHASE_SYM = 842, + PLUGINS_SYM = 843, + PLUGIN_SYM = 844, + PORT_SYM = 845, + PRECEDES_SYM = 846, + PRECEDING_SYM = 847, + PREPARE_SYM = 848, + PRESERVE_SYM = 849, + PREV_SYM = 850, + PREVIOUS_SYM = 851, + PRIVILEGES = 852, + PROCESS = 853, + PROCESSLIST_SYM = 854, + PROFILE_SYM = 855, + PROFILES_SYM = 856, + PROXY_SYM = 857, + QUARTER_SYM = 858, + QUERY_SYM = 859, + QUICK = 860, + RAW_MARIADB_SYM = 861, + RAW_ORACLE_SYM = 862, + READ_ONLY_SYM = 863, + REBUILD_SYM = 864, + RECOVER_SYM = 865, + REDOFILE_SYM = 866, + REDO_BUFFER_SIZE_SYM = 867, + REDUNDANT_SYM = 868, + RELAY = 869, + RELAYLOG_SYM = 870, + RELAY_LOG_FILE_SYM = 871, + RELAY_LOG_POS_SYM = 872, + RELAY_THREAD = 873, + RELOAD = 874, + REMOVE_SYM = 875, + REORGANIZE_SYM = 876, + REPAIR = 877, + REPEATABLE_SYM = 878, + REPLAY_SYM = 879, + REPLICATION = 880, + RESET_SYM = 881, + RESTART_SYM = 882, + RESOURCES = 883, + RESTORE_SYM = 884, + RESUME_SYM = 885, + RETURNED_SQLSTATE_SYM = 886, + RETURNS_SYM = 887, + REUSE_SYM = 888, + REVERSE_SYM = 889, + ROLE_SYM = 890, + ROLLBACK_SYM = 891, + ROLLUP_SYM = 892, + ROUTINE_SYM = 893, + ROWCOUNT_SYM = 894, + ROW_SYM = 895, + ROW_COUNT_SYM = 896, + ROW_FORMAT_SYM = 897, + RTREE_SYM = 898, + SAVEPOINT_SYM = 899, + SCHEDULE_SYM = 900, + SCHEMA_NAME_SYM = 901, + SECOND_SYM = 902, + SECURITY_SYM = 903, + SEQUENCE_SYM = 904, + SERIALIZABLE_SYM = 905, + SERIAL_SYM = 906, + SESSION_SYM = 907, + SERVER_SYM = 908, + SETVAL_SYM = 909, + SHARE_SYM = 910, + SHUTDOWN = 911, + SIGNED_SYM = 912, + SIMPLE_SYM = 913, + SLAVE = 914, + SLAVES = 915, + SLAVE_POS_SYM = 916, + SLOW = 917, + SNAPSHOT_SYM = 918, + SOCKET_SYM = 919, + SOFT_SYM = 920, + SONAME_SYM = 921, + SOUNDS_SYM = 922, + SOURCE_SYM = 923, + SQL_BUFFER_RESULT = 924, + SQL_CACHE_SYM = 925, + SQL_CALC_FOUND_ROWS = 926, + SQL_NO_CACHE_SYM = 927, + SQL_THREAD = 928, + STAGE_SYM = 929, + STARTS_SYM = 930, + START_SYM = 931, + STATEMENT_SYM = 932, + STATUS_SYM = 933, + STOP_SYM = 934, + STORAGE_SYM = 935, + STORED_SYM = 936, + STRING_SYM = 937, + SUBCLASS_ORIGIN_SYM = 938, + SUBDATE_SYM = 939, + SUBJECT_SYM = 940, + SUBPARTITIONS_SYM = 941, + SUBPARTITION_SYM = 942, + SUPER_SYM = 943, + SUSPEND_SYM = 944, + SWAPS_SYM = 945, + SWITCHES_SYM = 946, + SYSTEM = 947, + SYSTEM_TIME_SYM = 948, + TABLES = 949, + TABLESPACE = 950, + TABLE_CHECKSUM_SYM = 951, + TABLE_NAME_SYM = 952, + TEMPORARY = 953, + TEMPTABLE_SYM = 954, + TEXT_SYM = 955, + THAN_SYM = 956, + TIES_SYM = 957, + TIMESTAMP = 958, + TIMESTAMP_ADD = 959, + TIMESTAMP_DIFF = 960, + TIME_SYM = 961, + TRANSACTION_SYM = 962, + TRANSACTIONAL_SYM = 963, + THREADS_SYM = 964, + TRIGGERS_SYM = 965, + TRIM_ORACLE = 966, + TRUNCATE_SYM = 967, + TYPES_SYM = 968, + TYPE_SYM = 969, + UDF_RETURNS_SYM = 970, + UNBOUNDED_SYM = 971, + UNCOMMITTED_SYM = 972, + UNDEFINED_SYM = 973, + UNDOFILE_SYM = 974, + UNDO_BUFFER_SIZE_SYM = 975, + UNICODE_SYM = 976, + UNINSTALL_SYM = 977, + UNKNOWN_SYM = 978, + UNTIL_SYM = 979, + UPGRADE_SYM = 980, + USER_SYM = 981, + USE_FRM = 982, + VALUE_SYM = 983, + VARCHAR2_MARIADB_SYM = 984, + VARCHAR2_ORACLE_SYM = 985, + VARIABLES = 986, + VERSIONING_SYM = 987, + VIA_SYM = 988, + VIEW_SYM = 989, + VISIBLE_SYM = 990, + VIRTUAL_SYM = 991, + WAIT_SYM = 992, + WARNINGS = 993, + WEEK_SYM = 994, + WEIGHT_STRING_SYM = 995, + WINDOW_SYM = 996, + WITHIN = 997, + WITHOUT = 998, + WORK_SYM = 999, + WRAPPER_SYM = 1000, + WRITE_SYM = 1001, + X509_SYM = 1002, + XA_SYM = 1003, + XML_SYM = 1004, + YEAR_SYM = 1005, + CONDITIONLESS_JOIN = 1006, + ON_SYM = 1007, + PREC_BELOW_NOT = 1008, + SUBQUERY_AS_EXPR = 1009, + PREC_BELOW_IDENTIFIER_OPT_SPECIAL_CASE = 1010, + USER = 1011, + PREC_BELOW_CONTRACTION_TOKEN2 = 1012, + EMPTY_FROM_CLAUSE = 1013 + }; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 199 "/home/buildbot/git/sql/sql_yacc.yy" + + + int num; + ulong ulong_num; + ulonglong ulonglong_number; + longlong longlong_number; + uint sp_instr_addr; + + /* structs */ + LEX_CSTRING lex_str; + Lex_ident_cli_st kwd; + Lex_ident_cli_st ident_cli; + Lex_ident_sys_st ident_sys; + Lex_column_list_privilege_st column_list_privilege; + Lex_string_with_metadata_st lex_string_with_metadata; + Lex_spblock_st spblock; + Lex_spblock_handlers_st spblock_handlers; + Lex_length_and_dec_st Lex_length_and_dec; + Lex_cast_type_st Lex_cast_type; + Lex_field_type_st Lex_field_type; + Lex_dyncol_type_st Lex_dyncol_type; + Lex_for_loop_st for_loop; + Lex_for_loop_bounds_st for_loop_bounds; + Lex_trim_st trim; + vers_history_point_t vers_history_point; + struct + { + enum sub_select_type unit_type; + bool distinct; + } unit_operation; + struct + { + SELECT_LEX *first; + SELECT_LEX *prev_last; + } select_list; + SQL_I_List<ORDER> *select_order; + Lex_select_lock select_lock; + Lex_select_limit select_limit; + Lex_order_limit_lock *order_limit_lock; + + /* pointers */ + Lex_ident_sys *ident_sys_ptr; + Create_field *create_field; + Spvar_definition *spvar_definition; + Row_definition_list *spvar_definition_list; + const Type_handler *type_handler; + const class Sp_handler *sp_handler; + CHARSET_INFO *charset; + Condition_information_item *cond_info_item; + DYNCALL_CREATE_DEF *dyncol_def; + Diagnostics_information *diag_info; + Item *item; + Item_num *item_num; + Item_param *item_param; + Item_basic_constant *item_basic_constant; + Key_part_spec *key_part; + LEX *lex; + sp_expr_lex *expr_lex; + sp_assignment_lex *assignment_lex; + class sp_lex_cursor *sp_cursor_stmt; + LEX_CSTRING *lex_str_ptr; + LEX_USER *lex_user; + USER_AUTH *user_auth; + List<Condition_information_item> *cond_info_list; + List<DYNCALL_CREATE_DEF> *dyncol_def_list; + List<Item> *item_list; + List<sp_assignment_lex> *sp_assignment_lex_list; + List<Statement_information_item> *stmt_info_list; + List<String> *string_list; + List<Lex_ident_sys> *ident_sys_list; + Statement_information_item *stmt_info_item; + String *string; + TABLE_LIST *table_list; + Table_ident *table; + Qualified_column_ident *qualified_column_ident; + char *simple_string; + const char *const_simple_string; + chooser_compare_func_creator boolfunc2creator; + class Lex_grant_privilege *lex_grant; + class Lex_grant_object_name *lex_grant_ident; + class my_var *myvar; + class sp_condition_value *spcondvalue; + class sp_head *sphead; + class sp_name *spname; + class sp_variable *spvar; + class With_element_head *with_element_head; + class With_clause *with_clause; + class Virtual_column_info *virtual_column; + + handlerton *db_type; + st_select_lex *select_lex; + st_select_lex_unit *select_lex_unit; + struct p_elem_val *p_elem_value; + class Window_frame *window_frame; + class Window_frame_bound *window_frame_bound; + udf_func *udf; + st_trg_execution_order trg_execution_order; + + /* enums */ + enum enum_sp_suid_behaviour sp_suid; + enum enum_sp_aggregate_type sp_aggregate_type; + enum enum_view_suid view_suid; + enum Condition_information_item::Name cond_info_item_name; + enum enum_diag_condition_item_name diag_condition_item_name; + enum Diagnostics_information::Which_area diag_area; + enum enum_fk_option m_fk_option; + enum Item_udftype udf_type; + enum Key::Keytype key_type; + enum Statement_information_item::Name stmt_info_item_name; + enum enum_filetype filetype; + enum enum_tx_isolation tx_isolation; + enum enum_var_type var_type; + enum enum_yes_no_unknown m_yes_no_unk; + enum ha_choice choice; + enum ha_key_alg key_alg; + enum ha_rkey_function ha_rkey_mode; + enum index_hint_type index_hint; + enum interval_type interval, interval_time_st; + enum row_type row_type; + enum sp_variable::enum_mode spvar_mode; + enum thr_lock_type lock_type; + enum enum_mysql_timestamp_type date_time_type; + enum Window_frame_bound::Bound_precedence_type bound_precedence_type; + enum Window_frame::Frame_units frame_units; + enum Window_frame::Frame_exclusion frame_exclusion; + enum trigger_order_type trigger_action_order_type; + DDL_options_st object_ddl_options; + enum vers_kind_t vers_range_unit; + enum Column_definition::enum_column_versioning vers_column_versioning; + enum plsql_cursor_attr_t plsql_cursor_attr; + privilege_t privilege; + +#line 1181 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + + +int MYSQLparse (THD *thd); + +#endif /* !YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_YY_MARIADB_HH_INCLUDED */ + +/* Copy the second part of user declarations. */ +#line 331 "/home/buildbot/git/sql/sql_yacc.yy" + + +/* avoid unintentional %union size increases, it's what a parser stack made of */ +static_assert(sizeof(YYSTYPE) == sizeof(void*)*2+8, "%union size check"); +bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); + +#line 1202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 737 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 109026 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 781 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 1247 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 3710 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 6245 + +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 1013 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ +static const yytype_uint16 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 775, 2, 2, 2, 764, 759, 2, + 771, 772, 762, 761, 774, 760, 779, 763, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 780, 778, + 757, 755, 756, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 765, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 776, 758, 777, 766, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 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, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, 747, 748, 749, 750, 751, 752, 753, 754, 767, + 768, 769, 770, 773 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 1840, 1840, 1850, 1849, 1874, 1881, 1883, 1887, 1888, + 1889, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, + 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, + 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, + 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, + 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, + 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, + 1956, 1963, 1964, 1969, 1968, 1979, 1985, 1987, 1984, 1996, + 1998, 1997, 2007, 2012, 2024, 2023, 2040, 2039, 2048, 2049, + 2053, 2057, 2061, 2065, 2069, 2073, 2083, 2088, 2092, 2096, + 2100, 2104, 2108, 2113, 2117, 2122, 2150, 2154, 2158, 2163, + 2166, 2168, 2169, 2173, 2179, 2181, 2182, 2186, 2192, 2194, + 2195, 2199, 2206, 2210, 2225, 2229, 2235, 2241, 2247, 2257, + 2261, 2265, 2279, 2291, 2278, 2314, 2313, 2369, 2376, 2368, + 2388, 2395, 2387, 2408, 2414, 2407, 2426, 2432, 2425, 2444, + 2443, 2459, 2457, 2472, 2470, 2483, 2482, 2493, 2492, 2502, + 2509, 2516, 2520, 2524, 2524, 2527, 2531, 2532, 2536, 2537, + 2541, 2546, 2552, 2558, 2566, 2572, 2578, 2586, 2594, 2602, + 2610, 2618, 2626, 2638, 2655, 2654, 2666, 2667, 2671, 2676, + 2681, 2686, 2691, 2696, 2701, 2709, 2708, 2741, 2740, 2747, + 2754, 2755, 2761, 2767, 2777, 2783, 2789, 2791, 2798, 2799, + 2803, 2813, 2814, 2822, 2822, 2864, 2873, 2874, 2879, 2880, + 2881, 2882, 2887, 2892, 2900, 2901, 2905, 2906, 2911, 2913, + 2915, 2917, 2919, 2921, 2923, 2929, 2930, 2934, 2935, 2940, + 2939, 2952, 2954, 2957, 2959, 2963, 2967, 2976, 2981, 2981, + 2991, 2992, 2996, 3004, 3009, 3014, 3018, 3020, 3024, 3025, + 3029, 3030, 3031, 3036, 3035, 3047, 3051, 3052, 3056, 3057, + 3062, 3068, 3074, 3084, 3092, 3097, 3105, 3109, 3118, 3116, + 3130, 3138, 3143, 3142, 3156, 3158, 3163, 3173, 3172, 3191, + 3192, 3193, 3194, 3199, 3201, 3206, 3221, 3229, 3233, 3253, + 3254, 3258, 3262, 3268, 3274, 3280, 3286, 3296, 3301, 3309, + 3317, 3322, 3328, 3329, 3335, 3338, 3342, 3350, 3367, 3369, + 3387, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, + 3411, 3413, 3415, 3420, 3428, 3444, 3445, 3450, 3456, 3465, + 3472, 3481, 3490, 3495, 3504, 3506, 3508, 3517, 3522, 3529, + 3538, 3547, 3549, 3551, 3553, 3555, 3557, 3559, 3561, 3563, + 3565, 3567, 3569, 3571, 3576, 3577, 3585, 3597, 3613, 3612, + 3623, 3623, 3645, 3646, 3650, 3657, 3668, 3673, 3678, 3683, + 3691, 3696, 3701, 3706, 3715, 3723, 3731, 3740, 3740, 3764, + 3774, 3773, 3795, 3794, 3815, 3821, 3829, 3830, 3834, 3835, + 3836, 3840, 3848, 3853, 3858, 3866, 3867, 3875, 3893, 3909, + 3929, 3934, 3928, 3946, 3948, 3949, 3950, 3955, 3954, 4025, + 4024, 4031, 4036, 4037, 4041, 4042, 4047, 4046, 4062, 4061, + 4076, 4086, 4090, 4091, 4096, 4097, 4101, 4109, 4114, 4121, + 4130, 4144, 4152, 4161, 4160, 4168, 4167, 4175, 4180, 4187, + 4174, 4197, 4196, 4207, 4206, 4216, 4215, 4225, 4232, 4224, + 4247, 4246, 4258, 4260, 4265, 4267, 4269, 4286, 4291, 4297, + 4304, 4305, 4313, 4319, 4328, 4334, 4340, 4341, 4345, 4345, + 4350, 4351, 4352, 4356, 4357, 4358, 4362, 4366, 4367, 4368, + 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4383, 4387, + 4388, 4389, 4393, 4394, 4395, 4396, 4397, 4401, 4405, 4406, + 4407, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4421, 4425, + 4426, 4427, 4431, 4432, 4433, 4438, 4446, 4454, 4462, 4475, + 4488, 4493, 4498, 4506, 4514, 4522, 4530, 4538, 4546, 4554, + 4564, 4574, 4584, 4586, 4590, 4595, 4605, 4606, 4619, 4618, + 4621, 4622, 4636, 4637, 4641, 4642, 4646, 4651, 4662, 4699, + 4700, 4705, 4704, 4720, 4735, 4734, 4756, 4755, 4761, 4769, + 4768, 4771, 4773, 4776, 4775, 4784, 4787, 4786, 4795, 4796, + 4802, 4803, 4820, 4821, 4825, 4826, 4830, 4844, 4854, 4865, + 4874, 4875, 4888, 4890, 4889, 4894, 4892, 4903, 4904, 4908, + 4922, 4934, 4935, 4948, 4957, 4979, 4980, 4985, 4984, 5008, + 5020, 5036, 5035, 5050, 5049, 5063, 5068, 5073, 5093, 5111, + 5115, 5142, 5154, 5155, 5160, 5169, 5159, 5194, 5195, 5199, + 5210, 5229, 5242, 5268, 5269, 5274, 5273, 5310, 5319, 5320, + 5324, 5325, 5329, 5331, 5337, 5343, 5345, 5347, 5349, 5351, + 5353, 5358, 5359, 5366, 5382, 5385, 5396, 5397, 5401, 5402, + 5406, 5407, 5411, 5412, 5413, 5422, 5425, 5433, 5436, 5443, + 5447, 5453, 5455, 5459, 5460, 5464, 5465, 5466, 5470, 5485, + 5490, 5495, 5500, 5505, 5510, 5515, 5530, 5536, 5551, 5556, + 5571, 5577, 5595, 5600, 5605, 5610, 5615, 5620, 5626, 5625, + 5651, 5652, 5653, 5658, 5663, 5668, 5670, 5672, 5674, 5680, + 5685, 5690, 5699, 5708, 5714, 5720, 5725, 5728, 5730, 5734, + 5753, 5761, 5776, 5786, 5797, 5798, 5799, 5800, 5801, 5802, + 5803, 5807, 5808, 5809, 5813, 5814, 5815, 5816, 5821, 5828, + 5835, 5836, 5840, 5841, 5842, 5843, 5844, 5848, 5850, 5861, + 5860, 5868, 5867, 5875, 5874, 5882, 5881, 5891, 5888, 5899, + 5897, 5906, 5905, 5924, 5932, 5940, 5948, 5949, 5953, 5963, + 5964, 5968, 5969, 5973, 5978, 5977, 6016, 6015, 6022, 6021, + 6031, 6032, 6036, 6037, 6041, 6042, 6046, 6047, 6051, 6052, + 6053, 6054, 6056, 6055, 6061, 6066, 6074, 6075, 6080, 6083, + 6087, 6091, 6098, 6099, 6103, 6104, 6108, 6114, 6120, 6121, + 6129, 6128, 6150, 6151, 6161, 6169, 6181, 6181, 6184, 6185, + 6192, 6199, 6203, 6211, 6212, 6213, 6214, 6215, 6216, 6221, + 6226, 6234, 6238, 6239, 6255, 6259, 6263, 6267, 6269, 6276, + 6278, 6283, 6285, 6286, 6287, 6291, 6295, 6300, 6305, 6309, + 6313, 6318, 6323, 6331, 6349, 6350, 6357, 6364, 6372, 6377, + 6382, 6387, 6392, 6397, 6402, 6407, 6409, 6411, 6413, 6415, + 6417, 6419, 6421, 6429, 6431, 6436, 6440, 6441, 6445, 6446, + 6450, 6451, 6452, 6453, 6454, 6458, 6459, 6460, 6461, 6462, + 6466, 6472, 6473, 6478, 6480, 6487, 6488, 6489, 6493, 6497, + 6498, 6499, 6500, 6501, 6502, 6506, 6510, 6511, 6512, 6513, + 6517, 6518, 6522, 6523, 6528, 6529, 6533, 6534, 6535, 6542, + 6543, 6549, 6556, 6560, 6561, 6565, 6566, 6570, 6571, 6575, + 6583, 6591, 6600, 6604, 6610, 6614, 6615, 6624, 6633, 6639, + 6645, 6658, 6664, 6674, 6675, 6679, 6684, 6688, 6689, 6693, + 6694, 6698, 6705, 6709, 6710, 6714, 6722, 6723, 6727, 6728, + 6732, 6733, 6737, 6738, 6739, 6746, 6753, 6754, 6758, 6759, + 6760, 6761, 6762, 6768, 6772, 6773, 6778, 6777, 6790, 6791, + 6795, 6798, 6799, 6800, 6801, 6805, 6813, 6820, 6821, 6825, + 6835, 6836, 6840, 6841, 6844, 6846, 6850, 6862, 6863, 6867, + 6874, 6887, 6888, 6890, 6892, 6898, 6903, 6909, 6915, 6922, + 6932, 6933, 6934, 6935, 6936, 6940, 6941, 6945, 6946, 6950, + 6951, 6955, 6956, 6957, 6961, 6965, 6977, 6978, 6982, 6983, + 6987, 6988, 6992, 6993, 6997, 6998, 7002, 7003, 7007, 7008, + 7013, 7014, 7015, 7019, 7021, 7026, 7031, 7033, 7037, 7045, + 7053, 7059, 7068, 7069, 7073, 7077, 7078, 7088, 7089, 7090, + 7094, 7098, 7105, 7106, 7114, 7120, 7132, 7133, 7137, 7139, + 7149, 7165, 7148, 7188, 7187, 7206, 7205, 7221, 7230, 7229, + 7237, 7236, 7244, 7243, 7257, 7251, 7265, 7264, 7303, 7308, + 7313, 7318, 7324, 7323, 7330, 7337, 7349, 7359, 7336, 7368, + 7372, 7380, 7383, 7387, 7391, 7399, 7401, 7402, 7403, 7404, + 7408, 7409, 7410, 7411, 7415, 7416, 7428, 7429, 7434, 7435, + 7438, 7440, 7448, 7456, 7458, 7460, 7461, 7469, 7470, 7476, + 7485, 7483, 7496, 7509, 7508, 7521, 7519, 7532, 7539, 7549, + 7550, 7559, 7566, 7570, 7576, 7574, 7591, 7593, 7598, 7606, + 7605, 7619, 7623, 7622, 7634, 7635, 7639, 7652, 7653, 7657, + 7661, 7668, 7673, 7677, 7684, 7691, 7695, 7700, 7708, 7716, + 7726, 7737, 7747, 7758, 7768, 7774, 7780, 7787, 7792, 7806, + 7811, 7821, 7835, 7840, 7844, 7849, 7850, 7851, 7856, 7861, + 7865, 7875, 7877, 7878, 7879, 7880, 7884, 7889, 7897, 7902, + 7910, 7911, 7915, 7916, 7920, 7920, 7923, 7925, 7929, 7930, + 7934, 7935, 7943, 7944, 7945, 7949, 7950, 7955, 7964, 7965, + 7966, 7967, 7972, 7971, 7981, 7980, 7988, 7995, 8005, 8022, + 8025, 8032, 8036, 8043, 8047, 8051, 8058, 8058, 8064, 8065, + 8069, 8070, 8071, 8075, 8076, 8085, 8092, 8093, 8098, 8097, + 8109, 8110, 8111, 8115, 8117, 8116, 8123, 8122, 8143, 8144, + 8148, 8149, 8153, 8154, 8155, 8159, 8160, 8165, 8164, 8185, + 8186, 8190, 8195, 8196, 8203, 8205, 8210, 8212, 8211, 8224, + 8226, 8225, 8239, 8240, 8245, 8254, 8255, 8256, 8260, 8267, + 8277, 8285, 8294, 8296, 8295, 8301, 8300, 8323, 8324, 8328, + 8329, 8333, 8334, 8335, 8336, 8337, 8338, 8342, 8343, 8348, + 8347, 8368, 8369, 8370, 8375, 8374, 8385, 8392, 8398, 8407, + 8408, 8412, 8428, 8427, 8440, 8441, 8445, 8446, 8450, 8461, + 8472, 8473, 8478, 8477, 8492, 8493, 8497, 8498, 8502, 8513, + 8525, 8524, 8532, 8532, 8541, 8542, 8547, 8548, 8558, 8557, + 8572, 8571, 8590, 8589, 8606, 8604, 8625, 8626, 8631, 8630, + 8644, 8653, 8643, 8663, 8675, 8739, 8744, 8759, 8760, 8775, + 8774, 8790, 8789, 8802, 8804, 8819, 8827, 8825, 8840, 8858, + 8860, 8870, 8874, 8915, 8924, 8934, 8935, 8939, 8943, 8949, + 8956, 8958, 8967, 8971, 8975, 8982, 8991, 8995, 9002, 9019, + 9022, 9030, 9033, 9040, 9044, 9048, 9052, 9059, 9060, 9064, + 9065, 9074, 9087, 9093, 9104, 9107, 9116, 9119, 9124, 9132, + 9133, 9134, 9148, 9153, 9175, 9181, 9187, 9193, 9194, 9195, + 9196, 9197, 9201, 9202, 9203, 9207, 9208, 9209, 9213, 9214, + 9219, 9270, 9277, 9320, 9326, 9332, 9338, 9344, 9350, 9356, + 9362, 9368, 9374, 9380, 9386, 9392, 9396, 9402, 9411, 9417, + 9425, 9431, 9440, 9446, 9454, 9464, 9470, 9477, 9484, 9492, + 9498, 9507, 9511, 9517, 9523, 9529, 9535, 9542, 9548, 9554, + 9560, 9566, 9573, 9579, 9585, 9591, 9597, 9603, 9609, 9615, + 9621, 9625, 9626, 9630, 9631, 9635, 9636, 9640, 9641, 9645, + 9646, 9647, 9648, 9649, 9650, 9654, 9655, 9660, 9664, 9668, + 9669, 9670, 9674, 9675, 9676, 9677, 9678, 9679, 9683, 9684, + 9685, 9690, 9689, 9695, 9703, 9726, 9733, 9742, 9743, 9744, + 9745, 9749, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, + 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9813, + 9821, 9822, 9829, 9835, 9840, 9850, 9856, 9861, 9867, 9873, + 9879, 9890, 9897, 9902, 9907, 9912, 9917, 9922, 9927, 9935, + 9936, 9937, 9938, 9946, 9947, 9955, 9956, 9962, 9966, 9972, + 9978, 9987, 9988, 9997, 10004, 10018, 10024, 10030, 10039, 10048, + 10054, 10060, 10066, 10072, 10087, 10098, 10104, 10110, 10116, 10122, + 10128, 10136, 10143, 10147, 10152, 10160, 10181, 10188, 10194, 10201, + 10208, 10214, 10220, 10226, 10232, 10238, 10244, 10250, 10256, 10263, + 10269, 10276, 10282, 10287, 10292, 10297, 10302, 10320, 10326, 10332, + 10337, 10344, 10351, 10359, 10366, 10373, 10380, 10387, 10404, 10410, + 10416, 10422, 10428, 10435, 10441, 10447, 10456, 10467, 10474, 10480, + 10486, 10493, 10501, 10507, 10513, 10518, 10524, 10532, 10538, 10544, + 10550, 10556, 10564, 10576, 10596, 10595, 10669, 10675, 10681, 10687, + 10695, 10697, 10702, 10703, 10707, 10708, 10712, 10713, 10717, 10724, + 10732, 10759, 10765, 10771, 10777, 10783, 10789, 10798, 10805, 10807, + 10804, 10814, 10825, 10831, 10837, 10843, 10849, 10855, 10861, 10867, + 10873, 10880, 10879, 10902, 10901, 10934, 10933, 10947, 10956, 10974, + 10976, 10981, 10998, 11005, 11012, 11019, 11026, 11033, 11040, 11047, + 11054, 11061, 11072, 11079, 11090, 11101, 11121, 11120, 11126, 11143, + 11149, 11158, 11167, 11177, 11176, 11188, 11198, 11206, 11211, 11219, + 11220, 11225, 11230, 11233, 11235, 11239, 11244, 11252, 11253, 11257, + 11261, 11268, 11275, 11282, 11295, 11294, 11311, 11314, 11313, 11318, + 11317, 11322, 11321, 11325, 11330, 11331, 11332, 11337, 11342, 11350, + 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11361, 11362, 11363, + 11364, 11371, 11372, 11376, 11381, 11389, 11390, 11394, 11401, 11409, + 11418, 11428, 11429, 11438, 11447, 11459, 11460, 11472, 11483, 11484, + 11490, 11495, 11509, 11517, 11515, 11535, 11533, 11546, 11558, 11556, + 11576, 11575, 11587, 11600, 11598, 11619, 11618, 11631, 11645, 11646, + 11647, 11651, 11652, 11660, 11661, 11665, 11674, 11675, 11676, 11681, + 11685, 11686, 11690, 11691, 11695, 11696, 11704, 11712, 11720, 11721, + 11734, 11752, 11761, 11762, 11767, 11770, 11771, 11772, 11776, 11777, + 11782, 11781, 11787, 11786, 11794, 11795, 11798, 11800, 11800, 11804, + 11804, 11809, 11810, 11814, 11816, 11821, 11822, 11826, 11837, 11851, + 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, + 11862, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, + 11878, 11879, 11880, 11881, 11884, 11886, 11887, 11891, 11892, 11896, + 11904, 11906, 11910, 11912, 11911, 11925, 11928, 11927, 11945, 11947, + 11951, 11956, 11964, 11965, 11982, 12005, 12006, 12012, 12013, 12017, + 12030, 12029, 12038, 12039, 12048, 12049, 12053, 12054, 12058, 12059, + 12073, 12074, 12078, 12088, 12097, 12104, 12111, 12121, 12122, 12129, + 12139, 12140, 12142, 12144, 12146, 12148, 12157, 12161, 12162, 12166, + 12180, 12181, 12187, 12186, 12197, 12203, 12212, 12213, 12214, 12219, + 12220, 12225, 12232, 12238, 12248, 12257, 12263, 12269, 12278, 12283, + 12288, 12292, 12298, 12304, 12313, 12322, 12326, 12333, 12334, 12338, + 12343, 12348, 12361, 12365, 12369, 12373, 12378, 12381, 12385, 12398, + 12406, 12419, 12421, 12425, 12426, 12430, 12431, 12432, 12433, 12434, + 12435, 12439, 12440, 12441, 12442, 12443, 12447, 12448, 12449, 12450, + 12454, 12455, 12456, 12457, 12458, 12462, 12463, 12464, 12465, 12466, + 12470, 12475, 12476, 12480, 12481, 12485, 12486, 12487, 12492, 12491, + 12523, 12524, 12528, 12529, 12533, 12543, 12543, 12555, 12556, 12559, + 12579, 12583, 12588, 12596, 12602, 12613, 12601, 12615, 12630, 12642, + 12641, 12664, 12663, 12673, 12672, 12695, 12701, 12705, 12710, 12709, + 12718, 12723, 12729, 12734, 12739, 12746, 12744, 12755, 12759, 12760, + 12764, 12776, 12789, 12790, 12794, 12808, 12812, 12821, 12824, 12831, + 12832, 12840, 12845, 12839, 12857, 12862, 12856, 12872, 12880, 12889, + 12897, 12898, 12902, 12903, 12907, 12908, 12916, 12916, 12919, 12919, + 12932, 12933, 12935, 12934, 12947, 12953, 12955, 12959, 12961, 12967, + 12971, 12972, 12976, 12977, 12981, 12991, 12992, 12996, 12997, 13001, + 13002, 13006, 13007, 13012, 13011, 13027, 13026, 13041, 13042, 13046, + 13047, 13051, 13056, 13064, 13072, 13083, 13084, 13093, 13094, 13102, + 13104, 13106, 13104, 13116, 13130, 13137, 13147, 13166, 13136, 13173, + 13174, 13178, 13185, 13193, 13194, 13198, 13208, 13209, 13216, 13215, + 13233, 13236, 13243, 13244, 13252, 13267, 13275, 13286, 13292, 13285, + 13297, 13303, 13296, 13311, 13315, 13314, 13334, 13335, 13339, 13354, + 13372, 13373, 13377, 13378, 13382, 13383, 13384, 13389, 13400, 13388, + 13410, 13412, 13415, 13417, 13420, 13421, 13424, 13428, 13432, 13436, + 13440, 13444, 13448, 13452, 13456, 13464, 13467, 13477, 13476, 13495, + 13502, 13510, 13518, 13526, 13534, 13542, 13549, 13556, 13562, 13564, + 13566, 13575, 13579, 13584, 13583, 13590, 13589, 13595, 13604, 13611, + 13616, 13621, 13626, 13631, 13636, 13638, 13640, 13642, 13649, 13657, + 13659, 13667, 13674, 13681, 13689, 13695, 13700, 13708, 13716, 13724, + 13728, 13732, 13739, 13748, 13755, 13762, 13769, 13775, 13781, 13787, + 13793, 13799, 13807, 13812, 13819, 13826, 13833, 13840, 13847, 13854, + 13859, 13864, 13869, 13874, 13879, 13886, 13908, 13910, 13912, 13917, + 13918, 13921, 13923, 13927, 13928, 13932, 13933, 13937, 13938, 13942, + 13943, 13947, 13948, 13952, 13953, 13961, 13973, 13972, 13991, 13990, + 14000, 14001, 14002, 14003, 14004, 14005, 14009, 14010, 14014, 14021, + 14022, 14024, 14025, 14029, 14030, 14043, 14044, 14045, 14060, 14059, + 14071, 14070, 14082, 14087, 14088, 14103, 14106, 14105, 14118, 14119, + 14124, 14126, 14128, 14130, 14132, 14134, 14142, 14144, 14146, 14148, + 14153, 14155, 14163, 14165, 14167, 14169, 14171, 14173, 14190, 14191, + 14195, 14199, 14212, 14211, 14226, 14236, 14237, 14240, 14242, 14243, + 14247, 14263, 14264, 14269, 14268, 14278, 14279, 14283, 14283, 14287, + 14286, 14292, 14296, 14297, 14301, 14302, 14309, 14314, 14313, 14328, + 14327, 14342, 14343, 14344, 14348, 14349, 14350, 14359, 14360, 14364, + 14368, 14376, 14376, 14381, 14382, 14391, 14403, 14417, 14428, 14441, + 14402, 14452, 14453, 14457, 14458, 14462, 14463, 14471, 14475, 14476, + 14477, 14480, 14482, 14486, 14487, 14491, 14496, 14503, 14508, 14515, + 14517, 14521, 14522, 14526, 14531, 14539, 14540, 14544, 14546, 14554, + 14555, 14559, 14560, 14561, 14565, 14567, 14572, 14573, 14582, 14583, + 14587, 14588, 14592, 14605, 14610, 14615, 14620, 14628, 14636, 14641, + 14649, 14657, 14672, 14679, 14685, 14695, 14696, 14704, 14705, 14706, + 14707, 14721, 14727, 14733, 14739, 14745, 14751, 14772, 14782, 14792, + 14798, 14805, 14815, 14822, 14829, 14840, 14839, 14863, 14864, 14869, + 14870, 14875, 14899, 14902, 14901, 14917, 14921, 14926, 14930, 14940, + 14946, 14955, 14973, 14974, 14978, 14983, 14991, 14996, 15004, 15009, + 15014, 15019, 15025, 15030, 15038, 15043, 15048, 15053, 15059, 15067, + 15068, 15079, 15087, 15091, 15097, 15103, 15113, 15119, 15128, 15138, + 15139, 15143, 15144, 15145, 15149, 15157, 15165, 15173, 15181, 15182, + 15190, 15191, 15195, 15196, 15201, 15210, 15211, 15219, 15220, 15228, + 15229, 15230, 15234, 15245, 15274, 15283, 15283, 15285, 15295, 15296, + 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15310, + 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, + 15321, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, + 15334, 15335, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, + 15347, 15348, 15349, 15353, 15354, 15355, 15356, 15357, 15358, 15359, + 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, + 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, + 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, + 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, + 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, + 15422, 15423, 15424, 15425, 15466, 15467, 15468, 15469, 15470, 15471, + 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, + 15495, 15496, 15497, 15501, 15502, 15503, 15512, 15513, 15514, 15515, + 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, + 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, + 15536, 15537, 15542, 15550, 15551, 15552, 15553, 15554, 15555, 15556, + 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, + 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, + 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, + 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, + 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, + 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, + 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, + 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, + 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, + 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, + 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, + 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, + 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, + 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, + 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, + 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, + 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, + 15731, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, + 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, + 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, + 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, + 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, + 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, + 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, + 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, + 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, + 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, + 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, + 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, + 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, + 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, + 15871, 15872, 15873, 15874, 15875, 15880, 15881, 15882, 15883, 15884, + 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, + 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, + 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, + 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, + 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, + 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, + 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, + 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, + 15965, 15966, 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, + 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, + 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, + 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, + 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, + 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, + 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, + 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, + 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, + 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, + 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, + 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, + 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, + 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, + 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, + 16115, 16127, 16126, 16139, 16140, 16142, 16141, 16153, 16152, 16159, + 16157, 16177, 16178, 16183, 16184, 16186, 16185, 16199, 16200, 16206, + 16205, 16210, 16214, 16215, 16216, 16220, 16221, 16222, 16223, 16227, + 16228, 16229, 16230, 16239, 16238, 16252, 16251, 16266, 16265, 16283, + 16282, 16296, 16295, 16309, 16308, 16324, 16323, 16337, 16336, 16350, + 16349, 16362, 16361, 16373, 16372, 16384, 16383, 16395, 16394, 16405, + 16423, 16434, 16456, 16478, 16494, 16506, 16505, 16519, 16518, 16530, + 16529, 16543, 16544, 16545, 16546, 16550, 16569, 16587, 16588, 16592, + 16593, 16594, 16595, 16600, 16605, 16610, 16621, 16622, 16623, 16629, + 16635, 16647, 16646, 16660, 16661, 16667, 16676, 16677, 16681, 16682, + 16686, 16705, 16706, 16707, 16712, 16713, 16718, 16717, 16735, 16734, + 16746, 16755, 16765, 16764, 16805, 16806, 16810, 16811, 16815, 16816, + 16817, 16818, 16820, 16819, 16832, 16833, 16834, 16835, 16836, 16842, + 16847, 16852, 16857, 16861, 16866, 16875, 16877, 16882, 16887, 16893, + 16899, 16904, 16916, 16917, 16921, 16922, 16926, 16931, 16939, 16949, + 16968, 16971, 16973, 16977, 16978, 16985, 16987, 16991, 16996, 17003, + 17007, 17016, 17023, 17024, 17025, 17026, 17030, 17031, 17032, 17033, + 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, + 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, + 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, + 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17075, 17076, + 17080, 17081, 17085, 17092, 17099, 17109, 17118, 17124, 17131, 17139, + 17144, 17152, 17157, 17165, 17170, 17177, 17177, 17178, 17178, 17181, + 17187, 17193, 17198, 17205, 17211, 17218, 17227, 17231, 17237, 17245, + 17247, 17251, 17255, 17259, 17266, 17271, 17276, 17281, 17286, 17294, + 17295, 17299, 17300, 17305, 17306, 17310, 17311, 17315, 17316, 17320, + 17321, 17326, 17325, 17335, 17344, 17345, 17349, 17350, 17355, 17356, + 17357, 17362, 17363, 17364, 17368, 17380, 17389, 17395, 17404, 17413, + 17426, 17428, 17430, 17438, 17439, 17440, 17444, 17445, 17451, 17452, + 17453, 17454, 17455, 17456, 17457, 17467, 17468, 17473, 17486, 17500, + 17501, 17502, 17506, 17507, 17511, 17512, 17517, 17518, 17522, 17528, + 17537, 17537, 17551, 17552, 17553, 17554, 17564, 17566, 17572, 17578, + 17588, 17597, 17603, 17608, 17612, 17586, 17661, 17661, 17678, 17682, + 17686, 17690, 17694, 17698, 17706, 17707, 17723, 17730, 17737, 17750, + 17751, 17752, 17756, 17757, 17758, 17762, 17763, 17768, 17770, 17769, + 17775, 17776, 17780, 17785, 17792, 17797, 17806, 17812, 17820, 17824, + 17828, 17832, 17836, 17837, 17838, 17842, 17843, 17848, 17849, 17855, + 17856, 17857, 17858, 17859, 17860, 17864, 17865, 17866, 17867, 17868, + 17869, 17870, 17871, 17872, 17873, 17874, 17878, 17883, 17887, 17896, + 17895, 17908, 17913, 17917, 17921, 17930, 17931, 17935, 17936, 17940, + 17948, 17959, 17966, 17972, 17977, 17987, 17986, 18001, 18009, 18000, + 18021, 18026, 18031, 18041, 18040, 18051, 18049, 18063, 18061, 18073, + 18084, 18088, 18100, 18105, 18106, 18113, 18115, 18114, 18142, 18143, + 18144, 18145, 18146, 18150, 18151, 18152, 18153, 18154, 18155, 18156, + 18157, 18161, 18162, 18163, 18164, 18171, 18169, 18186, 18185, 18200, + 18199 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "'@'", "ABORT_SYM", "IMPOSSIBLE_ACTION", + "END_OF_INPUT", "COLON_ORACLE_SYM", "PARAM_MARKER", + "FOR_SYSTEM_TIME_SYM", "LEFT_PAREN_ALT", "LEFT_PAREN_WITH", + "LEFT_PAREN_LIKE", "ORACLE_CONCAT_SYM", "PERCENT_ORACLE_SYM", + "WITH_CUBE_SYM", "WITH_ROLLUP_SYM", "WITH_SYSTEM_SYM", "IDENT", + "IDENT_QUOTED", "LEX_HOSTNAME", "UNDERSCORE_CHARSET", "BIN_NUM", + "DECIMAL_NUM", "FLOAT_NUM", "HEX_NUM", "HEX_STRING", "LONG_NUM", + "NCHAR_STRING", "NUM", "TEXT_STRING", "ULONGLONG_NUM", "AND_AND_SYM", + "DOT_DOT_SYM", "EQUAL_SYM", "GE", "LE", "MYSQL_CONCAT_SYM", "NE", + "NOT2_SYM", "OR2_SYM", "SET_VAR", "SHIFT_LEFT", "SHIFT_RIGHT", + "ACCESSIBLE_SYM", "ADD", "ALL", "ALTER", "ANALYZE_SYM", "AND_SYM", "ASC", + "ASENSITIVE_SYM", "AS", "BEFORE_SYM", "BETWEEN_SYM", "BIGINT", "BINARY", + "BIT_AND", "BIT_OR", "BIT_XOR", "BLOB_MARIADB_SYM", "BLOB_ORACLE_SYM", + "BODY_ORACLE_SYM", "BOTH", "BY", "CALL_SYM", "CASCADE", "CASE_SYM", + "CAST_SYM", "CHANGE", "CHAR_SYM", "CHECK_SYM", "COLLATE_SYM", + "CONDITION_SYM", "CONSTRAINT", "CONTINUE_MARIADB_SYM", + "CONTINUE_ORACLE_SYM", "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", + "CUME_DIST_SYM", "CURDATE", "CURRENT_ROLE", "CURRENT_USER", "CURSOR_SYM", + "CURTIME", "DATABASE", "DATABASES", "DATE_ADD_INTERVAL", + "DATE_SUB_INTERVAL", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", + "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DECIMAL_SYM", "DECLARE_MARIADB_SYM", + "DECLARE_ORACLE_SYM", "DEFAULT", "DELETE_DOMAIN_ID_SYM", "DELETE_SYM", + "DENSE_RANK_SYM", "DESCRIBE", "DESC", "DETERMINISTIC_SYM", "DISTINCT", + "DIV_SYM", "DO_DOMAIN_IDS_SYM", "DOUBLE_SYM", "DROP", "DUAL_SYM", + "EACH_SYM", "ELSEIF_MARIADB_SYM", "ELSE", "ELSIF_ORACLE_SYM", "ENCLOSED", + "ESCAPED", "EXCEPT_SYM", "EXISTS", "EXTRACT_SYM", "FALSE_SYM", + "FETCH_SYM", "FIRST_VALUE_SYM", "FLOAT_SYM", "FOREIGN", "FOR_SYM", + "FROM", "FULLTEXT_SYM", "GOTO_ORACLE_SYM", "GRANT", "GROUP_CONCAT_SYM", + "JSON_ARRAYAGG_SYM", "JSON_OBJECTAGG_SYM", "GROUP_SYM", "HAVING", + "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM", "HOUR_SECOND_SYM", "IF_SYM", + "IGNORE_DOMAIN_IDS_SYM", "IGNORE_SYM", "INDEX_SYM", "INFILE", + "INNER_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT", "IN_SYM", + "INTERSECT_SYM", "INTERVAL_SYM", "INTO", "INT_SYM", "IS", "ITERATE_SYM", + "JOIN_SYM", "KEYS", "KEY_SYM", "KILL_SYM", "LAG_SYM", "LEADING", + "LEAD_SYM", "LEAVE_SYM", "LEFT", "LIKE", "LIMIT", "LINEAR_SYM", "LINES", + "LOAD", "LOCATOR_SYM", "LOCK_SYM", "LONGBLOB", "LONG_SYM", "LONGTEXT", + "LOOP_SYM", "LOW_PRIORITY", "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MATCH", + "MAX_SYM", "MAXVALUE_SYM", "MEDIAN_SYM", "MEDIUMBLOB", "MEDIUMINT", + "MEDIUMTEXT", "MIN_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", + "MODIFIES_SYM", "MOD_SYM", "NATURAL", "NEG", "NOT_SYM", + "NO_WRITE_TO_BINLOG", "NOW_SYM", "NTH_VALUE_SYM", "NTILE_SYM", + "NULL_SYM", "NUMERIC_SYM", "ON", "OPTIMIZE", "OPTIONALLY", "ORDER_SYM", + "OR_SYM", "OTHERS_ORACLE_SYM", "OUTER", "OUTFILE", "OUT_SYM", "OVER_SYM", + "PACKAGE_ORACLE_SYM", "PAGE_CHECKSUM_SYM", "PARSE_VCOL_EXPR_SYM", + "PARTITION_SYM", "PERCENTILE_CONT_SYM", "PERCENTILE_DISC_SYM", + "PERCENT_RANK_SYM", "PORTION_SYM", "POSITION_SYM", "PRECISION", + "PRIMARY_SYM", "PROCEDURE_SYM", "PURGE", "RAISE_ORACLE_SYM", "RANGE_SYM", + "RANK_SYM", "READS_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL", + "RECURSIVE_SYM", "REFERENCES", "REF_SYSTEM_ID_SYM", "REGEXP", + "RELEASE_SYM", "RENAME", "REPEAT_SYM", "REPLACE", "REQUIRE_SYM", + "RESIGNAL_SYM", "RESTRICT", "RETURNING_SYM", "RETURN_MARIADB_SYM", + "RETURN_ORACLE_SYM", "REVOKE", "RIGHT", "ROW_NUMBER_SYM", "ROWS_SYM", + "ROWTYPE_ORACLE_SYM", "SECOND_MICROSECOND_SYM", "SELECT_SYM", + "SENSITIVE_SYM", "SEPARATOR_SYM", "SERVER_OPTIONS", "SET", "SHOW", + "SIGNAL_SYM", "SMALLINT", "SPATIAL_SYM", "SPECIFIC_SYM", + "SQL_BIG_RESULT", "SQLEXCEPTION_SYM", "SQL_SMALL_RESULT", "SQLSTATE_SYM", + "SQL_SYM", "SQLWARNING_SYM", "SSL_SYM", "STARTING", + "STATS_AUTO_RECALC_SYM", "STATS_PERSISTENT_SYM", + "STATS_SAMPLE_PAGES_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STRAIGHT_JOIN", + "SUBSTRING", "SUM_SYM", "SYSDATE", "TABLE_REF_PRIORITY", "TABLE_SYM", + "TERMINATED", "THEN_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "TO_SYM", + "TRAILING", "TRIGGER_SYM", "TRIM", "TRUE_SYM", "UNDO_SYM", "UNION_SYM", + "UNIQUE_SYM", "UNLOCK_SYM", "UNSIGNED", "UPDATE_SYM", "USAGE", "USE_SYM", + "USING", "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM", + "VALUES_IN_SYM", "VALUES_LESS_SYM", "VALUES", "VARBINARY", "VARCHAR", + "VARIANCE_SYM", "VAR_SAMP_SYM", "VARYING", "WHEN_SYM", "WHERE", + "WHILE_SYM", "WITH", "XOR", "YEAR_MONTH_SYM", "ZEROFILL", + "BODY_MARIADB_SYM", "ELSEIF_ORACLE_SYM", "ELSIF_MARIADB_SYM", + "EXCEPTION_ORACLE_SYM", "GOTO_MARIADB_SYM", "OTHERS_MARIADB_SYM", + "PACKAGE_MARIADB_SYM", "RAISE_MARIADB_SYM", "ROWTYPE_MARIADB_SYM", + "ACCOUNT_SYM", "ACTION", "ADMIN_SYM", "ADDDATE_SYM", "AFTER_SYM", + "AGAINST", "AGGREGATE_SYM", "ALGORITHM_SYM", "ALWAYS_SYM", "ANY_SYM", + "ASCII_SYM", "AT_SYM", "ATOMIC_SYM", "AUTHORS_SYM", + "AUTOEXTEND_SIZE_SYM", "AUTO_INC", "AUTO_SYM", "AVG_ROW_LENGTH", + "AVG_SYM", "BACKUP_SYM", "BEGIN_MARIADB_SYM", "BEGIN_ORACLE_SYM", + "BINLOG_SYM", "BIT_SYM", "BLOCK_SYM", "BOOL_SYM", "BOOLEAN_SYM", + "BTREE_SYM", "BYTE_SYM", "CACHE_SYM", "CASCADED", "CATALOG_NAME_SYM", + "CHAIN_SYM", "CHANGED", "CHARSET", "CHECKPOINT_SYM", "CHECKSUM_SYM", + "CIPHER_SYM", "CLASS_ORIGIN_SYM", "CLIENT_SYM", "CLOB_MARIADB_SYM", + "CLOB_ORACLE_SYM", "CLOSE_SYM", "COALESCE", "CODE_SYM", "COLLATION_SYM", + "COLUMNS", "COLUMN_ADD_SYM", "COLUMN_CHECK_SYM", "COLUMN_CREATE_SYM", + "COLUMN_DELETE_SYM", "COLUMN_GET_SYM", "COLUMN_SYM", "COLUMN_NAME_SYM", + "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM", "COMPACT_SYM", + "COMPLETION_SYM", "COMPRESSED_SYM", "CONCURRENT", "CONNECTION_SYM", + "CONSISTENT_SYM", "CONSTRAINT_CATALOG_SYM", "CONSTRAINT_NAME_SYM", + "CONSTRAINT_SCHEMA_SYM", "CONTAINS_SYM", "CONTEXT_SYM", + "CONTRIBUTORS_SYM", "CPU_SYM", "CUBE_SYM", "CURRENT_SYM", + "CURRENT_POS_SYM", "CURSOR_NAME_SYM", "CYCLE_SYM", "DATAFILE_SYM", + "DATA_SYM", "DATETIME", "DATE_FORMAT_SYM", "DATE_SYM", "DAY_SYM", + "DEALLOCATE_SYM", "DECODE_MARIADB_SYM", "DECODE_ORACLE_SYM", + "DEFINER_SYM", "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DES_KEY_FILE", + "DIAGNOSTICS_SYM", "DIRECTORY_SYM", "DISABLE_SYM", "DISCARD", "DISK_SYM", + "DO_SYM", "DUMPFILE", "DUPLICATE_SYM", "DYNAMIC_SYM", "ENABLE_SYM", + "END", "ENDS_SYM", "ENGINES_SYM", "ENGINE_SYM", "ENUM", "ERROR_SYM", + "ERRORS", "ESCAPE_SYM", "EVENTS_SYM", "EVENT_SYM", "EVERY_SYM", + "EXCHANGE_SYM", "EXAMINED_SYM", "EXCLUDE_SYM", "EXECUTE_SYM", + "EXCEPTION_MARIADB_SYM", "EXIT_MARIADB_SYM", "EXIT_ORACLE_SYM", + "EXPANSION_SYM", "EXPIRE_SYM", "EXPORT_SYM", "EXTENDED_SYM", + "EXTENT_SIZE_SYM", "FAST_SYM", "FAULTS_SYM", "FEDERATED_SYM", "FILE_SYM", + "FIRST_SYM", "FIXED_SYM", "FLUSH_SYM", "FOLLOWS_SYM", "FOLLOWING_SYM", + "FORCE_SYM", "FORMAT_SYM", "FOUND_SYM", "FULL", "FUNCTION_SYM", + "GENERAL", "GENERATED_SYM", "GET_FORMAT", "GET_SYM", "GLOBAL_SYM", + "GRANTS", "HANDLER_SYM", "HARD_SYM", "HASH_SYM", "HELP_SYM", + "HIGH_PRIORITY", "HISTORY_SYM", "HOST_SYM", "HOSTS_SYM", "HOUR_SYM", + "ID_SYM", "IDENTIFIED_SYM", "IGNORE_SERVER_IDS_SYM", "IMMEDIATE_SYM", + "IMPORT", "INCREMENT_SYM", "INDEXES", "INITIAL_SIZE_SYM", + "INSERT_METHOD", "INSTALL_SYM", "INVOKER_SYM", "IO_SYM", "IPC_SYM", + "ISOLATION", "ISOPEN_SYM", "ISSUER_SYM", "INVISIBLE_SYM", "JSON_SYM", + "KEY_BLOCK_SIZE", "LANGUAGE_SYM", "LAST_SYM", "LAST_VALUE", + "LASTVAL_SYM", "LEAVES", "LESS_SYM", "LEVEL_SYM", "LIST_SYM", + "LOCAL_SYM", "LOCKS_SYM", "LOGFILE_SYM", "LOGS_SYM", + "MASTER_CONNECT_RETRY_SYM", "MASTER_DELAY_SYM", "MASTER_GTID_POS_SYM", + "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM", "MASTER_LOG_POS_SYM", + "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM", "MASTER_SERVER_ID_SYM", + "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM", "MASTER_SSL_CERT_SYM", + "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_CRL_SYM", "MASTER_SSL_CRLPATH_SYM", + "MASTER_SSL_KEY_SYM", "MASTER_SSL_SYM", "MASTER_SYM", "MASTER_USER_SYM", + "MASTER_USE_GTID_SYM", "MASTER_HEARTBEAT_PERIOD_SYM", + "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_ROWS", + "MAX_SIZE_SYM", "MAX_UPDATES_PER_HOUR", "MAX_STATEMENT_TIME_SYM", + "MAX_USER_CONNECTIONS_SYM", "MEDIUM_SYM", "MEMORY_SYM", "MERGE_SYM", + "MESSAGE_TEXT_SYM", "MICROSECOND_SYM", "MIGRATE_SYM", "MINUTE_SYM", + "MINVALUE_SYM", "MIN_ROWS", "MODE_SYM", "MODIFY_SYM", "MONITOR_SYM", + "MONTH_SYM", "MUTEX_SYM", "MYSQL_SYM", "MYSQL_ERRNO_SYM", "NAMES_SYM", + "NAME_SYM", "NATIONAL_SYM", "NCHAR_SYM", "NEVER_SYM", "NEW_SYM", + "NEXT_SYM", "NEXTVAL_SYM", "NOCACHE_SYM", "NOCYCLE_SYM", "NODEGROUP_SYM", + "NONE_SYM", "NOTFOUND_SYM", "NO_SYM", "NOMAXVALUE_SYM", "NOMINVALUE_SYM", + "NO_WAIT_SYM", "NOWAIT_SYM", "NUMBER_MARIADB_SYM", "NUMBER_ORACLE_SYM", + "NVARCHAR_SYM", "OF_SYM", "OFFSET_SYM", "OLD_PASSWORD_SYM", "ONE_SYM", + "ONLY_SYM", "ONLINE_SYM", "OPEN_SYM", "OPTIONS_SYM", "OPTION", + "OVERLAPS_SYM", "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PARSER_SYM", + "PARTIAL", "PARTITIONS_SYM", "PARTITIONING_SYM", "PASSWORD_SYM", + "PERIOD_SYM", "PERSISTENT_SYM", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", + "PORT_SYM", "PRECEDES_SYM", "PRECEDING_SYM", "PREPARE_SYM", + "PRESERVE_SYM", "PREV_SYM", "PREVIOUS_SYM", "PRIVILEGES", "PROCESS", + "PROCESSLIST_SYM", "PROFILE_SYM", "PROFILES_SYM", "PROXY_SYM", + "QUARTER_SYM", "QUERY_SYM", "QUICK", "RAW_MARIADB_SYM", "RAW_ORACLE_SYM", + "READ_ONLY_SYM", "REBUILD_SYM", "RECOVER_SYM", "REDOFILE_SYM", + "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM", "RELAY", "RELAYLOG_SYM", + "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM", "RELAY_THREAD", "RELOAD", + "REMOVE_SYM", "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM", "REPLAY_SYM", + "REPLICATION", "RESET_SYM", "RESTART_SYM", "RESOURCES", "RESTORE_SYM", + "RESUME_SYM", "RETURNED_SQLSTATE_SYM", "RETURNS_SYM", "REUSE_SYM", + "REVERSE_SYM", "ROLE_SYM", "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", + "ROWCOUNT_SYM", "ROW_SYM", "ROW_COUNT_SYM", "ROW_FORMAT_SYM", + "RTREE_SYM", "SAVEPOINT_SYM", "SCHEDULE_SYM", "SCHEMA_NAME_SYM", + "SECOND_SYM", "SECURITY_SYM", "SEQUENCE_SYM", "SERIALIZABLE_SYM", + "SERIAL_SYM", "SESSION_SYM", "SERVER_SYM", "SETVAL_SYM", "SHARE_SYM", + "SHUTDOWN", "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SLAVES", + "SLAVE_POS_SYM", "SLOW", "SNAPSHOT_SYM", "SOCKET_SYM", "SOFT_SYM", + "SONAME_SYM", "SOUNDS_SYM", "SOURCE_SYM", "SQL_BUFFER_RESULT", + "SQL_CACHE_SYM", "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM", "SQL_THREAD", + "STAGE_SYM", "STARTS_SYM", "START_SYM", "STATEMENT_SYM", "STATUS_SYM", + "STOP_SYM", "STORAGE_SYM", "STORED_SYM", "STRING_SYM", + "SUBCLASS_ORIGIN_SYM", "SUBDATE_SYM", "SUBJECT_SYM", "SUBPARTITIONS_SYM", + "SUBPARTITION_SYM", "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM", + "SWITCHES_SYM", "SYSTEM", "SYSTEM_TIME_SYM", "TABLES", "TABLESPACE", + "TABLE_CHECKSUM_SYM", "TABLE_NAME_SYM", "TEMPORARY", "TEMPTABLE_SYM", + "TEXT_SYM", "THAN_SYM", "TIES_SYM", "TIMESTAMP", "TIMESTAMP_ADD", + "TIMESTAMP_DIFF", "TIME_SYM", "TRANSACTION_SYM", "TRANSACTIONAL_SYM", + "THREADS_SYM", "TRIGGERS_SYM", "TRIM_ORACLE", "TRUNCATE_SYM", + "TYPES_SYM", "TYPE_SYM", "UDF_RETURNS_SYM", "UNBOUNDED_SYM", + "UNCOMMITTED_SYM", "UNDEFINED_SYM", "UNDOFILE_SYM", + "UNDO_BUFFER_SIZE_SYM", "UNICODE_SYM", "UNINSTALL_SYM", "UNKNOWN_SYM", + "UNTIL_SYM", "UPGRADE_SYM", "USER_SYM", "USE_FRM", "VALUE_SYM", + "VARCHAR2_MARIADB_SYM", "VARCHAR2_ORACLE_SYM", "VARIABLES", + "VERSIONING_SYM", "VIA_SYM", "VIEW_SYM", "VISIBLE_SYM", "VIRTUAL_SYM", + "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WEIGHT_STRING_SYM", "WINDOW_SYM", + "WITHIN", "WITHOUT", "WORK_SYM", "WRAPPER_SYM", "WRITE_SYM", "X509_SYM", + "XA_SYM", "XML_SYM", "YEAR_SYM", "CONDITIONLESS_JOIN", "ON_SYM", + "PREC_BELOW_NOT", "'='", "'>'", "'<'", "'|'", "'&'", "'-'", "'+'", "'*'", + "'/'", "'%'", "'^'", "'~'", "SUBQUERY_AS_EXPR", + "PREC_BELOW_IDENTIFIER_OPT_SPECIAL_CASE", "USER", + "PREC_BELOW_CONTRACTION_TOKEN2", "'('", "')'", "EMPTY_FROM_CLAUSE", + "','", "'!'", "'{'", "'}'", "';'", "'.'", "':'", "$accept", "query", + "$@1", "opt_end_of_input", "directly_executable_statement", + "verb_clause", "deallocate", "deallocate_or_drop", "prepare", "$@2", + "execute", "$@3", "$@4", "execute_using", "$@5", "execute_params", + "help", "$@6", "change", "$@7", "master_defs", "master_def", + "ignore_server_id_list", "ignore_server_id", "do_domain_id_list", + "do_domain_id", "ignore_domain_id_list", "ignore_domain_id", + "master_file_def", "optional_connection_name", "connection_name", + "create", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15", + "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23", "$@24", + "opt_sequence", "sequence_defs", "sequence_def", "server_def", "$@25", + "server_options_list", "server_option", "event_tail", "$@26", + "ev_schedule_time", "$@27", "opt_ev_status", "ev_starts", "ev_ends", + "opt_ev_on_completion", "ev_on_completion", "opt_ev_comment", + "ev_sql_stmt", "$@28", "clear_privileges", "opt_aggregate", "sp_handler", + "sp_name", "sp_a_chistics", "sp_c_chistics", "sp_chistic", + "sp_c_chistic", "sp_suid", "call", "$@29", "opt_sp_cparam_list", + "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", "$@30", "sp_fdparams", + "sp_param_name", "sp_param_name_and_type", "sp_pdparam_list", + "sp_pdparams", "sp_parameter_type", "sp_parenthesized_pdparam_list", + "$@31", "sp_parenthesized_fdparam_list", "sp_proc_stmts", + "sp_proc_stmts1", "optionally_qualified_column_ident", + "row_field_definition", "row_field_definition_list", "row_type_body", + "sp_decl_idents_init_vars", "sp_decl_variable_list", "$@32", + "sp_decl_handler", "$@33", "opt_parenthesized_cursor_formal_parameters", + "sp_cursor_stmt_lex", "sp_cursor_stmt", "$@34", "sp_handler_type", + "sp_hcond_list", "sp_hcond_element", "sp_cond", "sqlstate", "opt_value", + "sp_hcond", "raise_stmt_oracle", "signal_stmt", "signal_value", + "opt_signal_value", "opt_set_signal_information", + "signal_information_item_list", "signal_allowed_expr", + "signal_condition_information_item_name", "resignal_stmt", + "get_diagnostics", "which_area", "diagnostics_information", + "statement_information", "statement_information_item", + "simple_target_specification", "statement_information_item_name", + "condition_number", "condition_information", + "condition_information_item", "condition_information_item_name", + "sp_decl_ident", "sp_decl_idents", "sp_proc_stmt_if", "$@35", + "sp_proc_stmt_statement", "$@36", "RETURN_ALLMODES_SYM", + "sp_proc_stmt_return", "sp_proc_stmt_exit_oracle", + "sp_proc_stmt_continue_oracle", "sp_proc_stmt_leave", + "sp_proc_stmt_iterate", "sp_proc_stmt_goto_oracle", "expr_lex", "@37", + "assignment_source_lex", "assignment_source_expr", "$@38", + "for_loop_bound_expr", "$@39", "cursor_actual_parameters", + "opt_parenthesized_cursor_actual_parameters", "sp_proc_stmt_with_cursor", + "sp_proc_stmt_open", "sp_proc_stmt_fetch_head", "sp_proc_stmt_fetch", + "sp_proc_stmt_close", "sp_fetch_list", "sp_if", "$@40", "$@41", + "sp_elseifs", "case_stmt_specification", "$@42", "case_stmt_body", + "$@43", "simple_when_clause_list", "searched_when_clause_list", + "simple_when_clause", "$@44", "searched_when_clause", "$@45", + "else_clause_opt", "sp_opt_label", "opt_sp_for_loop_direction", + "sp_for_loop_index_and_bounds", "sp_for_loop_bounds", "loop_body", + "repeat_body", "pop_sp_loop_label", "sp_labeled_control", "$@46", "$@47", + "$@48", "$@49", "$@50", "$@51", "sp_unlabeled_control", "$@52", "$@53", + "$@54", "$@55", "$@56", "trg_action_time", "trg_event", + "change_tablespace_access", "change_tablespace_info", "tablespace_info", + "opt_logfile_group_name", "alter_tablespace_info", "logfile_group_info", + "alter_logfile_group_info", "add_log_file", "change_ts_option_list", + "$@57", "change_ts_options", "change_ts_option", + "tablespace_option_list", "tablespace_options", "tablespace_option", + "alter_tablespace_option_list", "alter_tablespace_options", + "alter_tablespace_option", "logfile_group_option_list", + "logfile_group_options", "logfile_group_option", + "alter_logfile_group_option_list", "alter_logfile_group_options", + "alter_logfile_group_option", "ts_datafile", "lg_undofile", + "lg_redofile", "tablespace_name", "logfile_group_name", "ts_access_mode", + "opt_ts_initial_size", "opt_ts_autoextend_size", "opt_ts_max_size", + "opt_ts_extent_size", "opt_ts_undo_buffer_size", + "opt_ts_redo_buffer_size", "opt_ts_nodegroup", "opt_ts_comment", + "opt_ts_engine", "opt_ts_wait", "ts_wait", "size_number", "create_body", + "$@58", "create_like", "opt_create_select", + "create_select_query_expression", "opt_create_partitioning", + "opt_partitioning", "partitioning", "$@59", "have_partitioning", + "partition_entry", "$@60", "partition", "$@61", "part_type_def", "$@62", + "$@63", "$@64", "opt_linear", "opt_key_algo", "part_field_list", + "part_field_item_list", "part_field_item", "part_column_list", + "part_func", "sub_part_func", "opt_num_parts", "opt_sub_part", "$@65", + "$@66", "sub_part_field_list", "sub_part_field_item", "part_func_expr", + "opt_num_subparts", "part_defs", "part_def_list", "part_definition", + "$@67", "part_name", "opt_part_values", "$@68", "$@69", "part_func_max", + "part_values_in", "part_value_list", "part_value_item", "$@70", "$@71", + "part_value_item_list", "part_value_expr_item", "opt_sub_partition", + "sub_part_list", "sub_part_definition", "$@72", "sub_name", + "opt_part_options", "opt_part_option_list", "opt_part_option", + "opt_versioning_rotation", "opt_versioning_interval_start", "opt_as", + "opt_create_database_options", "create_database_options", + "create_database_option", "opt_if_not_exists_table_element", + "opt_if_not_exists", "create_or_replace", "opt_create_table_options", + "create_table_options_space_separated", "create_table_options", + "create_table_option", "$@73", "opt_versioning_option", + "versioning_option", "default_charset", "default_collation", + "storage_engines", "known_storage_engines", "row_types", + "merge_insert_types", "udf_type", "create_field_list", + "create_field_list_parens", "field_list", "field_list_item", + "column_def", "key_def", "$@74", "$@75", "$@76", "$@77", "$@78", "$@79", + "$@80", "constraint_def", "period_for_system_time", + "period_for_application_time", "opt_check_constraint", + "check_constraint", "opt_constraint_no_id", "opt_constraint", + "constraint", "field_spec", "@81", "field_type_or_serial", "$@82", + "$@83", "opt_serial_attribute", "opt_serial_attribute_list", + "opt_asrow_attribute", "opt_asrow_attribute_list", "field_def", "$@84", + "opt_generated_always", "vcol_opt_specifier", "vcol_opt_attribute", + "vcol_opt_attribute_list", "vcol_attribute", "parse_vcol_expr", "$@85", + "parenthesized_expr", "virtual_column_func", "expr_or_literal", + "column_default_expr", "field_type", "qualified_field_type", + "field_type_all", "field_type_numeric", "opt_binary_and_compression", + "field_type_string", "field_type_temporal", "field_type_lob", + "field_type_misc", "char", "nchar", "varchar", "nvarchar", "int_type", + "real_type", "srid_option", "float_options", "precision", + "field_options", "last_field_options", "field_length", + "opt_field_length", "opt_precision", "attribute_list", "attribute", + "opt_compression_method", "opt_compressed", "opt_enable", "compressed", + "compressed_deprecated_data_type_attribute", + "compressed_deprecated_column_attribute", "asrow_attribute", + "serial_attribute", "with_or_without_system", "charset", "charset_name", + "charset_name_or_default", "opt_load_data_charset", + "old_or_new_charset_name", "old_or_new_charset_name_or_default", + "collation_name", "opt_collate", "collation_name_or_default", + "opt_default", "charset_or_alias", "collate", "opt_binary", "binary", + "opt_bin_mod", "ws_nweights", "$@86", "ws_level_flag_desc", + "ws_level_flag_reverse", "ws_level_flags", "ws_level_number", + "ws_level_list_item", "ws_level_list", "ws_level_range", + "ws_level_list_or_range", "opt_ws_levels", "opt_primary", "references", + "opt_ref_list", "ref_list", "opt_match_clause", "opt_on_update_delete", + "delete_option", "constraint_key_type", "key_or_index", + "opt_key_or_index", "keys_or_index", "fulltext", "spatial", + "normal_key_options", "fulltext_key_options", "spatial_key_options", + "normal_key_opts", "spatial_key_opts", "fulltext_key_opts", + "opt_USING_key_algorithm", "opt_key_algorithm_clause", "key_using_alg", + "all_key_opt", "normal_key_opt", "spatial_key_opt", "fulltext_key_opt", + "btree_or_rtree", "key_list", "opt_without_overlaps", "key_part", + "opt_ident", "string_list", "alter", "$@87", "$@88", "$@89", "$@90", + "$@91", "$@92", "$@93", "$@94", "$@95", "$@96", "$@97", "$@98", "$@99", + "account_locking_option", "opt_password_expire_option", + "opt_account_locking_and_opt_password_expiration", + "ev_alter_on_schedule_completion", "opt_ev_rename_to", "opt_ev_sql_stmt", + "ident_or_empty", "alter_commands", "$@100", "$@101", "$@102", + "remove_partitioning", "all_or_alt_part_name_list", "add_partition_rule", + "$@103", "add_part_extra", "reorg_partition_rule", "$@104", + "reorg_parts_rule", "$@105", "alt_part_name_list", "alt_part_name_item", + "alter_list", "add_column", "alter_list_item", + "opt_index_lock_algorithm", "alter_algorithm_option", + "alter_lock_option", "opt_column", "opt_ignore", "alter_options", + "$@106", "alter_options_part2", "alter_option_list", "alter_option", + "opt_restrict", "opt_place", "opt_to", "slave", "$@107", "$@108", + "start", "opt_start_transaction_option_list", + "start_transaction_option_list", "start_transaction_option", + "slave_thread_opts", "$@109", "slave_thread_opt_list", + "slave_thread_opt", "slave_until", "slave_until_opts", "checksum", + "$@110", "opt_checksum_type", "repair_table_or_view", "$@111", "repair", + "$@112", "opt_mi_repair_type", "mi_repair_types", "mi_repair_type", + "opt_view_repair_type", "analyze", "$@113", "analyze_table_list", + "analyze_table_elem_spec", "opt_persistent_stat_clause", + "persistent_stat_spec", "persistent_column_stat_spec", "$@114", + "persistent_index_stat_spec", "$@115", "table_column_list", + "table_index_list", "table_index_name", "binlog_base64_event", + "check_view_or_table", "$@116", "check", "$@117", "opt_mi_check_type", + "mi_check_types", "mi_check_type", "opt_view_check_type", "optimize", + "$@118", "opt_no_write_to_binlog", "rename", "$@119", "rename_list", + "table_to_table_list", "table_to_table", "keycache", "$@120", + "keycache_list_or_parts", "keycache_list", "assign_to_keycache", + "assign_to_keycache_parts", "key_cache_name", "preload", "$@121", + "preload_list_or_parts", "preload_list", "preload_keys", + "preload_keys_parts", "adm_partition", "$@122", "cache_keys_spec", + "$@123", "cache_key_list_or_empty", "opt_ignore_leaves", "select", + "$@124", "$@125", "select_into", "$@126", "$@127", "simple_table", + "table_value_constructor", "$@128", "query_specification_start", "$@129", + "$@130", "query_specification", "select_into_query_specification", + "query_expression", "query_expression_no_with_clause", + "query_expression_body_ext", "$@131", "$@132", + "query_expression_body_ext_parens", "query_expression_body", "$@133", + "query_primary", "query_simple", "subselect", "subquery", + "opt_from_clause", "from_clause", "table_reference_list", + "select_options", "opt_history_unit", "history_point", + "for_portion_of_time_clause", "opt_for_portion_of_time_clause", + "opt_for_system_time_clause", "system_time_expr", "select_option_list", + "select_option", "select_lock_type", "opt_select_lock_type", + "opt_lock_wait_timeout_new", "select_item_list", "select_item", + "remember_tok_start", "remember_name", "remember_end", "select_alias", + "opt_default_time_precision", "opt_time_precision", "optional_braces", + "expr", "predicate", "bit_expr", "or", "and", "not", "not2", "comp_op", + "all_or_any", "opt_dyncol_type", "dyncol_type", "numeric_dyncol_type", + "temporal_dyncol_type", "string_dyncol_type", "$@134", + "dyncall_create_element", "dyncall_create_list", "plsql_cursor_attr", + "explicit_cursor_attr", "trim_operands", + "column_default_non_parenthesized_expr", "primary_expr", + "string_factor_expr", "simple_expr", "mysql_concatenation_expr", + "function_call_keyword_timestamp", "function_call_keyword", + "function_call_nonkeyword", "function_call_conflict", + "function_call_generic", "@135", "fulltext_options", + "opt_natural_language_mode", "opt_query_expansion", "opt_udf_expr_list", + "udf_expr_list", "udf_expr", "sum_expr", "$@136", "$@137", "$@138", + "$@139", "$@140", "window_func_expr", "window_func", + "simple_window_func", "inverse_distribution_function", + "percentile_function", "$@141", "inverse_distribution_function_def", + "order_by_single_element_list", "window_name", "variable", "$@142", + "variable_aux", "opt_distinct", "opt_gconcat_separator", + "opt_gorder_clause", "gorder_list", "opt_glimit_clause", + "glimit_clause_init", "glimit_clause", "glimit_options", "in_sum_expr", + "$@143", "cast_type", "$@144", "$@145", "$@146", "cast_type_numeric", + "cast_type_temporal", "opt_expr_list", "expr_list", "ident_list_arg", + "ident_list", "when_list", "when_list_opt_else", + "decode_when_list_oracle", "table_ref", "join_table_list", + "esc_table_ref", "derived_table_list", "join_table", "$@147", "$@148", + "$@149", "$@150", "$@151", "$@152", "inner_join", "normal_join", + "opt_use_partition", "use_partition", "table_factor", + "table_primary_ident_opt_parens", "table_primary_derived_opt_parens", + "table_reference_list_parens", "nested_table_reference_list", + "join_table_parens", "table_primary_ident", "table_primary_derived", + "opt_outer", "index_hint_clause", "index_hint_type", + "index_hint_definition", "$@153", "$@154", "index_hints_list", + "opt_index_hints_list", "$@155", "opt_key_definition", "$@156", + "opt_key_usage_list", "key_usage_element", "key_usage_list", + "using_list", "interval", "interval_time_stamp", "date_time_type", + "table_alias", "opt_table_alias_clause", "table_alias_clause", "opt_all", + "opt_where_clause", "$@157", "opt_having_clause", "$@158", + "opt_group_clause", "group_list", "olap_opt", "opt_window_clause", + "window_def_list", "window_def", "window_spec", "$@159", + "opt_window_ref", "opt_window_partition_clause", + "opt_window_order_clause", "opt_window_frame_clause", + "window_frame_units", "window_frame_extent", "window_frame_start", + "window_frame_bound", "opt_window_frame_exclusion", "alter_order_clause", + "alter_order_list", "alter_order_item", "opt_order_clause", + "order_clause", "$@160", "order_list", "order_dir", "opt_limit_clause", + "limit_clause", "opt_global_limit_clause", "limit_options", + "limit_option", "limit_rows_option", "delete_limit_clause", + "order_limit_lock", "opt_order_limit_lock", "query_expression_tail", + "opt_query_expression_tail", "opt_procedure_or_into", "order_or_limit", + "opt_plus", "int_num", "ulong_num", "real_ulong_num", "longlong_num", + "ulonglong_num", "real_ulonglong_num", "dec_num_error", "dec_num", + "choice", "bool", "procedure_clause", "$@161", "procedure_list", + "procedure_list2", "procedure_item", "select_var_list_init", "$@162", + "select_var_list", "select_var_ident", "select_outvar", "into", + "into_destination", "$@163", "$@164", "do", "$@165", "drop", "$@166", + "$@167", "$@168", "$@169", "table_list", "table_name", + "table_name_with_opt_use_partition", "table_alias_ref_list", + "table_alias_ref", "opt_if_exists_table_element", "opt_if_exists", + "opt_temporary", "insert", "$@170", "$@171", "replace", "$@172", "$@173", + "insert_start", "stmt_end", "insert_lock_option", "replace_lock_option", + "insert_replace_option", "opt_into", "insert_table", "$@174", + "insert_field_spec", "$@175", "insert_field_list", "opt_fields", + "fields", "insert_values", "values_list", "ident_eq_list", + "ident_eq_value", "equal", "opt_equal", "opt_with", "opt_by", + "no_braces", "$@176", "no_braces_with_names", "$@177", "opt_values", + "opt_values_with_names", "values", "values_with_names", "expr_or_ignore", + "expr_or_ignore_or_default", "opt_insert_update", "$@178", "$@179", + "update_table_list", "update", "$@180", "$@181", "$@182", "update_list", + "update_elem", "insert_update_list", "insert_update_elem", + "opt_low_priority", "delete", "$@183", "opt_delete_system_time", + "delete_part2", "delete_single_table", "delete_single_table_for_period", + "single_multi", "$@184", "$@185", "$@186", "$@187", "opt_returning", + "@188", "table_wild_list", "table_wild_one", "opt_wild", + "opt_delete_options", "opt_delete_option", "truncate", "$@189", "$@190", + "opt_table_sym", "opt_profile_defs", "profile_defs", "profile_def", + "opt_profile_args", "show", "$@191", "show_param", "$@192", "$@193", + "show_engine_param", "master_or_binary", "opt_storage", "opt_db", + "opt_full", "from_or_in", "binlog_in", "binlog_from", "wild_and_where", + "describe", "$@194", "$@195", "explainable_command", "describe_command", + "analyze_stmt_command", "opt_extended_describe", "opt_format_json", + "opt_describe_column", "flush", "$@196", "flush_options", "$@197", + "opt_flush_lock", "flush_lock", "$@198", "flush_options_list", + "flush_option", "opt_table_list", "backup", "backup_statements", "$@199", + "opt_delete_gtid_domain", "delete_domain_id_list", "delete_domain_id", + "optional_flush_tables_arguments", "reset", "$@200", "reset_options", + "reset_option", "$@201", "$@202", "slave_reset_options", + "master_reset_options", "purge", "$@203", "kill", "$@204", "kill_type", + "kill_option", "opt_connection", "kill_expr", "shutdown", "$@205", + "shutdown_option", "use", "load", "$@206", "$@207", "$@208", "$@209", + "data_or_xml", "opt_local", "load_data_lock", "opt_duplicate", + "opt_field_term", "field_term_list", "field_term", "opt_line_term", + "line_term_list", "line_term", "opt_xml_rows_identified_by", + "opt_ignore_lines", "lines_or_rows", "opt_field_or_var_spec", + "fields_or_vars", "field_or_var", "opt_load_data_set_spec", + "load_data_set_list", "load_data_set_elem", "text_literal", + "text_string", "hex_or_bin_String", "param_marker", "signed_literal", + "literal", "NUM_literal", "temporal_literal", "with_clause", "$@210", + "opt_recursive", "with_list", "with_list_element", "opt_cycle", "$@211", + "opt_with_column_list", "with_column_list", "ident_sys_alloc", + "comma_separated_ident_list", "with_element_head", "insert_ident", + "table_wild", "select_sublist_qualified_asterisk", "order_ident", + "simple_ident", "simple_ident_nospvar", "field_ident", "table_ident", + "table_ident_opt_wild", "table_ident_nodb", "IDENT_cli", "ident_cli", + "IDENT_sys", "TEXT_STRING_sys", "TEXT_STRING_literal", + "TEXT_STRING_filesystem", "ident_table_alias", + "ident_cli_set_usual_case", "ident_sysvar_name", "ident", "label_ident", + "ident_or_text", "user_maybe_role", "user_or_role", "user", + "keyword_table_alias", "keyword_ident", "keyword_sysvar_name", + "keyword_set_usual_case", "non_reserved_keyword_udt", + "keyword_sp_var_not_label", "keyword_sp_head", "keyword_verb_clause", + "keyword_set_special_case", "keyword_sysvar_type", "keyword_data_type", + "keyword_cast_type", "keyword_sp_var_and_label", + "reserved_keyword_udt_not_param_type", "set", "$@212", "set_param", + "$@213", "$@214", "$@215", "set_stmt_option_list", + "start_option_value_list_following_option_type", "$@216", + "option_value_list", "option_value", "$@217", "option_type", + "opt_var_type", "opt_var_ident_type", "set_stmt_option", "$@218", + "$@219", "$@220", "option_value_following_option_type", "$@221", "$@222", + "$@223", "option_value_no_option_type", "$@224", "$@225", "$@226", + "$@227", "$@228", "$@229", "$@230", "$@231", "$@232", "$@233", + "transaction_characteristics", "transaction_access_mode", + "isolation_level", "transaction_access_mode_types", "isolation_types", + "text_or_password", "set_expr_or_default", "lock", "$@234", + "opt_lock_wait_timeout", "table_or_tables", "table_lock_list", + "table_lock", "lock_option", "unlock", "$@235", "handler", "$@236", + "handler_tail", "$@237", "handler_read_or_scan", "handler_scan_function", + "handler_rkey_function", "$@238", "handler_rkey_mode", "revoke", + "revoke_command", "admin_option_for_role", "grant", "grant_command", + "opt_with_admin", "opt_with_admin_option", "role_list", "current_role", + "grant_role", "opt_table", "grant_privileges", "opt_privileges", + "object_privilege_list", "column_list_privilege", "column_privilege", + "object_privilege", "opt_and", "require_list", "require_list_element", + "grant_ident", "user_list", "grant_list", "user_and_role_list", + "via_or_with", "using_or_as", "grant_user", "auth_expression", + "auth_token", "opt_auth_str", "opt_require_clause", "resource_option", + "resource_option_list", "opt_resource_options", "opt_grant_options", + "opt_grant_option", "grant_option_list", "grant_option", + "begin_stmt_mariadb", "$@239", "compound_statement", "opt_not", + "opt_work", "opt_chain", "opt_release", "commit", "rollback", + "savepoint", "release", "unit_type_decl", "union_option", + "query_expression_option", "definer_opt", "no_definer", "definer", + "view_algorithm", "opt_view_suid", "view_suid", "view_list_opt", + "view_list", "view_select", "$@240", "view_check_option", + "trigger_action_order", "trigger_follows_precedes_clause", + "trigger_tail", "$@241", "$@242", "$@243", "$@244", "$@245", + "sf_return_type", "$@246", "xa", "opt_format_xid", "xid", + "begin_or_start", "opt_join_or_resume", "opt_one_phase", "opt_suspend", + "$@247", "opt_migrate", "install", "uninstall", "keep_gcc_happy", + "_empty", "statement", "sp_statement", "sp_if_then_statements", + "sp_case_then_statements", "reserved_keyword_udt_param_type", + "reserved_keyword_udt", "keyword_sp_block_section", "keyword_label", + "keyword_sp_decl", "opt_truncate_table_storage_clause", + "ident_for_loop_index", "row_field_name", "while_body", "$@248", + "for_loop_statements", "sp_label", "sp_control_label", "sp_block_label", + "sp_opt_default", "sp_pdparam", "sp_decl_variable_list_anchored", + "sp_param_name_and_type_anchored", "sf_c_chistics_and_body_standalone", + "$@249", "sp_tail_standalone", "$@250", "$@251", "drop_routine", + "create_routine", "$@252", "$@253", "$@254", "sp_decls", "sp_decl", + "sp_decl_body", "$@255", "sp_proc_stmt_in_returns_clause", + "sp_proc_stmt", "sp_proc_stmt_compound_ok", "sp_labeled_block", "$@256", + "sp_unlabeled_block", "$@257", "sp_unlabeled_block_not_atomic", "$@258", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 64, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, + 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, + 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, + 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, + 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, + 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, + 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, + 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, + 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, + 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, + 1004, 1005, 1006, 1007, 1008, 61, 62, 60, 124, 38, + 45, 43, 42, 47, 37, 94, 126, 1009, 1010, 1011, + 1012, 40, 41, 1013, 44, 33, 123, 125, 59, 46, + 58 +}; +# endif + +#define YYPACT_NINF -5579 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-5579))) + +#define YYTABLE_NINF -3655 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const int yypact[] = +{ + 7116, -5579, -5579, 3115, 1228, 91094, -5579, 41, -5579, 966, + -5579, -5579, -5579, 3014, -5579, -5579, -5579, -5579, -5579, 205, + 121, -5579, 1075, -5579, -5579, 412, 77882, -102, 517, -5579, + -5579, 80818, -5579, -5579, -5579, -5579, 80818, -5579, -5579, 91094, + -5579, -5579, 368, 207, 455, 2219, 486, 121, -101, -5579, + -5579, 91828, 1075, 923, -5579, -5579, 1257, 91094, 1075, -5579, + -101, 91094, -5579, 495, 226, -5579, 1480, 2112, 413, 1284, + 1328, -5579, -5579, 1026, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 2512, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 1183, -5579, -5579, -5579, + -5579, 2797, 378, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 44749, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 413, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 92562, 91094, 874, 943, 91094, + 1660, 1764, 78616, 91094, 1764, -5579, 38, -5579, -5579, 1539, + -5579, 1258, -5579, 121, 364, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + 1268, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 1761, 2071, 950, 1880, 2145, 91094, 1089, 1764, -5579, + 1764, 1764, 1764, 1764, 2160, 1764, 1764, 91094, -5579, 1764, + 1764, 833, 91094, 66138, -5579, -5579, 746, 2196, -5579, -5579, + -5579, -5579, -5579, -5579,104800, 121, 22998, 2313, -5579, -5579, + 1879, 7435, 1708, -5579, 2193, -5579, -5579, 91094, -5579, 1764, + 104800, -5579, -5579, 2193, 66872, 2717, 49163, 11712, 2193, 121, + 2273, -5579, 1686, -5579, -5579, -5579, -5579, -5579, 91094, -5579, + -5579, -5579, 2140, -101, 78616, -5579, -5579, -5579, -5579, -5579, + 2444, 22998, 161, 2203, -5579, -5579, 2103, 45483, 78616, 2372, + 2071, 2393, -5579, 1468, 1155, -5579, 1817, 1876, 2071, 1114, + 1882, 2071, 2281, 1764, 1764, -5579, -5579, 2813, 2813, 2813, + 2108, 2813, -5579, 2813, 2436, 1818, 138, -5579, -5579, 1806, + 91094, 2372, -5579, 2372, -5579, 2456, 2372, 2372, 1946, 2468, + 2472, 933, 1465, 1478, 1478, 1539, 40345, 294, 2314, -5579, + 2436, 2191, 1230, 1855, 1855, 1855, 2191, 413, 2191, -5579, + 1239, 1258, 1365, 91094, -5579, -5579, -5579, 1841, -5579, -5579, + 317, -5579, 1899, -5579, 1059, 69808, -5579, 91094, 2510, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 1196, -5579, -5579, + 2358, 235, 1995, 2223, 1897, -5579, 2405, 78616, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 1906, 91094, -5579, -5579, + 22998, 2535, 1761, -5579, 2401, -5579, -5579, -5579, -5579, 45483, + -5579, 91094, -5579, 2648, -5579, -5579, 2568, -5579, -5579, 81552, + 249, 91094, 2559, 91094, 91094, 91094, 91094, 91094, -5579, 78616, + 2017, -5579, -5579, 1764, 1764, -5579, -5579, 2554, 2118, 2123, + 1651, 1948, 2303, -5579, 2159, -5579, 2001, 2079, 2213, 2020, + 2021, 2074, 159, -5579, 2049, -5579, 1122, 2499, 94, 109, + 2503, 312, 358, 2640, 2527, 360, 987, 377, 2312, 403, + -5579, -5579, -5579, 2577, 2662, 2106, -5579, 2091, -5579, 2600, + 2461, 241, -5579, -5579, 120, 2539, 274, 45483,106656, 79350, + 107552,107552,107552, -5579, 233, -5579, 455, 91094,107104, -5579, + 91094,100576, -5579, 8152, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 91094, -5579, -5579, -5579, -5579, -5579, 2113, + -5579, -5579, -5579, -5579, -5579, 2584, 1550, 2588, -5579, 2141, + -5579, -5579, -5579, -5579, -5579, 82286, -5579, 171, 179, 2895, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 29094, 2208, 2209, 2217, 18426, 2218, 2246, 2247, 2250, + 2266, 1948, 1948, 1948, 2274, 2295, 2296, 2306, 2319, 2331, + 2335, 2339, -5579, 2366, 2370, 2386, 2389, 2397, 2402, 23760, + 2404, 2406, 2408, 36663, 2409, 2410, 2418, 2419, 22998, 2274, + 2421, 2422, -5579, 2423, 2424, 2426, 2429, 2432, 2433, 2437, + 2438, 2442, 2913, 2446, 2448, 2454, 2458, 2274, 2459, -5579, + 1948, 2274, 2274, 2464, 2466, 2467, 2469, 2471, 2476, 2480, + 2483, 2488, 2489, 2493, 2501, 2502, 2504, 2516, 187, 2517, + 2518, 2519, 2520, 2521, 2522, 2525, 2529, 2531, 2532, 2537, + 2202, 2541, 2545, 2546, 2556, 2254, 2560, 2563, 2567, 2569, + 2580, 2581, 2582, 189, 2586, 2589, 247, 2590, 2591, 2592, + 2593, 2594, 2595, 2597, 2598, 29856, 30618, 29094, 16140, -5579, + 91094, 93296, -5579, -5579, 10303, 1488, 2136, 29094, -5579, -5579, + -5579, 2921, -5579, 2975, -5579, -5579, -5579, -5579, 2848, 2874, + -5579, 2908, -5579, -5579, 2948, 2342, -5579, 3134, -5579, -5579, + -5579, -5579, -5579, 2428, 2601, 3162, 3187, -5579, -5579, 407, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, 2496, 2543, -5579, 3134, -5579, -5579, 72744, -5579, + 105504, -5579, 293, -5579, 2118, 2730, 3113, -5579, 3185, -5579, + 3128, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 2717, -5579, -5579, 49907, 3105, 964, -5579, + 268, -5579, 278, 286, 61734, 190, 62468, 288, 83020, 1202, + -5579, 70542, -5579, 298, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 2599, -5579, 2710, 2609, 2225, 1607, + -5579, -5579, 232, 60, 2703, 132, -5579, 853, -5579, 1607, + -5579, 73478, 3220, 1969, -5579, 817, -5579, 3261, -5579, -5579, + 2714, 2702, 2731, -5579, 1653, -5579, 2071, -5579, 244, -5579, + 3220, 1607, 1969, -5579, 2897, 2979, 834, 3280, -5579, 978, + -5579, -5579, -5579, 3266, -5579, 2634, -5579, 2994, -5579, 91094, + 45483, -5579, -5579, -5579, 2642, 45483, 45483, 107, 166, 10303, + 2646, 22998, -5579, -5579, 10441, 52883, 2847, 1207, -104, -5579, + -5579, 455, 91094, -5579, -5579, 959, -5579, 3072, -5579, 2651, + -5579, 94030, 166, 3302, -5579, -5579, -5579, -28, 3045, -5579, + 2656, -5579, -5579, -5579, -5579, 45483, 91094, 2071, -5579, -5579, + -5579, -5579, 2659, -5579, -5579, 2863, 2746, -5579, 2682, -5579, + -5579, 153, -5579, -5579, 3432, -5579, 91094, -5579, 2372, -5579, + -5579, 2372, -5579, -5579, -5579, 2372, 2372, 2372, -5579, -5579, + 2705, -5579, 2983, 2986, 2405, -5579, 39611, 91094, 3436, -5579, + 2645, -5579, -5579, 2672, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, 3237, 3418, 3418, -5579, 50651, -5579, -5579, 3316, + 2314, 3163, 54372, 3305, 3389, -5579, 3220, -5579, -5579, -5579, + 2041, 91094, -5579, 2041, 2041, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 413, -5579, -5579, + 364, 71276, 91094, 2191, 1230, -5579, -5579, -5579, 2071, 331, + 3058, -5579, -5579, -5579, -5579, 1948, 3461, -5579, -5579, -5579, + -5579, -5579, 3420, -5579, -5579, 45483, 2891, 3071, 3071, 3071, + 3425, -5579, -5579, -5579, 69808, 1764, -5579, -5579, -5579, 235, + -5579, 128, 91094, 45483, 2737, -5579, 45483, 22998, -5579, -5579, + -5579, 3171, 10303,104800, 3061, -5579, -5579, 45483, 1201, -5579, + -5579, -5579, 3420, 3071, 45483, 3429, 45483, 3361, 2314, -5579, + 2715, -5579, 2709, -5579, -5579, 3372, 91094, -5579, -5579, -5579, + 2712, 2017, 74212, -5579, 767, 3069, 72744, 45483, -5579, -5579, + 3078, 2860, -5579, -5579, -5579, -5579, -5579, -5579, 2805, -5579, + -5579, 2732, -5579, -5579, -5579, -5579, 3179, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 72744, -5579, -5579, 3181, 3182, + -5579, 69808, 1732, 11137, 93296, -5579, 3369, -5579, -5579, -5579, + 3266, -5579, -5579, 24522, -5579, 25284, -5579, -5579, -5579, 3010, + 425, 1137, -5579, -5579, 3204, 91094, 2960, 3390, 3367, -5579, + -5579, -5579, -5579, -5579, -5579, 3213, 2749, 3350, 2757, -5579, + -5579, -5579, 2753, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 45483, 51395, -5579, -5579, -5579, 2758, -5579, -5579, -5579, + 2765, 29094, 29094, -5579, 3492, 3492, 3492, 22998, 590, 1169, + 3120, 22998, 22998, 22998, 2006, 2770, -5579, -5579, -5579, 240, + -5579, 2773, 22998, 22998, 37403, 2774, 890, 5572, 22998, 3444, + 3444, -5579, 22998, 22998, 16140, 10228, 22998, 22998, 22998, 93296, + 37403, 3234, 2788, -5579, 2786, 2013, 22998, 2075, 22998, 502, + -5579, 22998, 22998, 22998, 22998, 2794, 31380, 2801, 22998, 22998, + 22998, 2803, 2929, 3492, 3492, 22998, 2100, -5579, 16902, -5579, + -5579, -5579, 3492, 3492, 22998, 22998, 2121, 22998, 22998, 22998, + 22998, 22998, 22998, 22998, 22998, 22998, 22998, -5579, 22998, 22998, + 22998, 22998, 22998, 1010, 22998, 22998, 45483, 22998, 22998, 22998, + 3456, 45483, 22998, 22998, 22998, 3458, 22998, 22998, 22998, 2812, + 22998, 45483, 22998, -5579, 22998, 4230, 4230, -5579, 22998, 16902, + 22998, 2814, 38143, 22998, 22998, 22998, 22998, 23760, -5579, 23760, + -5579, -5579, 2818, 1748, 3788, 413, 22998, 2815, -5579, 31380, + -5579, -5579, -5579, -5579, -5579, 481, -5579, 22998, -5579, -5579, + -5579, 22998, 22998, 26046, 31380, 2820, 31380, 31380, 3430, 2014, + 31380, 31380, 31380, 31380, 31380, 31380, 31380, 32142, 32904, 31380, + 31380, 31380, 31380, -5579, 78616, 29094, 48419, 2824, 3464, -5579, + 93296, -5579, 1499, 199, -5579, 2071, 7435, 34425, -5579, 2825, + -5579, 3319, 45483, 2823, 3454, -5579, 2831, 3481, 72744, 69808, + 1732, 2849, -5579, 1147, 304, -5579, 74212, 91094, -5579, -5579, + -5579, 3537, 22998, -5579, -5579, -5579, -5579, -5579, 2833, 299, + 2836, -5579, 1227, -5579, -5579, -5579, -5579, -5579, 91094, -5579, + 83754, 52139, 2934, 2852, 2372, 84488, 91094, 45483, 91094, 94764, + 91094, 91094, 45483, 72744, 45483, -5579, -5579, -5579, 821, 1607, + 91094, 1607, 1969, 876, 1607, 3470, -5579, -5579, 1264, 1264, + -5579, -5579, -5579, -5579, -5579, -5579, 1607, 91094, 91094, 1607, + 69808, -5579, 1969, 408, -5579, 3135, 2932, -5579, -5579, -5579, + 3177, -5579, -5579, 3502, 2856, -5579, 3205, -5579, -5579, 2953, + -5579, -5579, 45483, -5579, -5579, 1969, -5579, 1969, 1969, 22998, + 1607, 1607, 1607, -5579, 41079, 2862, 2864, -5579, 2865, -5579, + 2867, -5579, -5579, -5579, 3637, 3494, 2869, -5579, -5579, 3437, + 829, -5579, 3294, -5579, 3422, -5579, 22998, 10303, 19188, 3149, + -5579, -5579, 3152, 3154, 3155, -5579, -5579, -5579, -5579, 3307, + 3157, -5579, 2071, 3168, -5579, -5579, -5579, 2898, -5579, -5579, + -5579, 78616, 34425, -5579, 2899, -5579, 2916, -5579, 229, -5579, + -5579, 3557, 3012, 22998, -5579, -5579, 45483, 3396, -5579, 2071, + 1468, 91094, -5579, -5579, 3634, -5579, 679, -5579, -5579, -5579, + 3018, 1114, -5579, -5579, 875, -5579, -5579, 2813, 3095, -5579, + -5579, -5579, 78616, -5579, -5579, -5579, -5579, -5579, -5579, 91094, + -5579, 74212, 69808, 78616, 2372, 2372, -5579, 45483, -5579, -5579, + -5579, 2372, 2372, 2372, 2949, 621, 2914, 2920, 2922, 2925, + 1795, 2926, 41813, 2484, 180, 3531, 3534, -5579, 3496, 1990, + 3496, -5579, -5579, 41813, 41079, 2930, 3436, -5579, -5579, -5579, + -5579, 78616, 2928, -5579, -5579, 2936, -5579, 22998, 3640, 3572, + 3316, 1063, 82286, -5579, -5579, -5579, 3275, 3472, 632, -5579, + 2938, 3062, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 304, + 184, -5579, -5579, -5579, 384, 3308, 2188, -5579, 78616, 2188, + 772, 1241, -5579, 2950, 2071, 1662, -5579, 1662, -5579, 3247, + -5579, 3249, 49, -5579, 45483, -5579, -5579, -5579, -5579, -5579, + 45483, 2951, -5579, 3136, 2952, 2954, 10303, 3449, -5579, 3171, + -5579, 99872, -5579, 3660, 11116, 124, 3003, -5579, -5579, -5579, + -5579, -5579, 45483, -5579, -5579, 1425, 3015, 3438, 3237, 3038, + -5579, 2959, -5579, -5579, 74, 3520, -5579, -5579, 3535, 91094, + 3611, 56596, -5579, -5579, 3541, 91094, 767, 2965, -5579, -5579, + -5579, -5579, -5579, 304, -5579, 2966, 162, 45483, 45483,104800, + -5579, -5579, 2971, -5579, -5579, -5579, 3463, -5579, -5579, 44, + 3683, -5579, -5579, -5579, 42547, 42547, 1122, 2499, -5579, -5579, + 2503, -5579, -5579, 2527, -5579, 987, -5579, 2312, -5579, -5579, + -5579, -5579, 1798, -5579,104800, -5579, 3454, 22998, 47685, 10303, + -5579, -5579, 45483, -5579, 3605, -5579, -5579, 96232, 419, -5579, + -5579, 195, 45483, -5579, -5579, -5579, 3598, 3111, 91094, -5579, + -5579, 3659, -5579, -5579, -5579, -5579, -5579, -5579, 91094, 91094, + 104800,104800, -5579, -5579, 1178, 1147, -5579, 3715, 93296, 22998, + -5579, 2985, -5579, 2990, 2996, 9317, 3346, 22998, 22998, -5579, + 6804, 23, 2704, -5579, 2999, 3017, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 3000, -5579, -5579, -5579, 3880, 3909, + 3008, -5579, -5579, -5579, 3013, 413, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 3661, -5579, 4574, -5579, + -5579, -5579, 22998, 4039, 4092, 4378, 3030, 3004, 3060, 4670, + 2758, 1805, 3022, 37403, 93296, 3492, 3023, 6145, 3492, 3024, + 4722, 4789, 7009, 7028, 7052, -5579, 359, -5579, 4900, 5040, + 5151, -5579, -5579, 3025, 3026, 3084, 3492, 3029, 19950, 20712, + 21474, 9694, 3032, 3035, 3036, 5185, 7119, 3492, 3037, 7202, + 1824, 7350, 5449, 7410, 5516, -5579, 1864, 5709, 5819, 3040, + 2646, 5899, 7469, 7885, 5964, 6038, 6102, -5579, -5579, -5579, + -5579, 3028, 7897, 7928, 3039, 3042, 7992, 8059, 8114, 45483, + 3046, 8124, 3053, 8235, 45483, 8255, 8265, 6226, -5579, 8303, + 3055, 6388, 3100, 3059, 3064, 8435, 3074, 6457, -5579, 93296, + 91094, 3075, 3048, 3231, 2777, 3076, 8473, 10228, 10228, -5579, + 22998, 3077, 401, 93296, 1609, -5579, -5579, -5579, -5579, 522, + 1104, 1215, 502, -5579, 3065, 1609, 3081, 2096, 16140, -5579, + 395, 3815, 31380, 31380, 3088, 31380, 31380, 975, 433, 433, + 3096, 3096, 459, 365, 23760, 975, 23760, 975, 3096, 3096, + 3096, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3650, + 3091, 929, 3092, -5579, -5579, -5579, -5579, -5579, -5579, 18, + 3495, -5579, 3283, 1120, 22998, -5579, 3112, 3839, 3840, 3841, + -5579, -5579, -5579, -5579, 72744, 72744, 3099, -5579, 875, 3455, + -5579, -5579, 3748, 74212, 3758, -5579, 3106, 42547, 42547, -5579, + 3114, -5579, 22998, 3107, 3116, 3118, 96966, -5579, 3767, 304, + 74946, -5579, 10303, 72744, 282, 17664, 91094, 91094, -5579, 83020, + 3768, 1135, 3397, -5579, 3125, 3127, -5579, 304, 17664, 3123, + 1231, 309, -5579, 3130, 3131, -5579, -5579, -5579, -5579, 3137, + 91094, 91094, -5579, -5579, -5579, -5579, 91094, -5579, -5579, -5579, + -5579, -5579, -5579, 2071, 22998, 91094, 1607, -5579, -5579, -5579, + 1607, 91094, 1607, -5579, 2071, 3781, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 1607, -5579, -5579, -5579, + -5579, -5579, 3303, 3220, 1653, 3470, -5579, 1969, 45483, 1607, + 1607, 10303, -5579, -5579, -5579, -5579, 3670, 3237, 19188, 3138, + 3151, -5579, -5579,104800, 91094, 93296, 3859, 3659, 78616, 85222, + 45483, -5579, -5579, -5579, 1984, -5579, -5579, -5579, -5579, -5579, + 10303, 2203, 2319, -5579, 3158, 10303, -5579, -5579, 3824, -5579, + -5579, -5579, -5579, 2071, -5579, -5579, 10585, -5579, 45483, -5579, + -5579, 53627, 53627, 1634, -5579, 95498, -5579, 2071, 10303, 45483, + 704, 195, -5579, 3891, -5579, -5579, 3265, -5579, -5579, -5579, + 3164, -5579, 3217, -5579, -5579, -5579, 3172, -5579, 3823, -5579, + 218, 386, 91094, 73, 49, -5579, 91094, 91094, 45483, -5579, + 91094, 2372, -5579, -5579, 2372, 45483, 91094, 91094, 2372, 41813, + -5579, -5579, -5579, -5579, -5579, 41813, -5579, 371, -5579, 3382, + 1507, 1507, -5579, -5579, -5579, -5579, -5579, 3799, 3496, 3496, + 41813, 3800, 3959, -5579, 91094, 3512, 1255, -5579, 50651, 91094, + 10303, 22998, -5579, 3215, 3572, -5579, 195, -5579, -5579, 55862, + 3527, 55862, 55862, 93296, 3423, 22998, 3189, 218, 2071, -5579, + 304, 304, 3414, 3704, 3705, 3320, 2071, 3707, 3711, 3712, + -5579, -5579, -5579, -5579, -5579, 2071, 2071, -5579, -5579, 304, + -5579, 1771, -5579, -5579, -5579, -5579, 3744, 1253, -5579, 304, + 304, -5579, 1926, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + 1344, -5579, 169, 1109, 69808, 3665, 875, 3778, 3206, -5579, + 45483, 3851, -5579, -5579, 22998,104800, -5579, -5579, -5579, 3223, + 3225, 3226, 3229, 3230, 3235, 3243, 3245, 3246, 3251, 3252, + 3253, 3254, 3255, 3256, 3257, 3259, 3262, 3263, 3264, 3269, + 3272, 3273, 3274, 3218, -5579, -5579, 3276, -5579, -5579, -5579, + -5579, 304, 304, 304, 304, -5579, 3477, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 3478, 3434, -5579, 1507, 91094, + 3710, 56596, -5579, 3462, 3869, -5579, -5579, 41079, -5579, 3258, + 45483, -5579, -5579, 74212, 78616, 72744, -5579, -5579, -5579, 3267, + 1178,101280, -5579, -5579, 4002, 69808, 3714, -5579, -5579, 3268, + -5579, 3270, 3755, 3763, -5579, 93296, 99168, -5579, -5579, 10303, + -5579, -5579, 3279, -5579, -5579, 3437, 3418, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 3309, 3551, 3672, -5579, -5579, -5579, 2661, -5579, -5579, + -5579, -5579, -5579, 3905, 75680,101984, 3282, -5579, -5579, -5579, + 1877, -5579, -5579,107552,107552,107552, 3659, -5579, 98434, 22998, + -5579, 6550, -5579, 22998, -5579, -5579, 22998, -5579, 10303, 9712, + 108276, 76414, -5579, 76414,108276, 22998, -5579, 3286, -5579, 3913, + 3914, -5579, -5579, -5579, 22998, -5579, 22998, 22998, 6585, 22998, + 22998, 22998, 22998, -5579, 22998, -5579, 22998, 22998, -5579, 31380, + -5579, 3290, 3298, -5579, -5579, 3300, -5579, 22998, 22998, -5579, + -5579, -5579, 22998, 22998, 22998, 22998, -5579, -5579, 22998, 22998, + 3304, -5579, 22998, 9745, 22998, 9892, 22998, 10208, 22998, -5579, + -5579, -5579, 26808, -5579, 3306, -5579, -5579, -5579, -5579, 22998, + -5579, 22998, -5579, 22998, 22998, 22998, -5579, 22998, -5579, -5579, + 22998, 22998, 22998, 22998, -5579, 3879, 22998, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 22998, + -5579, 315, 27570, -5579, 22998, 22998, 22998, -5579, -5579, 22998, + 3313, 3314, -5579, 91094, -5579, 22998, 1994, 3297, 195, 3315, + -5579, -5579, 3325, 3328, 2646, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, 890, 31380, 3310, 31380, 3815, 2185, 16140, -5579, + 472, 3815, 10228, 10228, 91094, 4027, 3322, -5579, 22998, 93296, + 22998, 3324, 3323, -5579, 3329, 31380, -5579, -5579, 3330, -5579, + 2088, 3297, 3411, 3774, -5579, 10303, 34425, 3827, -5579, 45483, + 3828, 3874, -5579, 45483, 3536, -5579, 72744, 69808, 3985, 3990, + -5579, 10303, -5579, 3340, -5579, -5579, -5579, 3341, -5579, -5579, + -5579, -5579, -5579, 318, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 22998, 72744, -5579, -5579, -5579, -5579, 304, + -5579, 3358, 3360, -5579, -5579, 29094, 2319, -5579, 10303, -5579, + 304, 304, 17664, -5579, 7769, -5579, -5579, 951, 3648, 3918, + -5579, -5579, 91094, 1227, 91094, -5579, 52139, 52139, 85956, 146, + -5579, -5579, -5579, -5579, 10303, -5579, -5579, -5579, -5579, -5579, + -5579, 3383, -5579, -5579, -5579, 4121, -5579, -5579, 3781, 2314, + 1969, -5579, -5579, 38143, 1812, -5579, -5579, -5579, 19188,102688, + -5579, 3373, 3378, 3384,103392, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 3391, -5579, -5579, 19188, 3405, + -5579, -5579, -5579, 3267, 1195, 3406, 3399, -5579, -5579, -5579, + -5579, -5579, -5579, 224, 228, 1077, 2314, -5579, -5579, 131, + -5579, -5579, -5579, -5579, -5579, 974, -5579, -5579, -5579, -5579, + 679, 1957, -5579, -5579, 195, 3638, -5579, -5579, 238, 1044, + 1044, 3973, 386, 3852, -5579, 3665, 4051, 3980, 3982, -5579, + 3744, -5579, -5579, -5579, 91094, -5579, -5579, -121, -5579, 45483, + 2645, 2645, -5579, 1507, 260, -5579, 31380, 4134, -5579, 3903, + 41813, 4032, 4033, -5579, 41813, -5579, -5579, 1901, -5579, -5579, + 72010, -5579, -5579, -5579, 10303, 227, 2052, 22998, 91094, -5579, + 3215, -5579, -5579, -5579, 55862, -5579, -5579, -5579, 1063, 3419, + 2052, 3416, -5579, -5579, 74946, 72010, -5579, 3796, 3797, 921, + -5579, -5579, -5579, -5579, -5579, -5579, 3197, 1241, -5579, 304, + 304, -5579, 221, 304, -5579, -5579, 206, -5579, -5579, 478, + 140, 3744, -5579, 2071, 2071, 2071, 2071, 195, 2071, 2071, + 1917, -5579, 3197, 3197, 1662, -5579, 85, -5579, -5579, -5579, + -5579, 280, -5579, -5579, 78616, -5579, 4167, 4169, -5579, 4170, + -5579, -5579, 801, -5579, 2540, 891, -5579, 24, -5579, 3976, + 91094, 4153, 3206, -5579, 394, 10303, -5579, 3933, 3441, 3442, + 195, 3446, 195, 195, 2071, 2071, 3383, 2071, 195, 2071, + 2071, 2071, 2071, 2071, 2071, 2071, 195, 2071, 873, 2879, + 2071, 195, 11116, -5579, 2071, 3297, 3197, 3197, 3015, -5579, + 4085, 304, -5579, 4116, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 3443, 41079, 469, -5579, 55117, + 3987, 2314, 3466, -5579, 875, -5579, -5579, -5579, -5579, 420, + 4098, -5579, 3460, 22998, -5579, 123, 3657, 3474, 57330, 69808, + 69808, -5579, 2620, -5579, 45483, -5579, 4099, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 63936, -5579, -5579, 3780, 2267, 3467, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 3471, -5579, 22998, -5579, -5579, 3078, -5579, + -5579, -5579, -5579, -5579,104096, 3479, 10303, 22998, 10303, 10303, + 22998, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, 3485, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 3485, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3486, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + 3488, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 4156, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 4109, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3485, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3485, -5579, + 3485, 4110, 3485, 3485, 3491, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3493, + 3497, 3499, 2646, -5579, 22998, 22998, 8503, 95, 95, 22998, + 6640, 6665, 3379, -5579, 8524, 8542, 8671, 1027, -5579, -5579, + 8683, 8704, 8733, 8752, 6736, 8770, 547, 3490, -5579, 10303, + 22998, 10303, 22998, 10303, 22998, 10303, 23760, 8804, -5579, 1933, + 10218, -5579, 1936, 10247, 3629, 8828, 6766, 1939, 3754, 8876, + 8895, 1971, -5579, 2723, 4237, 1985, 23760, 8930, 9054, 6773, + 6898, 9081, 93296, 91094, 3489, 9105, 3501, 3501, 530, -5579, + 3500, -5579, -5579, -5579, 3503, -5579, 22998, 22998, 3504, 1609, + -5579, 22998, 3815, 31380, 3847, 31380, -5579, -5579, 3650, -5579, + 22998, -5579, 4073, 3506, -5579, 10303, -5579, -5579, 91094, 3507, + 2136, -5579, 22998, 3383, -5579, -5579, 4211, 3510, 3528, 3516, + 3330, -5579, 72744, -5579, 45483, -5579, 242, -5579, 3237, 4165, + 2966, -5579, 69808, 69808, -5579, 80084, -5579, 58064, 91094, 91094, + -5579, 10303, -5579, 17664, 282, 4262, 4267, -5579, -5579, -5579, + -5579, -66, 4074, -5579, -5579, -5579, -5579, 17664, 304, -5579, + 304, 17664, 3131, -5579, -5579, -5579, -5579, 2927, -5579, 3220, + -5579, -5579, -5579, 1607, 3529, -5579, 304, 427, -5579, 19188, + 3530, 3538, -5579, 3993, -5579, 890, -5579, 3539, 86690, -5579, + 3540, -5579, 4089, -5579, -5579, 6906, 53627, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3220, 3764, + -5579, -5579, -5579, 3560, -5579, 3552, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 45483, 4140, 69808, 891, 3940, + 45483, 45483, 10653, 3872, 3744, 3570, 91094, -5579, 3206, 3574, + 362, 3574, -5579, -5579, -5579, 2136, 1507, 1507, 3161, 4049, + 41813, 41813, 3238, 4054, 22998, 3579, -5579, 91094, -5579, 341, + -5579, 3991, -5579, -5579, 22998, -5579, -5579, -5579, -5579, 10303, + 4306, 3586, -5579, -5579, -5579, -5579, 22998, -5579, 22998, 3589, + 3590, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 315, 315, -5579, + -5579, 315, 315, -5579, -5579, -5579, -5579, 315, 315, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 1253, + -5579, -5579, -5579, 1344, -5579, -5579, 4333, 1508, -5579, 4166, + -5579, -5579, -5579, -5579, 848, 195, 195, 195, 2879, 1167, + -5579, 2540, 1705, 3927, -5579, 6496, 455, 945, 4087, 1853, + -5579, 2008, -5579, 4317, -5579, 181, -5579,104800, 236, 248, + -5579, 263, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + 91094, 3197, 3434, -5579, 56596, 2314, -5579, 91094, 3941, 4130, + -5579, -5579, -5579, -5579, -5579, -5579, 890, -5579, 10303, -5579, + 4246, -5579, -5579, -5579, -5579, 49, 49, -5579,104800, -5579, + -5579, 242, -5579, -5579, 4099, 3881, -5579, 382, -5579, 3485, + 3485, 25, -5579, 3486, 4161, 3486, -5579, -5579, 3997, 1549, + 1259, 3997, -5579, 1259, 3486, -5579, 3608, -5579, 3997, -5579, + 1259, 3485, -5579, 3485, -5579, -5579, 1259, 3485, -5579, 3609, + 3486, 3997, 1158, 2133, 3486, -5579, 3485, -166, 3485, 3485, + 3485, 3813, 3485, 3485, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 78, 3485, 3485, 3485, 3485, 3488, 3486, 3486, 3486, + 4258, 4263, -5579, 91094, -5579, 10303, -5579, -5579,107552, 91094, + 3379, 10303, 2457, -5579, -5579, -5579, 2917, -5579, -5579, -5579, + 4360, -5579, -5579, 3485, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 3619, 10228, 10228, -5579, 4328, + 4145, 4231, 9131, 22998, 22998, -5579, 22998, -5579, -5579, -5579, + 1275, 3624, 4088, -5579, -5579, -5579, -5579, 22998, -5579, 22998, + -5579, -5579, 22998, 10303, 10303, 10303, 10228, -5579, -5579, 3224, + -5579, -5579,108276, -5579, 22998, -5579, 22998, -5579, 22998, -5579, + 22998, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 283, 10228, + -5579, -5579, 22998, 22998, -5579, -5579, -5579, 91094, -5579, 3297, + 3627, 3907, -5579, -5579, -5579, 3297, 3765, -5579, -5579, 3297, + 195, -5579, -5579, -5579, 2009, 1609, -5579, 22998, 3815, 4205, + 3632, 4343, 3636, -5579, 80084, -5579, 3643, 3645, -5579, -5579, + -5579, 10228, -5579, 4252, 4210, -5579, 3297, 91094, -5579, -5579, + -5579, 38143, 4119, -5579, -5579, -5579, 3987, 215, -5579, -5579, + 69808, 3106, 3106, 87424, -5579, -5579, -5579, -5579, 1070, 304, + 304, 17664, -5579, -5579, 3653, 3658, 17664, 17664, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 3220, -5579, 38143, 2314, 22236, -5579, -5579, -5579, 19188, + -5579, 3667, 88158, -5579, 3669, -5579, 3663, -5579, 1484, 3992, + 4264, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 3671, -5579, -5579, 2071, + 2324, -5579, 45483, -5579, -5579, 3685, -5579, -5579, 38877, 4281, + 3716, 4037, 45483, 304, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 4042, 304, 304, 304, 304, 304, 304, + 304, 304, 304, 304, 1432, 91094, 304, 304, -5579, -5579, + 4240, -5579, 5110, -5579, -5579, -5579, -5579, 304, -5579, -5579, + -5579, 474, 4257, 4403, 3684, 3825, -5579, -5579, -5579, -5579, + 3792, 3829, 3206, -5579, -5579, -5579, 4171, -5579, -5579, -5579, + 4172, 10303, 91094, -5579, -5579, -5579, 1006, 2048, 4295, 2052, + 3692, 91094, 2052, 10303, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 305, -5579, + 78616, -5579, -5579, -5579, -5579, -5579, 4435, 4438, -5579, -5579, + -5579, -5579, 3884, 1164, 2585, 4096, 4269, 4096, 4270, 4191, + 2430, 304, 4272, 4409, -5579, 518, 304, 4274, 4330, 3790, + 4334, 4278, -5579, 3794, 4096, 4283, 3890, 4285, 4286, 4287, + -5579, -5579, 12059, -5579, -5579, -5579, -5579, 88, 43281, -5579, + -5579, -5579, -5579, -5579, 3896, 22998, 22998, 4302, 91094, 4303, + -5579, 4125, -5579, 91094, -5579, 890, -5579, -5579, -5579, 4024, + -5579, 2024, -5579, -5579, 2034, -5579, -5579, 2042, -5579, -5579, + -5579, -5579, -5579, 3258, -5579, 4377, -5579, 4072, 2849, -5579, + -5579, 413, 3929, 4197, 4197, -5579, -5579, -5579, 4311, -5579, + -5579, -5579, -5579, 4362, -5579, 3997, 304, 3997, -5579, -5579, + 1024, -5579, 1024, -5579, 447, 3105, 74946, 3997, -5579, -5579, + -5579, -5579, 4209, 1259, 1690, 76414, 2156, -5579, 4135, -5579, + -5579, -5579, 1024, 2813, -5579, -5579, 3997, -5579, -5579, -5579, + 2813, 1024, -5579, 4213, -5579, -5579, -5579, 1024, 3997, 3951, + 91094, 4422, 1259, -5579, -5579, 97700, 1259, 1024, 4422, -5579, + 1690, 4465, 1259, 3997, 1024, 1024, 4296, 4296, 4296, -5579, + 198, 3753, -5579,107552, -5579, -5579, 3757, 3760, 3762, 3766, + 1690, 2056, 3775, -5579, 1690, 1690, -5579, 3769, 3770, 22998, + 2813, 4231, -5579, 3779, 55862, -5579, -5579, 9161, 6978, 2093, + 4046, 4010, -5579, 3947, -5579, 9182, 9255, 9344, 1496, 3486, + -5579, -5579, -5579, -5579, 4405, 3485, -5579, 4484, -5579, 3485, + -5579, -5579, -5579, -5579, -5579, -5579, 3785, 9517, 10303, 10303, + 9537, -5579, -5579, -5579, 2117, 1601, 9555, 9575, -5579, -5579, + -5579, 3789, -5579, -5579, 253, -5579, 3791, -5579, 2135, 4500, + 1983, 22998, -5579, -5579, -5579, 91094, 3895, 1136, -5579, 2139, + -5579, -5579, 3795, 3803, 3798, -5579, -5579, -5579, 3801, 413, + 38143, -5579, -5579, 3106, -5579, -5579, 58798, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 17664, 17664, -5579, -5579, 3535, 2319, + -5579, -5579, -5579, -5579, 4182, -5579, 3810, 3811, -5579, -5579, + -5579, 86690, -5579, 2165, -5579, -5579, 4535, 19188, -5579, -5579, + 3816, -5579, 78616, 3817, 3818, 46217, 1959, 91094, 2183, -5579, + -5579, -5579, -5579, -5579, 1581, -5579, 1400, 2372, 1984, 1984, + -5579, 3812, 45483, -5579, 304, -5579, 297, 307, 319, 330, + -5579, 3383, 195, 195, 2071, 2071, 304, 195, 78616, 1594, + 195, 3383, 3383, 345, 2071, 2055, 297, -5579, -5579, -5579, + 195, 297, 160, -5579, -5579, 10649, -5579, 12059, 67606, 77148, + 2000, -5579, -5579, 1762, 3944, -5579, 3820, 91094, -5579, 2071, + -5579, 4541, 22998, 3842, 22998, 3845, 2190, -5579, 1984, -5579, + 1984, -5579, 1006, 4530, 4532, 4482, 4534, 2048, -5579, 2134, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3846, -5579, -5579, + -5579, -5579, 4160, -5579, 4571, -5579, 4304, 44015, 2372, -5579, + 1883, 3885, -5579, -5579, -5579, 4486, 2559, 1075, 2559, 88158, + 1255, 1408, 4469, 1764, 1891, 3894, 4411, 2559, 2559, 88892, + 1075, 38143, -5579, -5579, -5579, 2559, -5579, 2559, 45483, 89626, + 1075, -5579, -5579, -5579, 91094, -5579, 2559, 1075, -5579, 1075, + 1075, 88158, -5579, 12018, -5579, -5579, 38877, 182, -5579, 10303, + 10228, 4249, -5579, -5579, 3971, 2071, 4226, -5579, -5579, 4335, + -5579, 91094, 243, -5579, 195, -5579, 195, -5579, 195, -5579, + 31380, -5579, 3114, -5579, -5579, 1359, -5579, -5579, 4228, 3987, + 4371, -5579, -5579, 91094, -5579, 4336, 4357, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 304, -5579, -5579, 2195, -5579, -5579, 2201, -5579, -5579, + -5579, -5579, 97700, -5579, 2212, -5579, 65404, 22998, -5579, -5579, + -5579, 4422, 3873, -5579, -5579, -5579, -5579, -5579, -5579, 4465, + -5579, -5579, 3900, -5579, -5579, -5579, 61000, -5579, -5579, -5579, + 91094, 4526, -5579, -5579, -5579, -5579, -5579, -5579, 4627, -5579, + -5579, -5579, -5579, 3883, 2052, -5579, 3887, -5579, -5579, 706, + -5579, 22998, -5579, 4120, -5579, 4223, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 1690, -5579, -5579, -5579, -5579, + 3383, -5579, -5579, -5579, 3897, -5579, 195, -5579, 22998, -5579, + -5579, 3899, 5258, 2052, -5579, 3001, -5579, 3774, 3901, 91094, + -5579, 4210, -5579, -5579, 38143, 59532, 3902, 3893, -5579, 304, + -5579, -5579, 17664, 17664, -5579, -5579, 3869, -5579, -5579, -5579, + 91094, -5579, -5579, 3383, 4265, -5579, 2222, 91094, 3904, 4103, + 91094, 91094, -5579, -5579, 3910, 91094, -5579, -5579, -5579, 38877, + 3911, 4524, 4528, 1984, -5579, 2372, 4458, 46217, -5579, 2372, + 2372, 63202, 91094, 3917, 2071, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 3919, -5579, -5579, -5579, -5579, -5579, + 2071, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 4639, -5579, 4240, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 64670, -5579, 3920, 3921, 91094, + -5579, -5579, -5579, -5579, -5579, 4592,104800, -5579, -5579, -5579, + 4502, 945, -5579, -5579, 3923, -5579, -5579, 65404, -5579, -5579, + -5579, 10303, 91094, 10303, 91094, -5579, 4575, 4575, -5579, 2813, + 2813, 4643, 2813, -5579, 4648, 4649, 2134, -5579, 4673, 1164, + 4312, 1705, 455, 1075, 455, 4593, -5579, -5579, 46217, 88158, + 46217, -5579, 72010, 46217, 2559, 91094, -5579, 4595, -5579, 4561, + 46217, 46217, -5579, -5579, 88158, 3948, -5579, 2052, 2313, 91094, + 46217, -5579, -5579, -5579, 3297, 4414, 46217, 88158, -5579, 88158, + -5579, 4319, 1910, -5579, 3953, 3954, 91094, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 1105, -5579, -5579, 2227, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 1411, 4151, -5579, 1359, + -5579, -5579, -5579, 45483, -5579, -5579, -5579, -5579, 1690, 2813, + 1690, 4422, -5579, 91094, -5579, 10303, -5579, 91094, -5579, 4700, + -5579, -5579, -5579, 46951, -5579, -5579, -5579, 4277, -5579, 2230, + -5579, 3960, 22998, -5579, -5579, 55862, 55862, 9621, -5579, -5579, + -5579, 3961, -5579, 3962, 3419, -5579, 7349, 4094, 3839, 3840, + 3841, 4143, 4307, -5579, 4146, -5579, -5579, 3972, 31380, -5579, + 1528, -5579, -5579, -5579, -5579, 3965, -5579, 38143, 19188, -5579, + -5579, -5579, 93296, -5579, -5579, 4388, -5579, 2234, 2052, 3981, + 91094, 3995, 2235, 2241, 91094, 3998, -5579, 22998, 2372, -5579, + -5579, 46217, 45483, -5579, 4453, 1296, 46217, 46217, 1386, 3974, + 3984, 734, 1529, 3989, 3609, 1536, -10, 1158, 436, 1616, + 3999, 1646, 4000, 1669, 1679, 1688, 1706, 1756, 4001, 4680, + -5579, -5579, 1768, 4003, 4004, 4005, 4006, 4007, 4009, 4011, + 4012, -5579, -5579, 45483, -5579, -5579, 215, 160, -153, 4193, + -5579, -5579, 77148, -5579, -5579, -5579, -5579, 4302, 91094, 2000, + -5579, -5579, -5579, -5579, 2261, 2277, 2063, -5579, -5579, -5579, + -5579, 2813, -5579, 2813, 2813, -5579, 4017, -5579, -5579, -5579, + 4646, -5579, 4654, -5579, 1280, -5579, 46217, 1425, 3537, -5579, + 46217, 3811, 91094, -5579, -5579, 420, -5579, 38143, -5579, -5579, + 4495, 4496, -5579, 4506, 182, -5579, 91094, -5579, -5579, -5579, + 4117, -5579,104800, 4222, 4728, 4729, -5579, 91094, 90360, 31380, + -5579, -5579, 4645, -5579, 3237, -5579, -5579, -5579, -5579, -5579, + 4023, -5579, 61000, -5579, -5579, -5579, -5579, -5579, 2052, -5579, + -5579, -5579, -5579, -5579, 1317, -5579, 4754, 1320, -5579, -5579, + 1076, -5579, -5579, 91094, 4034, 4118, -5579, -5579, 4105, -5579, + -5579, 2587, 60266, -5579, -5579, -5579, 59, -5579, 875, 91094, + -5579, 4779, 4035, 1253, 875, 875, 4036, 91094, 9665, 46217, + 4453, 1308, 4040, 1044, -5579, 1044, -5579, -5579, 2080, 65404, + -5579, -5579, 9110, 91094, 4044, 4795, -5579, 4250, -5579, 91094, + -5579, -5579, 1853, -5579, -5579,106208, -5579, -5579, 4750, -5579, + 4753, 4048, 4057, -5579, -5579, -5579, -5579, 46217, -110, -5579, + 4732, 4733, 182, -5579, -5579, -5579, -5579, -5579, 1075, -5579, + 91094, 46217, 45483, -5579, -5579, 3811, 974, 22998, 4412, -5579, + -5579, 4259, 4260, -5579, -5579, 2278, -5579, -5579, 2136, 4546, + -5579, 91094, -5579, -5579, -5579, 7349, -5579, -5579, 4198, 1799, + -5579, 2283, -5579, -5579, -5579, 3297, -5579, 4069, -5579, 4430, + 304, 304, 4431, 304, 304, 304, 304, 4075, 2587, -5579, + 4420, -5579, -5579, -5579, 434, 2052, 4079, 91094, 4080, 2304, + 859, 571, 91094, 4070, -5579, -5579, -5579, 1044, 91094, 4677, + -5579, 4084, -5579, 4086, 4090, -5579, -5579, 4703, 2071, -5579, + 4163, -5579, 2080, -5579, -5579, -5579, 4129, 4707, 4663, 304, + -5579, 78616, 33666, -5579, 4573, -5579, 4537, 4767, -5579, 4816, + 3826, -5579, -5579, -5579, -5579, -5579, -5579, 91094, 4093, 45483, + 4125, -5579, -5579, -5579, 86690, 86690, 4680, 3297, 4210, -5579, + -5579, 33666, -5579, -5579, -5579, -5579, -5579, 4719, -5579, 10303, + 22998, -5579, -5579, -5579, -5579, 90360, -5579, 1255, -5579, -5579, + -5579, -5579, -5579, -5579, 91094, -5579, 4102, -5579, -5579, 101, + 304, 2071, 2071, 304, 3312, 3312, 3297, 78616, 4188, -5579, + -5579, 304, 1044, 2071, 304, 1044, -5579, 1501, 434, -5579, + -5579, -5579, 304, -5579, -5579, 1587, 875, -5579, 4298, 1501, + 859, -5579, -5579, 1501, 571, -5579, -5579, 4108, 91094, 4106, + 4111, -5579, 2309, -5579, 1298, 4686, 91094, 4114, 91094, 91094, + -5579, -5579, -5579, -5579, -5579, -5579, 4468, 68340, -5579, 2879, + 2879, 16140, -5579, -5579, -5579, -5579, -5579, -5579, 2601, 4696, + -5579, 4162, 1229, 304, -5579, 10206, 4113, 91094, 4769, 4481, + 4126, 2317, -5579, -5579, 2325, -5579, -5579, 4128, 10303, -5579, + 38143, -5579, 4118, -5579, -5579, 2333, -5579, 28332, -5579, -5579, + -5579, 2071, -5579, -5579, 2071, -5579, -5579, -5579, -5579, -5579, + 2343, -5579, 78616, -5579, -5579, 195, -5579, -5579, 4731, 4572, + -5579, 69074, 4325, 434, 2383, -5579, -5579, -5579, -5579, -5579, + 4131, 91094, 91094, 4133, -5579, 91094, -5579, -5579, -5579, 1211, + -5579, 2353, 91094, 2356, 2357, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 4136, 4138, -5579, 39, -5579, -5579, 10206, + 91094, 4132, -5579, -5579, -5579, -5579, -5579, 4210, 4139, -5579, + 304, 4666, -5579, -5579, 4102, -5579, 4141, -5579, 2136, -5579, + -5579, 78616, -5579, 4188, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 1501, -5579, -5579, 2378, 4035, 91094, -5579, + 267, 267, 434, 2379, 859, 571, -5579, 338, -5579, 1730, + 1730, 1154, -5579, 91094, -5579, -5579, 2387, 38143, 19188, 4434, + 3991, -5579, 28332, 4142, 2587, -5579, -5579, -5579, 4458, 4144, + 4035, -5579, -5579, 1934, 4589, 4721, 4727, -5579, 434, -5579, + -5579, -5579, 4147, -5579, 1730, -5579, -5579, -5579, -5579, -5579, + 178, -5579, 4814, -5579, -5579, -5579, 4862, 4295, -5579, -5579, + -5579, -5579, 434, 4155, -5579, -5579, -5579, 4637, 4829, -5579, + -5579, -5579, -5579, 178, -5579, 4289, 2813, 4791, -5579, 434, + 267, 267, -5579, -5579, -5579, 4904, 4173, -5579, -5579, -5579, + 1346, 363, 35174, 4692, -5579, -5579, 78616, -5579, -5579, -5579, + -5579, 78616, -5579, 2391, -5579, -5579, 38143, -5579, -5579,104800, + -5579, -5579, 35923, 4174, -5579, 304, -5579, -5579, -5579, 38143, + -5579, -5579, 19188, -5579, -5579 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 3616, 2, 1070, 2313, 0, 417, 0, 1295, 669, + 2158, 2307, 2306, 2079, 457, 215, 368, 2081, 2379, 0, + 0, 453, 1311, 810, 564, 0, 314, 0, 0, 460, + 2084, 312, 215, 1360, 3261, 2207, 0, 3366, 2145, 0, + 1358, 455, 2477, 0, 3521, 0, 0, 0, 3526, 71, + 2049, 0, 1311, 335, 3368, 84, 0, 0, 1311, 2363, + 3526, 0, 2391, 0, 0, 2187, 0, 0, 0, 0, + 3, 3618, 22, 0, 44, 27, 32, 17, 21, 16, + 46, 59, 52, 29, 3701, 3702, 3704, 42, 3557, 41, + 11, 62, 63, 19, 49, 12, 15, 18, 40, 48, + 36, 43, 56, 57, 1381, 1357, 1385, 1356, 1352, 1348, + 1367, 1368, 1369, 1375, 25, 26, 33, 50, 67, 23, + 64, 60, 24, 2313, 13, 28, 14, 51, 45, 37, + 61, 68, 38, 0, 58, 39, 66, 31, 53, 30, + 9, 10, 20, 54, 55, 47, 69, 34, 65, 35, + 8, 2067, 165, 3523, 3703, 1118, 0, 0, 0, 0, + 0, 2077, 0, 0, 2077, 1204, 1425, 3555, 3556, 3557, + 1312, 0, 1313, 0, 0, 2519, 2520, 2722, 2770, 2771, + 2570, 2800, 2627, 2897, 2919, 2946, 2704, 2703, 2706, 2705, + 2707, 2708, 2709, 2710, 2711, 2712, 2600, 2713, 2714, 2715, + 2717, 2716, 2718, 2719, 2720, 2601, 3627, 2602, 2676, 2721, + 2678, 2677, 2723, 2603, 2604, 2724, 2725, 2726, 2727, 2657, + 2606, 2605, 2728, 2730, 2729, 2679, 2680, 2660, 2731, 2732, + 2733, 2735, 2607, 2608, 2609, 2610, 2611, 2734, 2612, 2736, + 2661, 2737, 2738, 2613, 2739, 2740, 2741, 2742, 2744, 2743, + 2654, 2745, 2746, 2748, 2749, 2750, 2747, 2751, 2752, 2754, + 2753, 2682, 2755, 2681, 2756, 2614, 2757, 2758, 2759, 2760, + 2761, 2762, 2763, 2764, 2765, 2766, 2662, 2767, 2768, 2769, + 2791, 3628, 2772, 2774, 2773, 2683, 2775, 2776, 2777, 2779, + 2778, 2780, 2782, 2615, 2616, 2617, 2781, 2783, 2784, 2785, + 2786, 2787, 2789, 2788, 2792, 2794, 2795, 2684, 2618, 2658, + 2619, 2620, 2790, 2793, 2568, 2796, 2797, 2798, 2621, 2673, + 2799, 2663, 2802, 2801, 2622, 2803, 2623, 2804, 2805, 2806, + 2807, 2808, 2810, 2812, 2809, 2813, 2814, 2820, 2624, 2811, + 2815, 2816, 2817, 2818, 2819, 2821, 2685, 2822, 2655, 2824, + 2823, 2825, 2826, 2827, 2828, 2829, 2674, 2830, 2831, 2832, + 2845, 2846, 2836, 2837, 2839, 2840, 2843, 2838, 2844, 2849, + 2848, 2850, 2851, 2852, 2853, 2854, 2847, 2834, 2841, 2842, + 2835, 2855, 2856, 2833, 2857, 2859, 2858, 2860, 2686, 2861, + 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2870, 2869, 2871, + 2872, 2873, 2874, 2875, 2670, 2876, 2687, 2688, 2877, 2880, + 2878, 2879, 2881, 2882, 2887, 2888, 2889, 2656, 2884, 2883, + 2885, 2886, 2689, 2690, 2691, 2890, 2891, 2892, 2893, 2895, + 2894, 2664, 2626, 2625, 2896, 2628, 2898, 2899, 2629, 2900, + 2902, 2901, 2672, 2630, 2903, 2904, 2906, 2905, 2631, 2659, + 2632, 2633, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, + 2915, 2916, 2917, 2918, 2692, 2693, 2920, 2921, 2922, 2924, + 2923, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2634, 2932, + 2665, 2933, 2934, 2935, 2635, 2937, 2936, 2636, 2938, 2939, + 2940, 2941, 2942, 2671, 2666, 2943, 2944, 2945, 2694, 2947, + 2948, 2949, 2667, 2950, 2951, 2952, 2637, 2953, 2954, 2695, + 2675, 2638, 2955, 2957, 2668, 2702, 2956, 2640, 2641, 2958, + 2959, 2960, 2639, 2961, 2642, 2962, 2963, 2965, 2964, 2966, + 2967, 2968, 2969, 2643, 2970, 2971, 2644, 2972, 2645, 2973, + 2974, 2975, 2976, 2978, 2977, 2979, 2980, 2981, 2982, 2983, + 2984, 2986, 2988, 2987, 2985, 2989, 2990, 2696, 2991, 2646, + 2697, 2997, 2998, 2698, 2992, 2993, 2994, 2995, 2996, 2669, + 2999, 3000, 3001, 2649, 3002, 3003, 3005, 3004, 2647, 2648, + 3006, 3007, 2653, 3008, 3009, 3015, 2699, 2700, 3010, 3011, + 3024, 3012, 3014, 3013, 3017, 3016, 3018, 3019, 2569, 2650, + 3020, 3021, 2651, 3022, 2652, 3023, 2701, 239, 2524, 2535, + 223, 2536, 2565, 2563, 2567, 2561, 2566, 2559, 2560, 2564, + 2562, 387, 129, 0, 0, 0, 0, 2182, 2077, 2053, + 2077, 2077, 2077, 2077, 0, 2077, 2077, 0, 2080, 2077, + 2077, 0, 0, 0, 387, 2087, 2381, 0, 2401, 2402, + 2396, 3356, 3357, 3351, 370, 0, 0, 0, 2280, 2279, + 0, 0, 299, 311, 314, 307, 310, 0, 215, 2077, + 370, 2087, 313, 314, 0, 1390, 0, 2285, 314, 0, + 2156, 2395, 0, 387, 2478, 2475, 2352, 2354, 0, 2350, + 1496, 1495, 0, 3526, 0, 2525, 1290, 1322, 1248, 3527, + 3528, 0, 76, 79, 2318, 336, 0, 0, 0, 667, + 0, 0, 1256, 0, 3528, 3538, 2393, 0, 129, 1229, + 0, 129, 2190, 2077, 2077, 3599, 3600, 0, 0, 0, + 3594, 0, 3601, 0, 1385, 0, 1371, 1, 5, 0, + 0, 667, 1024, 667, 1025, 0, 667, 667, 0, 0, + 0, 0, 3562, 3555, 3556, 3557, 0, 2035, 1902, 1386, + 1385, 1982, 1986, 3543, 3543, 3543, 0, 0, 1982, 1376, + 2786, 2620, 2902, 0, 2298, 2312, 2296, 2513, 1354, 1350, + 2612, 1073, 1119, 1078, 0, 0, 1080, 0, 0, 1095, + 2541, 2540, 2539, 1092, 1091, 1090, 1088, 0, 528, 215, + 0, 1206, 0, 0, 0, 3563, 3562, 0, 1267, 2300, + 2301, 2302, 2303, 2304, 2305, 2308, 241, 0, 387, 419, + 0, 430, 421, 424, 0, 130, 131, 1293, 1296, 0, + 670, 0, 162, 0, 2186, 2185, 0, 2184, 2159, 0, + 2182, 0, 2075, 0, 0, 0, 0, 0, 215, 0, + 2281, 215, 2058, 2077, 2077, 458, 3647, 0, 3415, 3433, + 3434, 1438, 3430, 3435, 0, 3432, 3427, 0, 0, 3429, + 3426, 0, 0, 3454, 3428, 3431, 2602, 2740, 2778, 2617, + 2792, 2794, 2911, 2915, 2920, 2931, 2935, 2668, 2640, 2979, + 3409, 3397, 3410, 0, 0, 3413, 3418, 0, 3417, 0, + 0, 2089, 2382, 2383, 2387, 0, 2405, 0, 380, 0, + 0, 0, 0, 372, 373, 3634, 3707, 0, 376, 3633, + 0, 370, 3694, 0, 387, 3688, 3696, 3695, 3697, 3698, + 3699, 3700, 398, 0, 399, 400, 454, 3691, 2537, 0, + 3630, 3632, 3629, 3631, 2538, 3653, 0, 0, 3693, 0, + 3692, 3689, 3690, 1309, 1733, 0, 2452, 2521, 2522, 0, + 2465, 2470, 2471, 2463, 2464, 2468, 2444, 2467, 2443, 2469, + 1498, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1438, 1438, 1438, 1435, 0, 0, 0, 0, 0, + 0, 0, 2461, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435, + 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1435, 0, 2462, + 1438, 1435, 1435, 0, 0, 2705, 2600, 2720, 2657, 2731, + 2733, 2607, 2608, 2609, 2610, 2611, 2654, 2755, 2681, 2756, + 2757, 2758, 2620, 2798, 2805, 2823, 2825, 2864, 2866, 2872, + 2878, 2879, 2892, 2896, 2672, 2909, 2916, 2942, 2694, 2947, + 2952, 2955, 2975, 2697, 2997, 2998, 2698, 2996, 2669, 3008, + 3015, 3018, 3019, 2650, 2701, 0, 0, 0, 0, 1497, + 0, 0, 1383, 1572, 811, 1455, 1471, 0, 1570, 1569, + 1573, 1575, 1581, 1490, 1602, 1541, 1542, 1544, 1543, 1548, + 1549, 0, 1709, 1550, 0, 0, 1547, 2457, 1546, 1545, + 2458, 2459, 1540, 2499, 2535, 0, 2523, 566, 565, 0, + 326, 321, 329, 323, 325, 324, 330, 331, 332, 327, + 322, 328, 315, 0, 300, 0, 308, 3539, 0, 1314, + 370, 461, 2092, 333, 3415, 2706, 2915, 3389, 0, 3396, + 0, 3554, 3548, 3551, 3550, 3546, 3549, 3547, 3552, 1411, + 3553, 1410, 1361, 1391, 1408, 1409, 0, 0, 0, 2592, + 944, 2590, 3282, 3283, 0, 0, 0, 3284, 2970, 2992, + 2591, 0, 2530, 0, 2531, 2587, 2585, 2589, 2588, 2582, + 2583, 2586, 3262, 3267, 3263, 2584, 0, 0, 0, 2293, + 1022, 1021, 0, 0, 0, 0, 2229, 0, 944, 2293, + 2230, 0, 1959, 2283, 2286, 0, 3286, 2243, 1023, 3287, + 2279, 0, 2215, 2231, 2192, 2236, 129, 3288, 0, 2282, + 1959, 2293, 0, 2208, 0, 0, 0, 0, 1424, 0, + 309, 3367, 2157, 1202, 2125, 1359, 2111, 0, 456, 0, + 0, 2351, 3709, 3522, 0, 0, 0, 0, 3531, 1783, + 2050, 0, 80, 75, 0, 0, 0, 0, 2518, 3369, + 85, 0, 0, 3613, 73, 0, 2369, 0, 2367, 2364, + 2366, 0, 3531, 0, 2392, 1236, 1236, 0, 0, 1228, + 1230, 1231, 1236, 1236, 2191, 0, 0, 0, 2451, 2449, + 2450, 2526, 3596, 2448, 2447, 3605, 3607, 3590, 0, 3593, + 3592, 3602, 1374, 1373, 6, 70, 0, 137, 667, 215, + 215, 667, 164, 143, 146, 667, 667, 667, 155, 157, + 0, 217, 0, 0, 3562, 1389, 0, 0, 1401, 1387, + 1798, 1388, 1800, 1797, 1796, 1795, 1826, 1827, 1829, 1828, + 1830, 1832, 1823, 0, 0, 2048, 0, 2043, 1903, 1908, + 1902, 0, 0, 0, 0, 1981, 1959, 1990, 1983, 1353, + 1979, 0, 1349, 1414, 1414, 3545, 3544, 3542, 3541, 3540, + 1984, 1372, 1380, 1378, 1379, 1985, 1370, 0, 2310, 2515, + 0, 2315, 0, 1982, 1986, 2116, 2115, 2118, 0, 960, + 0, 224, 3560, 3561, 3559, 1438, 2542, 2545, 3558, 2546, + 224, 1089, 0, 529, 2078, 0, 0, 0, 0, 0, + 0, 531, 530, 467, 0, 2077, 1210, 1211, 1205, 1207, + 1209, 0, 0, 0, 0, 2314, 0, 243, 240, 222, + 428, 0, 388, 370, 0, 425, 86, 0, 1297, 2068, + 2070, 161, 0, 0, 0, 2160, 0, 1399, 1902, 2162, + 2167, 2176, 2180, 2183, 2055, 0, 0, 3672, 2061, 2060, + 3671, 2281, 0, 2064, 542, 0, 0, 0, 2065, 2051, + 0, 434, 436, 3416, 3414, 3451, 3450, 3455, 0, 3452, + 3448, 0, 3408, 3456, 3441, 3445, 0, 3457, 3442, 3449, + 3463, 3462, 3464, 3459, 3458, 0, 3461, 3447, 0, 3446, + 3467, 0, 3411, 0, 0, 410, 0, 2094, 2095, 2091, + 1202, 2090, 2388, 0, 2380, 0, 1332, 2407, 2406, 2403, + 1894, 3353, 3358, 387, 381, 0, 0, 2878, 0, 386, + 385, 384, 3617, 407, 387, 377, 396, 0, 0, 3619, + 371, 374, 405, 408, 3652, 447, 443, 451, 445, 3705, + 268, 0, 0, 2521, 2522, 2454, 2453, 2523, 2445, 2466, + 0, 0, 0, 1576, 1900, 1900, 1900, 0, 0, 1791, + 0, 0, 0, 0, 1900, 0, 1608, 1588, 1587, 0, + 1609, 0, 0, 0, 0, 0, 0, 0, 0, 1739, + 1739, 1705, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1785, 1787, 2499, 1900, 0, 1900, 0, 1443, + 1618, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1900, 1900, 0, 1900, 1626, 0, 1630, + 1632, 1631, 1900, 1900, 0, 0, 1900, 0, 0, 0, + 0, 0, 0, 0, 0, 1781, 0, 2472, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1781, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2474, 0, 0, 0, 2473, 0, 0, + 0, 0, 0, 0, 0, 1781, 0, 0, 1578, 0, + 1577, 1579, 0, 1383, 812, 0, 0, 0, 1494, 0, + 1500, 1502, 1504, 1492, 1493, 0, 1491, 0, 1499, 1501, + 1503, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1580, 0, 0, 0, 0, 0, 2446, + 0, 1664, 0, 578, 2377, 0, 0, 0, 298, 1316, + 2547, 0, 0, 387, 2096, 2093, 3414, 0, 0, 0, + 3411, 1425, 1407, 3289, 0, 943, 0, 0, 946, 948, + 947, 956, 0, 945, 3329, 3327, 3325, 3324, 0, 0, + 3269, 3271, 0, 952, 954, 953, 3319, 951, 0, 3305, + 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, + 0, 0, 0, 2261, 0, 1424, 1424, 2209, 0, 2293, + 0, 2293, 2283, 0, 2293, 2289, 2249, 2242, 0, 0, + 723, 1964, 1960, 2235, 2287, 2288, 2293, 0, 0, 2293, + 0, 2250, 2283, 2293, 2204, 0, 0, 2196, 2201, 2197, + 0, 2203, 2202, 2205, 2193, 2194, 0, 2222, 2252, 0, + 2234, 2241, 0, 2221, 2228, 0, 2239, 2283, 2283, 0, + 2293, 2293, 2293, 1203, 0, 1425, 0, 3649, 2476, 2479, + 2485, 2491, 2353, 3617, 0, 0, 1324, 1326, 1325, 1342, + 1250, 3530, 0, 3532, 0, 3534, 0, 77, 0, 0, + 2345, 2343, 0, 0, 0, 2337, 2339, 2342, 2338, 0, + 0, 2344, 129, 0, 2340, 2346, 2319, 2322, 2329, 1424, + 2320, 0, 0, 334, 337, 339, 0, 342, 1894, 3372, + 3371, 0, 0, 0, 1254, 1257, 0, 2374, 2371, 129, + 0, 2667, 3537, 3535, 0, 1224, 1240, 1222, 1234, 1235, + 0, 0, 1227, 1226, 3353, 3614, 3615, 0, 0, 3591, + 3608, 3589, 0, 3603, 3604, 3588, 7, 4, 149, 0, + 140, 0, 0, 0, 667, 667, 132, 0, 3673, 1425, + 1425, 667, 667, 667, 0, 0, 1796, 1826, 1827, 1829, + 0, 1828, 0, 0, 1894, 0, 0, 1818, 1842, 0, + 1842, 1820, 1821, 0, 0, 0, 1401, 1824, 2527, 2044, + 2047, 0, 2036, 2038, 2039, 2539, 2041, 0, 0, 1905, + 1908, 1416, 0, 1972, 1973, 1971, 0, 1961, 1965, 1970, + 1968, 0, 1952, 1989, 1980, 2028, 1415, 1987, 1988, 1377, + 2299, 2297, 2316, 2317, 2514, 1355, 1351, 1075, 961, 2117, + 960, 660, 663, 662, 0, 0, 2088, 2544, 0, 2088, + 0, 2281, 1096, 0, 0, 2281, 478, 2281, 532, 2545, + 3492, 0, 3499, 3481, 0, 1208, 3564, 3565, 1086, 1084, + 0, 1268, 1269, 1272, 0, 244, 246, 0, 387, 420, + 422, 370, 431, 0, 0, 1307, 0, 1305, 1304, 1302, + 1303, 1301, 0, 1292, 1298, 1299, 2281, 470, 1823, 0, + 2163, 2170, 2072, 2074, 2513, 0, 1400, 2165, 1950, 0, + 0, 0, 2178, 2076, 0, 0, 542, 2057, 3406, 545, + 544, 2062, 543, 2117, 3479, 2056, 1212, 0, 0, 370, + 459, 435, 389, 3444, 1439, 3460, 0, 3465, 3466, 3404, + 220, 219, 3412, 218, 0, 0, 0, 0, 3453, 3436, + 0, 3440, 3439, 0, 3437, 0, 3438, 0, 3443, 3420, + 3419, 2489, 0, 2488, 370, 369, 2096, 2806, 3008, 2389, + 2385, 2384, 0, 2404, 0, 1895, 1896, 0, 0, 1898, + 3355, 1991, 0, 3352, 382, 387, 0, 0, 0, 402, + 3680, 266, 378, 387, 389, 401, 440, 269, 0, 0, + 370, 370, 387, 3617, 3353, 3289, 1734, 1736, 0, 0, + 1901, 0, 1754, 0, 0, 0, 0, 0, 0, 1556, + 0, 0, 0, 1688, 0, 1754, 1716, 2021, 2022, 2002, + 2003, 2001, 2004, 1436, 0, 2005, 2020, 1642, 0, 0, + 0, 1714, 1382, 1365, 0, 0, 1870, 1871, 1872, 1873, + 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1883, 1888, + 1884, 1885, 1886, 1887, 1882, 1889, 0, 1869, 0, 1740, + 1701, 1703, 0, 0, 0, 812, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1900, 0, 0, 1900, 0, + 0, 0, 0, 0, 0, 1715, 0, 1713, 0, 0, + 0, 1712, 1600, 0, 0, 0, 1900, 0, 0, 0, + 0, 1532, 0, 0, 0, 0, 0, 1900, 0, 0, + 0, 0, 0, 0, 0, 1525, 0, 0, 0, 0, + 1782, 0, 0, 0, 0, 0, 0, 1892, 1890, 1893, + 1891, 0, 0, 1783, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1656, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, + 0, 0, 2504, 0, 992, 0, 0, 0, 0, 1571, + 0, 0, 0, 0, 1452, 1446, 1450, 1444, 1448, 0, + 1441, 1440, 1442, 1505, 2712, 1453, 0, 0, 0, 1456, + 1465, 1469, 0, 0, 0, 0, 0, 1476, 1474, 1475, + 1487, 1488, 1472, 1473, 0, 1478, 0, 1477, 1484, 1485, + 1486, 1489, 1574, 955, 1582, 1920, 1707, 1708, 1732, 1924, + 0, 2500, 1425, 1528, 1527, 1529, 1530, 1531, 579, 0, + 573, 576, 590, 0, 0, 2376, 0, 2681, 2697, 2698, + 316, 319, 318, 320, 0, 0, 1315, 1319, 3353, 0, + 2097, 2098, 0, 0, 0, 3483, 3394, 0, 0, 1421, + 1362, 1420, 0, 0, 0, 0, 0, 3311, 3322, 0, + 0, 3321, 3320, 0, 0, 0, 0, 0, 3293, 0, + 0, 0, 0, 3266, 3331, 3332, 3335, 0, 0, 0, + 2992, 0, 3268, 3273, 3264, 3277, 3279, 3281, 2251, 0, + 0, 0, 2257, 2254, 2246, 2260, 2722, 2256, 2273, 2255, + 2248, 2262, 2247, 0, 0, 0, 2293, 2266, 2269, 2263, + 2293, 0, 2293, 2265, 0, 2291, 2278, 2277, 2276, 2219, + 2218, 2212, 2284, 2270, 2264, 215, 2293, 2217, 2216, 2198, + 2199, 2200, 0, 1959, 0, 2289, 2253, 2283, 0, 2293, + 2293, 2274, 2275, 2238, 2240, 2144, 0, 1823, 0, 0, + 2130, 2123, 2110, 370, 0, 0, 0, 266, 0, 0, + 0, 563, 1342, 1328, 1344, 1252, 1251, 1249, 3529, 3533, + 1784, 79, 2138, 2136, 81, 2135, 2137, 82, 2355, 2331, + 2330, 2332, 2336, 129, 2341, 2333, 0, 2347, 2348, 343, + 347, 0, 0, 0, 3370, 0, 668, 0, 74, 0, + 1258, 1991, 2370, 2372, 2365, 3536, 0, 1225, 1242, 1241, + 1237, 1238, 1243, 1233, 1232, 2188, 3597, 3606, 3610, 3595, + 960, 1040, 0, 3402, 3499, 184, 0, 0, 0, 135, + 0, 667, 156, 158, 667, 0, 0, 0, 667, 0, + 1839, 1831, 1833, 1834, 1835, 0, 1838, 0, 1404, 0, + 1392, 1392, 1402, 1841, 1822, 1819, 1843, 0, 1842, 1842, + 0, 0, 1802, 1801, 0, 1894, 949, 2040, 0, 0, + 1904, 0, 1906, 1915, 1905, 1418, 1991, 1412, 2453, 0, + 0, 0, 0, 0, 0, 0, 0, 960, 0, 661, + 2117, 2117, 0, 0, 0, 0, 0, 0, 0, 0, + 225, 234, 1079, 2543, 1081, 0, 0, 476, 477, 2117, + 475, 518, 519, 522, 523, 524, 0, 0, 525, 2117, + 2117, 472, 498, 499, 502, 503, 504, 505, 506, 468, + 0, 473, 0, 0, 0, 3511, 3353, 1110, 3566, 1082, + 0, 0, 1271, 242, 0, 370, 426, 423, 418, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 87, 88, 109, 0, 1294, 1306, 2069, + 1300, 2117, 2117, 2117, 2117, 474, 507, 508, 511, 512, + 513, 514, 517, 515, 516, 0, 2281, 2164, 1392, 0, + 0, 0, 2516, 0, 1975, 1951, 2177, 0, 2181, 2180, + 0, 3670, 2063, 0, 0, 0, 1214, 1213, 2059, 2066, + 3353, 370, 286, 392, 438, 0, 0, 3401, 221, 3475, + 3478, 2513, 0, 0, 3421, 0, 370, 411, 2098, 2386, + 2390, 1333, 1335, 1336, 1334, 1342, 0, 2558, 2557, 2528, + 1899, 2529, 2554, 2552, 2556, 2550, 2555, 2548, 2549, 2553, + 2551, 0, 3361, 3362, 3360, 1996, 1992, 0, 3354, 3359, + 383, 403, 406, 0, 0, 370, 0, 379, 390, 394, + 0, 409, 448, 432, 432, 432, 266, 1310, 0, 0, + 2503, 0, 1683, 0, 1684, 1685, 0, 1557, 1792, 0, + 0, 0, 1585, 0, 0, 0, 1687, 0, 1437, 0, + 0, 1560, 1552, 1366, 0, 1718, 0, 0, 0, 0, + 0, 0, 0, 1723, 0, 1721, 0, 0, 1786, 0, + 1788, 2500, 0, 1693, 1728, 0, 1691, 0, 0, 1717, + 1729, 1730, 0, 0, 0, 0, 1697, 1695, 0, 0, + 0, 1699, 0, 0, 0, 0, 0, 0, 0, 1603, + 1696, 1698, 0, 1638, 0, 1681, 1639, 1640, 1641, 0, + 1635, 0, 1636, 0, 0, 0, 1666, 0, 1589, 1590, + 0, 0, 0, 0, 1591, 1646, 0, 1565, 1648, 1596, + 1597, 1562, 1563, 1650, 1667, 1651, 1564, 1652, 1655, 0, + 1599, 1991, 0, 1583, 0, 0, 0, 1601, 1629, 0, + 0, 0, 1561, 0, 1658, 0, 0, 0, 1991, 0, + 1668, 1605, 0, 0, 813, 1384, 1553, 2501, 1447, 1451, + 1445, 1449, 0, 0, 0, 0, 1464, 0, 0, 1457, + 1467, 1470, 0, 0, 1922, 0, 0, 1726, 1781, 0, + 0, 0, 1677, 1678, 0, 0, 572, 571, 0, 575, + 651, 0, 592, 580, 569, 2378, 0, 0, 1317, 0, + 0, 0, 2085, 0, 0, 3395, 0, 0, 0, 0, + 1425, 1426, 1426, 2499, 3290, 3291, 3292, 0, 2581, 2579, + 2580, 2532, 2534, 0, 2533, 2577, 2575, 2578, 2573, 2571, + 2572, 2576, 2574, 0, 0, 3309, 959, 958, 957, 0, + 3343, 0, 0, 3328, 3349, 3350, 3347, 3348, 3346, 3326, + 0, 0, 0, 3272, 0, 3337, 3338, 0, 0, 0, + 3307, 3306, 0, 0, 0, 3299, 0, 0, 0, 0, + 2245, 2259, 2258, 2294, 2295, 2272, 2268, 2213, 2271, 2267, + 2290, 1991, 2223, 2244, 2214, 0, 2237, 2195, 2291, 1902, + 2283, 2210, 2211, 0, 1401, 1426, 2126, 1425, 2127, 370, + 2480, 0, 2487, 0, 370, 1291, 1331, 1323, 1330, 1327, + 1342, 1340, 1329, 1018, 1017, 0, 1343, 78, 0, 0, + 2334, 2335, 2328, 2349, 2323, 0, 338, 348, 340, 344, + 345, 346, 341, 2795, 2878, 0, 1902, 3374, 3612, 1265, + 1263, 1262, 1264, 1253, 1259, 1260, 2375, 2373, 2368, 2394, + 1240, 0, 1223, 3617, 1991, 0, 3609, 150, 960, 0, + 0, 0, 1040, 0, 160, 3511, 0, 0, 0, 133, + 166, 3667, 3674, 3580, 0, 151, 3677, 223, 3675, 0, + 1836, 1837, 1799, 1392, 1394, 1393, 0, 0, 1396, 0, + 0, 0, 0, 1807, 0, 1803, 1805, 0, 1867, 1859, + 0, 2045, 2037, 2042, 2498, 1912, 1956, 0, 0, 1363, + 1915, 1417, 1974, 1963, 0, 1967, 1966, 1969, 1416, 1953, + 1956, 1425, 1076, 664, 0, 0, 1077, 0, 0, 0, + 228, 231, 229, 230, 527, 526, 0, 2281, 520, 2117, + 2117, 180, 2117, 2117, 179, 181, 0, 175, 172, 182, + 2117, 1097, 168, 0, 0, 0, 0, 1991, 0, 0, + 0, 186, 0, 0, 2281, 500, 479, 480, 483, 484, + 485, 0, 3486, 3485, 0, 3501, 0, 0, 3503, 0, + 3502, 3500, 3471, 3482, 0, 1105, 1071, 0, 1112, 1114, + 0, 0, 3566, 1270, 0, 245, 429, 0, 0, 0, + 1991, 0, 1991, 1991, 0, 0, 1991, 0, 1991, 0, + 0, 0, 0, 0, 0, 0, 1991, 0, 0, 0, + 0, 1991, 0, 1308, 0, 0, 0, 0, 2281, 509, + 0, 2117, 469, 486, 487, 490, 491, 492, 493, 494, + 497, 495, 496, 2161, 2073, 2180, 0, 2514, 1424, 0, + 2173, 1902, 0, 2179, 3353, 3407, 541, 722, 3480, 1212, + 0, 287, 0, 0, 389, 3515, 0, 0, 0, 0, + 0, 2490, 413, 2082, 0, 1342, 1346, 2397, 3364, 3365, + 3363, 1999, 2000, 1997, 1995, 1998, 404, 290, 292, 289, + 291, 3644, 3645, 0, 3683, 3685, 0, 366, 277, 364, + 3641, 3639, 3643, 3637, 3642, 3635, 3636, 3640, 3638, 365, + 281, 3682, 3708, 0, 3681, 0, 397, 389, 0, 442, + 444, 433, 452, 446, 370, 1737, 1735, 0, 1755, 1789, + 0, 3025, 3026, 3027, 3028, 3029, 3030, 3032, 3033, 3031, + 3034, 3035, 910, 3036, 3037, 3038, 3039, 3040, 3041, 3042, + 3043, 3044, 3045, 3046, 910, 3047, 3048, 3049, 3050, 3051, + 3052, 3053, 3054, 3055, 3056, 3057, 3059, 3058, 3060, 3061, + 3062, 3063, 3064, 3065, 3066, 3067, 3068, 895, 3069, 3070, + 3071, 3072, 3073, 3074, 3076, 3075, 3077, 3078, 3079, 3080, + 912, 3081, 3082, 3083, 3085, 3084, 3086, 3087, 3088, 3089, + 3090, 3091, 3092, 3093, 3094, 1775, 3095, 3096, 3097, 3098, + 3099, 3101, 3100, 3104, 3105, 3106, 3107, 3108, 3109, 3110, + 3111, 3112, 3113, 3622, 3114, 3115, 3623, 3116, 3117, 3118, + 1769, 3119, 3120, 3121, 3122, 3123, 3124, 3102, 3125, 3103, + 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, + 3136, 3137, 3138, 3139, 3140, 3141, 3144, 3142, 3143, 3145, + 3146, 3147, 3148, 3149, 3151, 3150, 3154, 3152, 3153, 3155, + 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3624, 3163, 3164, + 3165, 3166, 3167, 3169, 3170, 3168, 3171, 3172, 3173, 3174, + 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3185, + 3184, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, + 3195, 3196, 3197, 3198, 3201, 3199, 3200, 3202, 3203, 3204, + 3205, 3206, 3207, 3208, 3209, 3210, 3214, 3211, 3215, 3212, + 3216, 3213, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, + 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, + 3235, 3236, 3237, 3238, 3239, 3240, 1772, 3241, 3242, 3243, + 3244, 3245, 3246, 3247, 3249, 3250, 3248, 0, 3251, 3253, + 3252, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 910, 1777, + 910, 1770, 910, 0, 0, 1764, 1765, 1766, 1768, 2593, + 2594, 2595, 2596, 2598, 2599, 3625, 3626, 1767, 2597, 0, + 0, 0, 1689, 1686, 0, 0, 0, 1743, 1743, 0, + 0, 0, 0, 1481, 0, 0, 0, 1672, 1694, 1692, + 0, 0, 0, 0, 0, 0, 0, 0, 1700, 1538, + 0, 1536, 0, 1537, 0, 1539, 0, 0, 1682, 0, + 1507, 1526, 0, 0, 0, 0, 0, 0, 0, 0, + 1784, 0, 2007, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2505, 0, 0, 0, 981, 987, + 990, 991, 993, 985, 0, 1660, 0, 0, 0, 1462, + 1458, 0, 1466, 0, 0, 0, 1480, 1479, 1924, 1923, + 0, 1725, 0, 0, 2502, 1426, 1665, 1425, 582, 0, + 600, 574, 0, 1991, 577, 591, 0, 603, 0, 0, + 0, 317, 0, 1320, 0, 441, 0, 2099, 1823, 0, + 3393, 3484, 0, 0, 1419, 1427, 1422, 0, 0, 0, + 3313, 3312, 3323, 0, 0, 0, 0, 3297, 3295, 3294, + 3270, 0, 0, 3342, 3336, 3333, 3334, 0, 0, 3276, + 0, 0, 3274, 3278, 3280, 2233, 2232, 0, 2292, 1959, + 2206, 2225, 2227, 2293, 2146, 2150, 0, 1894, 2134, 0, + 0, 2128, 2132, 0, 2486, 0, 3710, 0, 1861, 83, + 0, 2326, 0, 2321, 2324, 0, 0, 3385, 3386, 3378, + 3381, 3379, 3380, 3384, 3387, 3388, 3375, 3382, 1959, 0, + 1255, 1261, 1239, 0, 1246, 1244, 3646, 2189, 3598, 3611, + 1057, 1059, 1058, 1041, 1042, 0, 0, 0, 1105, 0, + 0, 0, 671, 960, 167, 0, 0, 195, 3566, 0, + 0, 0, 153, 1403, 1395, 1397, 1392, 1392, 0, 1795, + 0, 0, 0, 1795, 0, 0, 563, 0, 1840, 1856, + 950, 2411, 1913, 1914, 0, 1909, 1957, 1958, 1911, 1907, + 0, 1916, 1918, 1364, 1962, 1413, 0, 1955, 0, 0, + 2031, 2033, 721, 720, 233, 232, 237, 238, 2017, 2018, + 2015, 2016, 533, 546, 2019, 547, 521, 1991, 1991, 2122, + 2121, 1991, 1991, 174, 171, 2120, 2119, 1991, 1991, 169, + 2088, 190, 189, 191, 192, 194, 193, 188, 1093, 0, + 534, 535, 501, 0, 481, 3489, 0, 3496, 3491, 3494, + 3474, 3473, 3472, 3469, 0, 1991, 1991, 1991, 0, 1991, + 3510, 3512, 0, 0, 1094, 960, 3524, 0, 0, 200, + 3568, 0, 3570, 0, 1274, 0, 1273, 370, 1991, 1991, + 102, 1991, 94, 95, 90, 122, 123, 92, 93, 98, + 97, 99, 100, 103, 104, 101, 96, 91, 126, 128, + 127, 105, 124, 125, 89, 540, 539, 538, 537, 510, + 0, 0, 2281, 488, 0, 1902, 2517, 0, 0, 1976, + 2174, 2166, 2168, 2054, 2052, 3651, 0, 439, 393, 437, + 0, 3400, 3405, 3477, 3476, 3499, 3499, 387, 370, 387, + 412, 0, 1337, 1342, 1346, 0, 1338, 2408, 889, 910, + 910, 925, 875, 895, 891, 895, 3117, 885, 925, 841, + 841, 925, 888, 841, 895, 890, 0, 887, 925, 886, + 841, 910, 879, 910, 835, 836, 841, 910, 854, 0, + 895, 925, 0, 876, 895, 881, 910, 0, 910, 910, + 910, 3000, 910, 910, 278, 820, 823, 825, 824, 826, + 827, 910, 910, 910, 910, 910, 912, 895, 895, 895, + 0, 0, 3686, 0, 267, 391, 395, 449, 432, 0, + 0, 1790, 0, 911, 1756, 1757, 0, 1774, 897, 896, + 0, 913, 1776, 0, 1773, 1759, 1779, 1763, 1771, 1778, + 1761, 1555, 1586, 1559, 1558, 0, 0, 0, 1616, 0, + 1741, 1747, 0, 0, 0, 1593, 0, 1724, 1722, 1595, + 0, 0, 1674, 1649, 1720, 1619, 1653, 0, 1598, 0, + 1625, 1623, 0, 1535, 1533, 1534, 0, 1606, 1633, 0, + 1524, 1634, 0, 1612, 0, 1614, 0, 1615, 0, 1644, + 0, 1617, 1647, 1551, 2009, 2008, 2006, 1566, 1991, 0, + 1620, 1584, 0, 0, 1657, 2506, 2507, 0, 1659, 0, + 0, 992, 978, 979, 980, 0, 982, 984, 986, 0, + 1991, 1483, 1482, 1454, 0, 1463, 1460, 0, 1468, 1926, + 1925, 0, 0, 1669, 1427, 1679, 0, 583, 584, 586, + 588, 0, 653, 578, 0, 567, 0, 582, 570, 1318, + 1321, 2105, 0, 2102, 2109, 556, 2173, 0, 2100, 2071, + 0, 3391, 3390, 0, 1423, 1431, 1430, 2496, 2500, 0, + 0, 0, 3310, 3330, 0, 0, 0, 0, 3340, 3339, + 3341, 3308, 3303, 3301, 3300, 2013, 2014, 2012, 2010, 2011, + 2224, 1959, 2220, 0, 1902, 0, 1859, 1426, 2124, 0, + 3650, 0, 0, 1864, 0, 1865, 1862, 1863, 1991, 0, + 0, 356, 351, 359, 353, 355, 354, 360, 361, 362, + 363, 357, 352, 358, 350, 349, 0, 3373, 1266, 0, + 0, 138, 0, 3403, 159, 0, 144, 147, 771, 0, + 0, 0, 0, 2117, 2117, 2117, 2117, 2117, 2117, 2117, + 2117, 2117, 2117, 0, 2117, 2117, 2117, 2117, 2117, 2117, + 2117, 2117, 2117, 2117, 0, 0, 2117, 2117, 134, 551, + 559, 672, 675, 716, 700, 701, 548, 0, 136, 263, + 226, 0, 0, 0, 248, 0, 736, 737, 735, 734, + 0, 0, 3566, 1406, 1405, 1808, 0, 1812, 1817, 1813, + 0, 1804, 0, 1825, 1868, 1860, 0, 0, 2419, 1956, + 0, 0, 1956, 1426, 2029, 1425, 173, 178, 177, 170, + 183, 176, 1098, 187, 482, 3490, 3488, 3487, 0, 3495, + 0, 3470, 3506, 3504, 3505, 3508, 0, 0, 3507, 3509, + 1099, 1100, 1106, 1101, 1200, 1200, 0, 1200, 0, 0, + 1200, 2117, 0, 0, 563, 1218, 2117, 0, 0, 0, + 0, 0, 1183, 0, 1200, 0, 0, 0, 0, 0, + 1126, 1182, 673, 1072, 1125, 1127, 1139, 559, 0, 1157, + 1185, 1186, 1184, 3525, 0, 0, 0, 1111, 0, 203, + 201, 211, 3567, 0, 2088, 0, 3570, 1276, 1277, 0, + 427, 0, 115, 117, 0, 119, 121, 0, 111, 113, + 471, 536, 489, 2180, 2171, 0, 1977, 0, 1425, 2088, + 288, 0, 0, 3513, 3513, 414, 416, 415, 2139, 1339, + 1347, 2410, 2409, 0, 847, 925, 923, 925, 861, 926, + 899, 892, 899, 863, 970, 875, 0, 925, 963, 968, + 964, 871, 0, 841, 966, 0, 974, 973, 842, 869, + 862, 868, 899, 0, 858, 866, 925, 834, 870, 857, + 0, 899, 872, 877, 880, 882, 884, 899, 925, 0, + 0, 3617, 841, 856, 855, 0, 841, 899, 3617, 878, + 966, 974, 841, 925, 899, 899, 893, 893, 893, 282, + 1991, 284, 367, 432, 3706, 1738, 0, 0, 0, 0, + 966, 0, 0, 1780, 966, 966, 1690, 0, 0, 0, + 0, 1747, 1749, 0, 0, 1748, 1706, 0, 0, 0, + 0, 0, 1554, 0, 1670, 0, 0, 0, 0, 895, + 1514, 1516, 1512, 1515, 0, 910, 1518, 0, 876, 910, + 1521, 1523, 1508, 1509, 1510, 1511, 0, 0, 1793, 1794, + 0, 2027, 2026, 2025, 0, 0, 0, 0, 2508, 976, + 1662, 0, 989, 983, 981, 988, 0, 1459, 0, 0, + 1928, 0, 1727, 1680, 587, 0, 654, 0, 607, 0, + 605, 581, 0, 0, 2106, 2108, 2493, 2492, 2504, 0, + 0, 2088, 2101, 3392, 1429, 1428, 0, 3317, 3315, 3314, + 3345, 3344, 3298, 3296, 0, 0, 2226, 2149, 1950, 2151, + 2152, 2143, 2133, 2131, 2482, 1142, 0, 1143, 1154, 1156, + 1345, 0, 2360, 0, 2358, 2327, 2361, 0, 1245, 1247, + 0, 141, 0, 0, 0, 1066, 2630, 0, 0, 740, + 742, 743, 744, 745, 0, 772, 747, 667, 1019, 1019, + 774, 2509, 0, 719, 2117, 552, 1991, 1991, 1991, 1991, + 698, 1991, 1991, 1991, 0, 0, 2117, 1991, 0, 0, + 1991, 1991, 1991, 1991, 0, 0, 1991, 706, 707, 705, + 1991, 1991, 2408, 558, 560, 960, 676, 671, 0, 256, + 3668, 462, 463, 0, 0, 3570, 0, 0, 3586, 0, + 3586, 0, 0, 0, 0, 0, 0, 1849, 0, 1848, + 0, 1854, 1858, 0, 0, 0, 0, 2412, 2414, 0, + 2046, 1910, 1919, 1917, 1954, 2034, 2032, 0, 3497, 3493, + 1994, 1993, 0, 1103, 0, 1102, 1107, 1066, 667, 1201, + 665, 0, 1161, 1165, 1162, 665, 2075, 1311, 2075, 0, + 0, 2075, 0, 2077, 2075, 0, 0, 2075, 2075, 0, + 1311, 0, 561, 1221, 1219, 2075, 1220, 2075, 0, 0, + 1311, 1174, 1121, 1175, 0, 1122, 2075, 1311, 1141, 1311, + 1311, 0, 674, 960, 1123, 1124, 771, 1215, 210, 199, + 0, 0, 1113, 1115, 0, 0, 1116, 3569, 1085, 3572, + 2088, 1282, 0, 107, 1991, 108, 1991, 106, 1991, 2088, + 0, 1978, 2175, 2169, 3516, 0, 3399, 3398, 0, 2173, + 0, 859, 929, 0, 860, 901, 902, 900, 905, 837, + 833, 971, 965, 864, 865, 844, 967, 962, 975, 972, + 969, 923, 843, 839, 0, 1068, 851, 0, 840, 883, + 838, 852, 0, 274, 0, 3648, 0, 0, 3655, 280, + 867, 3617, 270, 849, 853, 279, 845, 846, 848, 974, + 831, 832, 0, 828, 830, 829, 1991, 3684, 297, 296, + 0, 0, 450, 908, 906, 909, 907, 1758, 0, 1760, + 1762, 1610, 1611, 1744, 1956, 1742, 0, 1704, 1750, 1751, + 1643, 0, 1594, 0, 1671, 0, 1654, 1624, 1622, 1607, + 1517, 1513, 1520, 877, 1519, 966, 1637, 1613, 1645, 1567, + 1991, 1621, 1627, 1628, 0, 1661, 1991, 1461, 0, 1931, + 1930, 0, 0, 1956, 585, 0, 652, 580, 0, 0, + 604, 0, 568, 2104, 0, 0, 0, 2103, 2113, 0, + 2086, 2497, 0, 0, 3304, 3302, 1975, 2483, 2481, 1341, + 0, 1866, 2356, 1991, 0, 2325, 0, 0, 0, 0, + 0, 0, 773, 1067, 0, 0, 746, 2512, 739, 771, + 0, 0, 0, 1019, 763, 667, 0, 1066, 1020, 667, + 667, 0, 0, 0, 0, 2024, 2023, 695, 688, 687, + 690, 689, 692, 691, 0, 684, 681, 693, 683, 708, + 0, 696, 678, 732, 733, 731, 702, 709, 679, 680, + 686, 685, 682, 724, 729, 727, 726, 725, 730, 728, + 697, 715, 694, 710, 550, 656, 677, 559, 714, 713, + 711, 712, 262, 260, 261, 0, 3658, 0, 257, 0, + 252, 259, 255, 235, 227, 0, 370, 466, 464, 465, + 0, 0, 152, 265, 249, 251, 226, 0, 3679, 226, + 3570, 1809, 0, 1814, 0, 1806, 1844, 1844, 1855, 0, + 0, 0, 0, 2413, 0, 0, 2420, 2422, 0, 1101, + 0, 0, 0, 1311, 0, 0, 1187, 1159, 0, 0, + 0, 1133, 0, 0, 2075, 0, 1189, 0, 1188, 0, + 0, 0, 1198, 1199, 0, 1946, 1948, 1956, 0, 0, + 0, 1178, 1196, 1197, 0, 0, 0, 0, 1149, 0, + 1138, 1200, 1200, 1158, 0, 738, 0, 1217, 1160, 197, + 202, 212, 213, 1087, 0, 3571, 1083, 0, 1283, 1279, + 1280, 1275, 116, 120, 112, 2172, 0, 0, 3520, 3514, + 3518, 2140, 2088, 0, 924, 903, 904, 930, 966, 0, + 966, 3617, 276, 0, 273, 3656, 3659, 0, 850, 0, + 306, 305, 303, 370, 293, 301, 295, 0, 302, 0, + 286, 0, 0, 1746, 1702, 0, 0, 0, 1673, 1675, + 1522, 0, 977, 0, 1927, 1921, 0, 0, 0, 0, + 0, 0, 1940, 1932, 0, 1731, 655, 0, 0, 593, + 610, 609, 606, 2107, 2494, 2505, 557, 0, 0, 3318, + 3316, 2147, 0, 1155, 2359, 0, 3383, 0, 1956, 1064, + 0, 0, 0, 0, 0, 0, 741, 0, 667, 1015, + 1016, 1066, 0, 748, 1038, 2509, 1066, 1066, 910, 835, + 836, 841, 910, 854, 2683, 895, 925, 2687, 876, 895, + 881, 910, 778, 910, 910, 910, 910, 910, 0, 766, + 776, 821, 895, 2593, 2594, 2595, 2596, 2598, 2599, 2597, + 2511, 553, 704, 2348, 703, 657, 0, 2408, 0, 3000, + 253, 264, 0, 3657, 236, 3669, 1425, 208, 0, 3665, + 3678, 3587, 3676, 154, 0, 0, 0, 1852, 1850, 2417, + 2418, 0, 2415, 0, 0, 2421, 0, 1108, 1104, 1109, + 0, 1144, 0, 1163, 0, 1132, 0, 1297, 956, 1170, + 0, 1128, 0, 1172, 1173, 1212, 1130, 0, 1949, 562, + 0, 0, 1137, 0, 1215, 1129, 1151, 1135, 1164, 1216, + 204, 1117, 370, 0, 0, 0, 1278, 0, 1285, 0, + 3519, 3517, 0, 2083, 1823, 874, 1069, 873, 3660, 275, + 271, 894, 1991, 283, 304, 285, 3687, 898, 1956, 1753, + 1752, 1592, 1568, 1663, 0, 1937, 0, 0, 1935, 1934, + 0, 1929, 1936, 0, 0, 601, 617, 613, 0, 615, + 616, 638, 0, 2112, 2114, 2088, 0, 2362, 3353, 0, + 1061, 0, 1062, 0, 3353, 3353, 0, 0, 0, 1066, + 1038, 2509, 997, 0, 749, 0, 753, 755, 780, 0, + 775, 767, 788, 0, 0, 717, 549, 0, 254, 0, + 258, 3581, 200, 209, 250, 0, 1811, 1816, 0, 1845, + 0, 0, 0, 2416, 2424, 2423, 3498, 0, 1146, 666, + 0, 0, 1215, 1134, 1181, 1171, 1190, 1169, 1311, 1947, + 0, 0, 0, 1168, 1150, 1152, 1258, 0, 206, 214, + 3573, 0, 0, 1284, 1289, 0, 1286, 1288, 1398, 0, + 2398, 0, 294, 1745, 1938, 0, 1939, 1942, 0, 0, + 1943, 0, 597, 599, 589, 0, 594, 0, 611, 0, + 2117, 2117, 0, 2117, 2117, 2117, 2117, 631, 639, 641, + 0, 2495, 2148, 2484, 1026, 1956, 0, 0, 0, 0, + 1028, 1030, 0, 0, 768, 761, 757, 0, 0, 1001, + 1039, 0, 751, 0, 0, 941, 995, 806, 0, 809, + 0, 779, 781, 934, 935, 783, 0, 0, 0, 0, + 822, 0, 0, 916, 0, 919, 0, 0, 777, 0, + 789, 915, 922, 2510, 699, 555, 718, 0, 0, 0, + 211, 3666, 1847, 1846, 1861, 0, 0, 0, 0, 1145, + 1177, 0, 1167, 1131, 1179, 1180, 563, 0, 1136, 205, + 0, 198, 3574, 3575, 1281, 0, 2141, 949, 272, 1933, + 1941, 1945, 1944, 595, 0, 602, 624, 614, 620, 0, + 2117, 0, 0, 2117, 0, 0, 0, 0, 0, 608, + 640, 2117, 0, 0, 2117, 0, 1047, 1191, 1027, 1053, + 1052, 1032, 0, 1060, 1065, 1064, 3353, 185, 0, 1191, + 1029, 1055, 1036, 1191, 1031, 1054, 1034, 0, 0, 0, + 0, 759, 0, 1000, 0, 1005, 0, 0, 0, 0, + 807, 808, 942, 782, 940, 933, 927, 0, 921, 0, + 0, 0, 818, 819, 917, 815, 816, 817, 0, 0, + 797, 0, 0, 923, 914, 790, 3663, 0, 0, 0, + 0, 0, 1166, 1148, 0, 1176, 1140, 0, 207, 1287, + 0, 2399, 601, 598, 624, 0, 622, 0, 618, 612, + 619, 0, 650, 644, 0, 646, 647, 645, 642, 635, + 0, 633, 0, 1043, 1046, 1991, 1044, 139, 1193, 1192, + 1033, 0, 0, 1026, 0, 145, 1037, 148, 1035, 764, + 0, 0, 0, 0, 998, 0, 1002, 1003, 1004, 0, + 996, 0, 0, 0, 0, 928, 932, 939, 938, 936, + 937, 2456, 2455, 0, 1432, 920, 0, 792, 931, 791, + 0, 3661, 1425, 213, 1853, 1851, 1147, 0, 2142, 2154, + 0, 2425, 596, 621, 0, 629, 625, 627, 630, 649, + 648, 0, 632, 0, 643, 1045, 1195, 1194, 1051, 1050, + 1048, 1049, 1063, 1191, 1056, 765, 0, 1062, 0, 999, + 0, 0, 1026, 0, 1028, 1030, 814, 0, 918, 784, + 784, 798, 3664, 0, 3582, 196, 0, 0, 0, 0, + 2411, 623, 0, 0, 638, 637, 634, 142, 0, 0, + 1062, 1011, 1010, 0, 0, 1007, 1006, 750, 1026, 754, + 756, 1433, 0, 795, 785, 787, 794, 800, 801, 799, + 802, 3662, 0, 1153, 2153, 2155, 0, 2419, 628, 626, + 636, 762, 1026, 0, 1014, 1012, 1013, 0, 0, 752, + 1434, 786, 793, 803, 805, 0, 0, 2427, 758, 1026, + 0, 0, 804, 3583, 2426, 0, 2431, 760, 1009, 1008, + 3578, 0, 0, 2438, 3576, 3577, 0, 3584, 2429, 2430, + 2428, 0, 2433, 0, 2435, 2436, 0, 2088, 3579, 370, + 2437, 2432, 0, 2439, 2441, 0, 2400, 3585, 2434, 0, + 1425, 2440, 0, 1426, 2442 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -5579, -5579, -5579, -5579, 1781, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 2336, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 1514, -5579, -147, -5579, -144, -5579, -142, -3128, -545, + 3717, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + 1672, -3116, -5579, -5579, -757, 839, -5579, -5579, -394, -5579, + -783, -5579, -5579, -5579, -4514, -920, -1122, -5579, 36, 4208, + 3183, -85, 3544, 405, -4683, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -204, -5579, -3833, -5579, -5579, -5579, + -5579, -5579, 926, -2197, -631, -174, -494, -5579, -617, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -508, -5579, -5579, -5579, + -697, 196, -4616, -5579, -5579, -5579, -5579, 2385, -5579, 1692, + -5579, -1798, 3211, -5579, -5579, -5579, -5579, -5579, 2346, -2507, + -5579, -5579, -5579, 983, -5579, -2861, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -461, -5579, + -2084, 1456, -5579, 1510, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -1451, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 2886, -5579, 4164, -5579, -5579, 689, -5579, + 2769, -5579, 2775, 2768, -2828, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3542, -5579, -5579, + -5579, -3155, -5579, -5579, -3246, 2919, -5579, -2338, -5579, -5579, + -2336, -5579, -5579, -2476, 961, -5579, -5579, 1796, 1388, -5579, + -1788, -2624, -2611, -5579, -5579, -5579, -2698, -2694, -788, 2870, + -1335, -3186, -5579, -5579, -5579, -588, -586, -326, 346, 862, + -5579, -3981, -5579, -5579, -399, -5579, -5579, -5579, -5579, -5579, + 587, -214, 592, -5579, 149, 2561, -2933, -5579, -5579, -5579, + -5579, -5579, -5579, -894, -485, -988, -5579, -4323, -206, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -4622, -5579, -5579, + -5579, -1116, -5579, -5579, -1076, -5579, -5579, -1115, -5579, -787, + -5579, -5579, -5579, 2308, 3628, -1904, -2, -641, -5579, -3898, + 387, -3706, -3984, -5579, -5579, -699, -1337, -1336, -994, -5579, + -5579, -5579, -5579, -5579, -5579, -35, -227, 385, -4441, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -4432, -4426, -340, -5579, + -5125, -5579, 112, -5579, -4986, -5579, -5579, -5579, -5579, -5579, + -5579, -1079, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5578, + -5579, -5579, -926, -936, -5579, -834, -3362, -5579, -4915, -5579, + -2571, -5579, -5579, -5579, -5579, -2314, 699, 822, -5579, -5579, + -5579, -2359, -3459, -3346, -5579, -2020, -3261, -1210, 776, -932, + -5428, -4963, -2000, -5579, -3902, -5579, -5579, -3722, -5205, -5579, + -670, -2859, -3244, -843, -5579, -5579, -1736, -561, -3203, -5579, + 344, 333, -3499, -4186, -4373, 1200, -5579, -5579, 677, -5579, + -2036, 680, -5579, -5579, -5579, 691, -5579, -1065, -5579, -5579, + -5579, -5579, -5565, -5579, -2559, -4526, -5579, 4996, 4997, -3677, + -1034, -1033, -5579, -5579, -5579, -629, 1821, -5579, -3649, -844, + -859, -854, -3211, -5002, -4295, -3802, -3527, 348, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -281, -277, 1078, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 446, -2990, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -4102, -4564, -5579, -5579, 31, -4056, -4081, -4069, + -4453, 3575, -5579, -5579, -5579, -5579, 3668, -3414, -3690, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 3148, 1285, -5579, -5579, + 1852, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -663, 1860, -5579, -5579, -5579, -5579, -5579, 2337, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -789, -5579, -5579, -5579, + -5579, -5579, -507, 3009, -5579, -5579, -5579, -5579, -20, -5579, + -5579, -5579, -5579, 2010, -5579, -5579, -5579, -5579, 2523, -5579, + -5579, -5579, -5579, -5579, -5579, 1642, -5579, 2245, -5579, -2512, + -5579, -5579, 907, -155, -5579, -5579, -38, -5579, -5579, -5579, + -5579, -5579, 42, -5579, -5579, -5579, 4999, -1582, 14, -67, + -5579, -5579, 10, -5579, -5579, 3739, -453, 2065, -696, 4380, + -5579, -5579, -5579, -5579, -2562, 1940, -5579, 3802, -5579, -5579, + 3975, 1088, 3772, 1810, 448, 2027, -1700, -161, -3085, 735, + -5579, 1610, 794, 10272, -1432, -1541, -5579, -5579, -41, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 2144, 2150, + -5579, -5579, 3465, -5285, -5579, -5579, -849, -5579, -2495, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 1246, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, 3398, -1640, -5579, -5579, 3550, -5579, + 1349, -5579, 367, -5579, -5579, -5579, -1234, -5579, -2843, -5579, + -5579, -5579, -5579, -5579, -1573, -643, -5579, 3549, -5579, 3582, + -5579, -1235, -1796, 3159, -5579, 3831, -5579, -5579, -5579, -5579, + -5579, -5579, 3165, -5579, -2088, -5579, -2487, 3832, 3833, 3835, + -5579, 3838, -5579, -5579, -1636, -196, -5579, 170, -5579, -5579, + -5579, -5579, -5579, 712, -5579, -709, 279, -692, -4364, -1444, + 838, -5579, -5579, -1868, 3190, 3602, -1327, -5579, 2485, -5579, + 3167, 1301, -5579, 1884, -5579, 611, 613, -5579, -5579, 1307, + -5579, -5579, -5579, -5579, -16, -584, -5579, -5579, -5579, -430, + 314, -2079, -5579, -3, -3167, 3837, -292, -1218, -5579, -1363, + 1892, -24, 4460, -502, -5579, -5579, 3834, -5579, -2871, -5579, + 45, -1579, -852, -3098, -4830, -3257, -5579, -2472, -5579, -5579, + -5579, -5579, -5579, 633, -5579, -5579, -5579, 2524, -5579, 5121, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -516, -1186, -5579, -5579, 2392, -1459, -148, 5145, -37, -5579, + -5579, -30, -5579, -5579, 4564, -2056, -5579, -5579, 4091, 3050, + 2361, -5579, 1019, -5579, -5579, -5579, -5579, 805, -5579, -5579, + -273, -1072, -207, 1886, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 332, -5579, 773, -1896, -5579, -5579, -5579, -5579, -19, + -5579, -5579, -5579, -5579, 774, -5579, -884, -5579, -12, -5579, + -5579, -5579, 4415, -5579, -5579, -5579, -5579, -5579, -5579, -4158, + -5579, -5579, 3129, -1431, 4417, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, 2685, -5579, -5579, -5579, -5579, -5579, -5579, 3424, + 4585, -673, -1663, -5579, -986, 2690, 2068, -973, -5579, -5579, + -5579, 3867, 4591, -5579, -5579, 5146, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, 2644, -312, -5579, -5579, -5579, + -5579, -5579, 20, -5579, -5579, -5579, -5579, 3326, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, 3740, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, 1047, -862, -5579, 284, -885, -5579, -83, -5579, + -5579, -5579, -5579, -5579, -938, -5579, -5579, -944, -5579, -1376, + 4338, -1321, -5579, -1738, -3368, -5579, 8, -5579, -5579, -5579, + 2706, -5579, -5579, -5579, -5579, 2427, -2551, -5579, 64, -5579, + -5579, -2677, -886, -1666, -3697, 118, -5579, -5579, -626, 4159, + 4702, 133, -559, -1272, -5579, -5579, 2371, -5, -831, -77, + -750, -745, -1101, -5579, 8449, -5579, -5579, -2841, -659, -648, + -619, -587, 9, 67, -661, -531, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, 2125, 2127, -5579, 4629, + -5579, 3082, 2799, -5579, -5579, -5579, 2128, -5579, -5579, -5579, + 4633, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, 2137, 2142, 2146, -5579, -5579, 1369, -2464, -5579, -5579, + -1931, 302, -5579, 3119, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, 3335, -534, -580, 3543, 4650, 4168, -5579, + 3804, -5579, 3805, -5579, 1186, -5579, -1734, 2210, -1452, -3251, + -5579, -5579, 2551, 707, -5579, -5579, -2557, -3124, -5579, 2057, + 629, -5579, -5579, -114, -5579, -5579, -5579, 1190, 220, 4624, + 4047, -5579, -5579, -5579, -5579, 5228, 1784, -5579, 409, 5254, + 5257, 5261, -183, -5579, -3250, -5579, -4229, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -5579, -5579, -5579, 361, -5579, -5579, + -5579, 2143, -5579, -5579, -5579, -5579, -5579, -5579, -5579, -5579, + -5579, -1466, 4437, -5579, 1143, -2687, -5579, -2836, -611, -5579, + -5579, -5579, -5579, -5579, 3132, -5579, 1825, -5579, -5579, -5579, + -4357, -230, -5579, -5579, 5, -5579, -5579, -5579, -5579, -5579, + -5579, -5579, -5579, -5579, -1477, -5579, -5579, -5579, -380, -910, + 27, -5579, -5579, -5579, -5579, -5579, -5579 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 69, 739, 1977, 70, 71, 72, 73, 74, 1943, + 75, 1271, 2611, 1273, 1908, 2614, 76, 708, 77, 2104, + 2813, 2814, 4687, 4688, 4681, 4682, 4684, 4685, 2815, 824, + 825, 78, 2668, 4032, 3280, 1979, 4920, 2662, 5258, 1984, + 4923, 1985, 4924, 2660, 4038, 4572, 1989, 1990, 748, 4033, + 3361, 3362, 1332, 3276, 3370, 3371, 2673, 4562, 4667, 5650, + 4671, 5778, 5901, 5742, 3398, 5086, 5651, 5652, 643, 1342, + 2164, 607, 2066, 5599, 2740, 5344, 2741, 79, 816, 1448, + 2094, 2095, 4986, 4987, 5354, 5335, 5336, 5337, 5338, 5339, + 4560, 4979, 4565, 2915, 2101, 5151, 5143, 5144, 4761, 3503, + 3504, 4768, 3505, 5166, 5171, 3471, 3472, 4206, 3506, 5473, + 5474, 5475, 663, 1145, 5476, 80, 81, 664, 673, 665, + 1142, 2470, 1143, 82, 83, 706, 1933, 1934, 1935, 1936, + 3242, 2631, 3236, 3237, 4504, 5152, 3508, 84, 644, 922, + 923, 924, 925, 926, 927, 928, 929, 930, 899, 820, + 2863, 2919, 3525, 2864, 3473, 2920, 2215, 931, 932, 933, + 934, 935, 1562, 900, 2184, 3482, 4220, 85, 621, 821, + 1451, 2099, 822, 2100, 3407, 823, 2097, 1454, 3529, 2152, + 855, 1492, 936, 1151, 3530, 937, 2220, 2222, 2219, 3528, + 4783, 2221, 86, 654, 683, 642, 1490, 670, 4983, 5350, + 794, 795, 832, 2836, 796, 1461, 1421, 2071, 2769, 2770, + 3376, 3377, 3442, 3443, 3444, 2761, 2762, 2763, 2825, 2826, + 2827, 2750, 2751, 2752, 2075, 2747, 2748, 797, 1422, 1433, + 2764, 2765, 2766, 3448, 2829, 2830, 2831, 2832, 2767, 2141, + 2768, 4092, 4548, 4977, 4549, 5324, 4434, 4972, 4973, 4974, + 5408, 3221, 87, 657, 1128, 1763, 2462, 3920, 3098, 3100, + 2463, 3919, 4416, 4417, 4418, 3096, 3097, 5509, 3102, 3917, + 5695, 6012, 5801, 5802, 3909, 5806, 4425, 4869, 4870, 5229, + 5510, 5701, 5919, 5807, 6019, 5917, 6015, 5918, 6017, 6143, + 6096, 6097, 5929, 6030, 6031, 6101, 6144, 5817, 5818, 5819, + 3914, 5226, 5586, 3267, 3268, 2061, 5385, 1282, 88, 4550, + 4651, 4551, 4552, 5294, 5875, 4553, 4554, 4555, 3466, 1839, + 5320, 5306, 4570, 5424, 4556, 4928, 4929, 4930, 4931, 5841, + 5967, 5843, 5844, 5960, 6053, 5959, 4932, 4933, 5266, 5730, + 5274, 5046, 4934, 4935, 4936, 5281, 5569, 5732, 5728, 5851, + 5852, 6163, 6164, 5868, 6131, 5869, 6170, 6192, 6193, 5853, + 89, 656, 1712, 5982, 5983, 5984, 4274, 5570, 4275, 4276, + 4748, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, + 4286, 5163, 4751, 4308, 5118, 5119, 4303, 4747, 4312, 5870, + 5871, 5112, 4752, 6066, 4719, 5132, 5995, 5854, 5872, 5856, + 4735, 1790, 1791, 3311, 1805, 1806, 3147, 2501, 3148, 2064, + 4736, 4737, 5125, 4738, 5130, 4390, 5214, 4396, 4397, 4398, + 3878, 3879, 3880, 3881, 3882, 3059, 5857, 5543, 5839, 5962, + 5965, 6060, 6155, 5275, 4937, 5279, 1242, 4938, 4939, 5937, + 5949, 5953, 5938, 5954, 5950, 5724, 3271, 5939, 5940, 5941, + 5956, 5952, 4023, 5527, 5828, 5528, 5262, 5134, 90, 165, + 4145, 1409, 2727, 1411, 1420, 3402, 2778, 2777, 1426, 1425, + 2756, 4110, 4622, 5026, 4144, 3399, 4149, 5433, 781, 4653, + 5768, 5627, 5776, 4654, 4906, 4655, 5758, 5889, 4656, 5646, + 5774, 5897, 4907, 4908, 4657, 4658, 4659, 6037, 6038, 6039, + 5035, 1884, 800, 801, 1438, 1439, 1440, 2858, 5428, 5058, + 91, 2652, 2647, 92, 1299, 1300, 1301, 1955, 1956, 2650, + 2651, 3262, 4015, 93, 1266, 2607, 1945, 2639, 94, 1285, + 3253, 3254, 3255, 4010, 95, 1446, 2091, 2092, 2782, 4156, + 4679, 5091, 5441, 5658, 5437, 5785, 5786, 96, 828, 1457, + 97, 623, 2113, 2114, 2115, 2817, 98, 1571, 173, 99, + 1772, 1769, 2476, 2477, 100, 1265, 1895, 1896, 1897, 1898, + 3217, 101, 2192, 2881, 2882, 2883, 2884, 2602, 3987, 2603, + 2604, 3226, 4226, 102, 762, 1404, 103, 761, 1403, 104, + 105, 682, 734, 675, 1781, 107, 108, 4435, 2263, 110, + 768, 766, 1092, 112, 1397, 1393, 113, 2264, 1093, 758, + 759, 1349, 1172, 3296, 3297, 2126, 2127, 2705, 2692, 1173, + 1174, 1375, 2047, 2717, 2490, 2491, 1880, 2492, 3935, 4444, + 6128, 1600, 1502, 1269, 1095, 1096, 1731, 1732, 1739, 1097, + 1733, 2416, 4360, 4832, 4833, 4834, 4835, 5205, 2345, 2346, + 2457, 1098, 2332, 1099, 1100, 1101, 1102, 1103, 1104, 1105, + 1106, 1107, 1108, 2452, 4341, 4342, 4814, 3091, 3092, 3093, + 1109, 2945, 4325, 2956, 2957, 2292, 1110, 1111, 1112, 1113, + 1114, 3902, 1115, 4412, 4070, 1116, 1572, 2226, 2290, 4801, + 4330, 5183, 4803, 4804, 4805, 5188, 2231, 2933, 3794, 4790, + 4794, 4795, 3795, 3796, 2349, 2350, 1621, 1622, 1589, 1590, + 3857, 1350, 1351, 1352, 1353, 1354, 4054, 4055, 4992, 4576, + 4994, 4580, 2012, 2013, 2016, 2017, 1355, 1356, 1357, 1358, + 2000, 1359, 1360, 1361, 2697, 5607, 5000, 5001, 5752, 5751, + 5002, 4585, 4586, 4058, 4059, 4484, 4485, 4486, 3307, 2286, + 2287, 2361, 2197, 2198, 2199, 2232, 1369, 2027, 2713, 3317, + 2029, 3315, 4065, 3319, 4071, 4072, 2447, 3084, 3898, 3086, + 4860, 5221, 5222, 5502, 5685, 5686, 5691, 4662, 5405, 5406, + 2844, 1376, 2725, 3329, 4068, 1841, 1842, 1843, 2037, 3322, + 3323, 3460, 1378, 1379, 1391, 1396, 1382, 1380, 2907, 4618, + 5169, 3883, 3865, 4912, 4093, 2255, 2256, 5287, 4844, 1383, + 2726, 4079, 4080, 4081, 1365, 1366, 2022, 2023, 2024, 1384, + 1367, 2706, 4061, 114, 701, 115, 2148, 842, 1487, 2147, + 3233, 1459, 3927, 2121, 2122, 1476, 789, 641, 116, 645, + 4221, 117, 671, 3926, 901, 2742, 1530, 1774, 1531, 2481, + 3112, 3113, 4436, 4880, 4437, 4873, 4874, 4438, 1255, 5237, + 5238, 1407, 4106, 4107, 4101, 2592, 3208, 1256, 1885, 3980, + 2589, 3981, 2590, 2616, 3982, 5109, 5662, 6010, 2586, 118, + 680, 4474, 5705, 3974, 3975, 6088, 6089, 1253, 119, 627, + 2120, 838, 1465, 1468, 1469, 2130, 4699, 2840, 5099, 4201, + 4698, 1470, 1471, 2842, 839, 840, 120, 722, 3263, 1305, + 1863, 1864, 1865, 2573, 121, 677, 1243, 3969, 4471, 2559, + 660, 1485, 1846, 1246, 1847, 2555, 3192, 1827, 122, 1401, + 1400, 815, 123, 124, 774, 174, 2051, 125, 1274, 1926, + 2628, 3993, 3994, 4489, 1927, 1928, 3234, 126, 689, 1260, + 3230, 4913, 4914, 5255, 127, 713, 1289, 1290, 1949, 1947, + 3258, 2642, 128, 2464, 129, 646, 904, 1534, 1535, 2190, + 130, 716, 1294, 131, 132, 906, 4227, 5907, 6091, 650, + 2194, 1539, 5325, 4588, 5007, 5008, 5010, 5376, 5377, 6140, + 6206, 6220, 6213, 6223, 6224, 6227, 6233, 6234, 1117, 1312, + 1313, 1118, 5987, 1119, 1120, 1121, 2265, 1259, 685, 1888, + 1889, 5248, 5522, 2596, 3211, 2181, 2182, 1890, 4875, 4876, + 3122, 3316, 1122, 3976, 5263, 1460, 2123, 1277, 608, 1123, + 609, 791, 1314, 2019, 2890, 1193, 3133, 1125, 939, 1416, + 1770, 2080, 2081, 2891, 611, 3134, 1194, 4288, 612, 613, + 614, 615, 616, 617, 618, 619, 3805, 134, 676, 1202, + 1802, 1810, 2510, 1800, 2522, 3173, 2524, 2525, 3178, 2526, + 1249, 2496, 1801, 3162, 4457, 4456, 2523, 3961, 4895, 4894, + 2527, 2518, 3957, 3943, 3143, 4451, 5243, 5242, 2505, 2504, + 2503, 2513, 2514, 2515, 2516, 3954, 3153, 3159, 135, 907, + 2203, 653, 1541, 1542, 2904, 136, 679, 137, 707, 1279, + 2635, 3246, 3247, 4006, 4506, 4007, 138, 1157, 1158, 139, + 891, 3274, 2867, 2137, 1419, 2138, 2165, 894, 1494, 895, + 896, 897, 898, 4134, 3391, 3392, 2872, 2145, 2082, 2486, + 3384, 4608, 2083, 4128, 4129, 4609, 2775, 5448, 4141, 3395, + 5106, 4211, 5449, 5450, 140, 693, 141, 5345, 700, 1268, + 1905, 142, 143, 144, 145, 767, 1387, 1175, 166, 167, + 168, 169, 804, 805, 3401, 4151, 4674, 4675, 5435, 6216, + 6217, 2672, 4036, 5879, 6172, 6210, 6229, 5356, 5357, 146, + 1319, 1315, 733, 1975, 1969, 1971, 2658, 3266, 147, 148, + 149, 5148, 150, 1560, 2877, 2102, 3806, 4289, 620, 944, + 3519, 4017, 857, 5146, 1258, 2593, 2150, 945, 946, 947, + 5149, 5341, 3520, 5342, 5600, 5745, 3282, 4035, 5346, 151, + 152, 2670, 4041, 4039, 2211, 2916, 3521, 4781, 948, 949, + 950, 951, 2223, 952, 1552, 154, 1893 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 610, 735, 655, 692, 1245, 803, 1191, 1241, 133, 2038, + 111, 1558, 2617, 2744, 109, 1200, 799, 1195, 2442, 809, + 2254, 666, 1870, 921, 2262, 2052, 666, 153, 1196, 2472, + 2837, 666, 704, 2655, 681, 1417, 2391, 3936, 712, 1150, + 1418, 2132, 106, 2030, 3212, 3225, 703, 1771, 3330, 2845, + 1192, 2039, 711, 3507, 3171, 4204, 715, 1197, 1270, 4024, + 1348, 4181, 1484, 893, 4660, 1205, 4060, 940, 674, 2159, + 2634, 783, 2062, 2063, 786, 4583, 4661, 1544, 736, 1549, + 1550, 1551, 3809, 940, 3810, 793, 2210, 1555, 2585, 4094, + 3222, 4083, 2020, 3968, 1159, 2316, 3532, 3533, 3406, 3798, + 1326, 3811, 1327, 3798, 3807, 1329, 1330, 3275, 3807, 892, + 2372, 1995, 1792, 1795, 1796, 4094, 4094, 1623, 777, 1964, + 3978, 1809, 1583, 943, 3235, 2543, 2544, 2471, 4307, 3299, + 2918, 4082, 2395, 4014, 2630, 4558, 810, 811, 3449, 943, + 892, 2128, 3450, 111, 812, 1201, 3379, 779, 5329, 2142, + 782, 610, 4153, 5082, 610, 813, 2729, 792, 798, 3380, + 819, 4652, 814, 4077, 5168, 3911, -554, -2810, 5457, 2550, + 3864, 2296, 5036, 1296, 5038, 106, 1303, 5048, 696, 4094, + 4094, 1405, 133, 5032, 111, -2519, 4120, 4121, 109, 2566, + -1074, 5066, 5033, -2520, 2472, 3298, 3298, 4193, 5034, 2427, + 2428, 2429, 2430, 2431, 2432, 2433, 2435, 2437, 2438, 2439, + 2440, 2441, 3446, 3303, 2579, 2580, 106, 1667, 4996, 1693, + 2905, 4124, 1257, 2905, -658, 3447, 4432, 4677, 2856, 2627, + -3376, 1405, 2195, 3381, -3377, -1897, 1708, 1710, 1711, -375, + 1558, 776, 4062, 4063, -659, 4109, 1837, 1508, 1753, 2816, + 4187, 4188, 4431, 4432, 4311, 763, 1872, 4009, 5532, 5533, + 2093, 2905, 1405, 2247, 2248, 2249, 1395, 2250, 1871, 2251, + 4140, 2252, 720, 2905, 695, 3348, 3453, 1697, 4881, 6018, + 714, 2195, 2058, 2753, 2773, 4099, 764, 2404, 2905, 5439, + 4044, -3453, 2471, 2927, 1828, 4329, 5823, 5343, 4634, 802, + 4711, 2415, 2417, 4392, 2420, 2421, -3436, 1973, 2905, -2657, + 4125, 4458, 3150, 1458, 1394, 1794, 2058, 2941, 4166, -2673, + 3967, 940, 2905, 940, 940, 940, 4309, -2674, 2828, -2675, + 669, 940, 2905, 6151, 940, 695, 2058, 4734, 4734, 1405, + 1405, 4734, 3862, 3298, 2905, 1405, 647, -2117, 4734, 698, + 1405, 2233, 2234, 2866, 4734, 2905, 4393, 1450, 1405, 1405, + 2244, 2247, 2248, 2249, 2458, 2250, 5571, 2251, -2180, 2252, + 2905, 4716, 1740, 3486, 2701, 1436, 686, 943, 1740, 943, + 943, 943, 3273, 4769, 4103, 2144, 3094, 943, -3376, 834, + 943, 2306, -3377, 2309, 4712, 5285, 651, 1903, 5157, 2857, + 3214, 1741, 1742, 4841, 4146, 5288, 4716, 1741, 1742, 2323, + 2324, 5155, 2327, 5280, 2156, 1527, 2597, 5290, 2333, 2334, + 2459, 2759, 2338, 835, 3375, 765, 1830, 2210, 5292, 2058, + 5644, 2873, 4210, 1718, 690, 1719, 1720, 1721, 695, 1722, + 4154, 1723, 5994, 5310, 5731, 1833, 1740, 5090, 1537, 4105, + 1724, 2005, 175, 176, 1177, -2810, 2730, 4566, 662, 6129, + 1764, 1901, 33, 1561, 10, 1743, 5847, 1527, 658, 1377, + -2513, 1743, 1740, 5887, 1377, 808, 1377, 2195, 3382, 2195, + 841, -1857, 843, 844, 845, 846, 2856, 848, 849, 33, + 3439, 851, 852, 4433, 690, 763, 687, 752, 1363, 3204, + 5415, 1741, 1742, 1532, 6152, -2117, 2982, -2117, 5426, -3440, + 17, 690, 4040, 4567, 2006, 40, 4315, 1177, 6153, 1405, + 690, 1149, 4711, 5855, 42, 2007, 764, 4981, 5712, 6218, + 2664, -3376, 4320, 2008, 2086, -3377, 1719, 1720, 1721, 1743, + 1722, 717, 40, 667, 1958, 3967, 1744, 3110, 5126, 4759, + 5168, 42, 1744, 1725, 5848, -3439, 6156, -3437, 1759, 2009, + 2059, 622, 5737, 940, 2749, 1743, 890, -1897, 4842, 1340, + 5053, 1825, 3965, 1408, -3438, 1306, 1307, 5986, 806, 1718, + 4392, 1719, 1720, 1721, 5126, 1722, 1768, 1723, 4568, 175, + 176, 2656, 6194, 2901, 2059, 684, 1724, 890, 30, -1897, + -3443, 2405, 1726, 648, 5126, 4760, 5986, 6219, 5126, 5126, + 2087, 33, 2760, 2010, 2059, 6202, 4712, 1264, 4760, 943, + 1744, 798, 1718, 1444, 1719, 1720, 1721, 697, 1722, 5427, + 1723, 1280, 798, 4393, -1857, 6208, 6209, 856, 792, 1724, + 5762, 2011, 3068, 2902, 699, 691, 1744, 5973, 1528, -1897, + 1348, 5994, 4459, 5052, 1725, 38, 1538, 2857, 817, 3223, + 33, 5888, 1147, 941, 40, 765, 5849, 1902, 4652, 792, + 4147, 691, 4349, 42, 3224, 1402, 2406, 2484, -1897, 941, + 3269, 4441, 4442, 1261, 2079, 1198, 5523, 1980, 1765, 792, + 1983, 1866, 3205, 2136, 1986, 1987, 1988, 2460, 3949, 1725, + 1528, 2005, 1278, 792, 1148, 1488, 1489, 2059, 1529, 4646, + 1364, 1727, 2497, 40, 1867, 1826, 6130, 3069, 2260, 1959, + -1897, 942, 2541, 2062, 2063, 1533, 1904, 2508, 5932, 3534, + 1445, 4043, 1708, 1710, 1623, 1325, 2755, 942, 4755, 1831, + 1218, 4756, 1725, 1199, 4104, 3449, 2926, 5540, 1726, 3450, + 1900, 777, 3379, 3118, 3119, 826, 5352, 2210, 1477, 1478, + 1479, 6002, 4155, -2180, 2006, 3380, 2407, 2687, 1399, -2685, + 4615, 2079, 1483, -3562, 4720, 2007, 4722, 1392, 2702, 4728, + 792, 2834, 1423, 2008, 1974, 4742, 5468, 4105, 4563, 3095, + 4724, 1726, 651, -1857, 5466, 2942, 4302, 1906, 3298, 5054, + 4982, 2142, 792, 1218, 1177, 4757, 4726, 3070, 1437, 2009, + 5933, 1834, 1449, 4049, 5860, 4422, 652, 4053, 2774, 3446, + 4414, 4940, 3075, 2774, 777, 1276, 1423, 6154, 4776, 4777, + 4778, 4734, 3447, 2875, 1472, 1434, 1474, 3309, 610, 610, + 610, 1480, 1423, 1283, 792, 3396, 4976, 2853, -2180, 4302, + 4133, 826, 3151, 2841, 826, 837, 2547, 1727, 2549, 4123, + 4734, 2553, 5073, 2010, 4734, 4126, 940, 3152, -3453, 1906, + 4734, 4096, 6014, 2561, 1362, 692, 2564, 175, 176, -1897, + 2567, 2473, 688, -3436, 1482, 3966, 721, 1486, 4394, 2578, + 5017, 2011, 5055, 2461, 1509, 1406, 1587, 2774, 2112, 3895, + 1727, 2055, 777, 3383, 1548, 2112, 2444, 2582, 2583, 2584, + 1323, 1829, 1553, 1263, 3199, 1556, 5343, 941, 4109, 941, + 941, 941, 943, 1868, 5934, 829, 2819, 941, 1563, 3469, + 941, 133, 659, 111, 4094, 2196, 2112, 109, -554, -2810, + 4311, 2105, -2519, 854, 1394, 1406, 4692, 5933, 892, 2241, + -2520, 5452, 4678, 3062, 3063, 649, 2906, 953, 1668, 2906, + 1694, 4940, -1074, 2753, 6061, 106, 6063, 6064, 4604, 5048, + 4717, 2146, 4309, 4224, 4309, 942, 1406, 942, 942, 942, + 5032, 1251, 3378, 4309, 2196, 942, 68, 4428, 942, 5033, + 3076, 3077, 4660, 3080, 3081, 5034, -658, 2906, 5604, 4309, + 5605, 4064, -3376, 4309, 4661, 4691, -3377, -1897, -114, 2906, + -114, -375, 2253, 68, 5440, 2340, -659, 4619, 1698, 5126, + -118, 735, -118, -2657, 2906, 1540, 4309, 4309, 4309, 1417, + 6078, 1694, 2364, -2673, 2485, -110, 4122, -110, 2828, 2419, + 1740, -2674, 3967, -2675, 2906, 4569, 2473, -2657, 3445, 6116, + 6117, 3461, 4793, 1406, 1406, 2224, 5168, -2673, 2906, 1406, + 6123, 5934, 3301, 3302, 1406, -2674, 4728, -2675, 2906, 1741, + 1742, 2972, 1406, 1406, 2975, 3863, 2906, 1808, 2507, 5327, + 2906, 1743, 2204, 5743, 4729, 1716, -3440, 2880, 3174, 4652, + 1218, 2906, 2990, 2212, 6025, 6026, 1715, 3939, 1713, 1784, + 1417, 3270, 4189, 3004, 5668, 2565, 2906, 1793, 651, 1797, + 6161, 1377, 3997, 3998, 1807, 4716, 6150, 1745, 1746, 1747, + 1748, 1749, 1750, 1751, 1752, 1747, 1748, 1749, 1750, 1751, + 1752, 5603, -3439, 1743, -3437, 68, 1718, 33, 1719, 1720, + 1721, 1191, 1722, 792, 1840, 3250, 4997, 6068, 3292, 5935, + 1200, -3438, 1195, 1724, 5355, 718, 1728, 1729, 1730, 941, + -3468, 1994, 1744, 1196, 1344, 4394, 2903, 624, 5948, 4730, + 5936, 792, -1897, 2530, 4340, 3951, 5653, -3443, 3066, 792, + 2196, 792, 2196, 1848, 68, 1192, 792, 2545, 1348, 4883, + 40, 1558, 1197, 1747, 1748, 1749, 1750, 1751, 1752, 42, + 1205, 2721, 1875, 719, 1267, 2408, 2498, 3386, 1335, 5797, + 902, 6109, 652, 4142, 1744, -2688, 792, 942, 1746, 1747, + 1748, 1749, 1750, 1751, 1752, 651, 3864, 3864, 4753, 834, + 3864, 3864, 2079, 1406, 651, 5933, 3864, 3864, -2117, -2117, + 1941, 1427, 2551, -2180, 668, 809, 3071, 1718, 3462, 1719, + 1720, 1721, 892, 1722, 1891, 777, 1725, 1728, 1729, 1730, + 777, 777, 5023, 835, 1724, 1428, 170, 4178, 4617, 5326, + 2605, 5156, 5126, 5056, 5126, 5485, 3103, 1942, 4665, 735, + 1201, 1835, 2237, 2754, 737, 1398, 1952, 2084, -3468, 2026, + 4395, 5177, 5227, 5631, 6016, 5179, 5180, 6020, 2648, 4998, + 777, 1965, 1728, 1729, 1730, 1429, 1348, 5936, 3921, 756, + 3251, 6120, 2479, 5024, 5115, 4724, 705, 1348, 1348, 4350, + 3991, 1978, 4991, 2062, 2063, 1177, 2106, 4086, 2833, 1177, + 2139, 4726, 3989, 757, 738, 3387, 5116, 5355, 1297, -2309, + 3363, 777, 2002, 2666, 2667, 1728, 1729, 1730, 1517, 5934, + 2675, 2676, 2677, 2649, 1715, 3196, 1713, 2088, 3325, 3326, + 5200, 2025, 810, 811, 2729, 1981, 1982, 1725, 2472, 826, + 812, 826, 3385, 3107, 3108, 4666, 2045, 2624, 1892, 4940, + 757, 813, 4919, 1899, 2745, -2309, 1430, 4589, 814, 5760, + 2062, 2063, 4902, 4020, 2731, 2679, 2053, 2054, 2039, 4592, + 2039, 2039, 3149, 4087, 2643, 890, 2722, 1392, 133, 2357, + 111, 2358, 903, 3475, 109, 3250, 2755, 2970, 3463, 170, + 777, 1431, 5011, 1298, 1740, 5014, -3265, 3145, 3827, 792, + 2640, 1939, 3252, 4179, 1876, 2606, 1291, 610, 777, 2200, + 1966, 777, 106, 2918, 3290, 3170, 1510, 892, 1381, 3175, + 3291, 2511, 777, 1741, 1742, -3275, 4730, 5654, 4999, 777, + 4754, 2124, 941, 4810, 1362, -2311, 2471, 625, 3386, 5798, + 4680, 2134, 6141, -2309, 4925, 2238, 4143, 792, 2112, 4452, + 5486, 792, 777, 853, 4573, 4574, -2309, -3468, 5447, 3235, + 2262, 2834, 2746, 4461, 3449, 2227, 1849, 4464, 3450, 3379, + 2546, 3452, 6121, -1311, 3992, 2140, 5593, 1518, 5015, 4021, + 792, -2311, 3380, -2680, 940, 3903, 792, 1743, 2861, 4836, + 942, 3798, 3915, 5122, 3999, 1727, 3807, 690, 652, 1877, + -2309, 5761, 1836, 4203, 3389, 4180, 2898, 3973, 2892, -2309, + 2206, 2057, 1734, 2072, 5775, 1878, 1475, 735, -2309, 2893, + 2106, 3298, 3298, 2876, 3910, 2552, 2107, 836, 4309, 2753, + 4606, 2089, 940, 4577, 4578, 6004, 777, 792, 3446, 4000, + 943, 1940, 4940, 3186, 172, 3952, 1930, 3187, 2894, 3189, + 3251, 3447, 2118, 1336, 2118, 3104, 2900, 1946, 3378, 921, + 1150, 4728, 1412, 3194, 2093, 5936, 3387, 940, 1744, -2311, + 1786, 5228, 3953, 2112, 5655, 4724, 3201, 3202, 2493, 4729, + 2895, 1218, -2311, 2201, 3487, 1218, 111, 3967, 943, 4725, + 740, 4726, 1715, 4811, 1713, -770, 5696, 2715, -771, 784, + 4001, 2859, 2860, 940, 940, 1735, 5799, 2786, 3896, 3897, + 4716, 3889, 2108, 3892, 2109, 652, 2494, 1519, 690, 4734, + 2828, 1736, 5270, 943, 652, 3445, -2311, 1881, 4703, 4704, + 4195, 68, 626, 1734, 1511, -2311, 2899, 3388, 4731, 4739, + 4631, 777, 4741, 4002, -2311, 1565, 777, 2443, 691, 4745, + 2759, 171, 5117, 1337, 2409, 827, 777, -3265, 4022, 943, + 943, 5624, 5659, 5626, 1944, 837, 5629, 2392, 785, 1854, + 3088, 2200, 3252, 5634, 5635, 5271, 5490, 3165, 3089, 890, + 1882, 3486, 2512, 5641, 2359, 5025, -3275, 2360, 1737, 4940, + 2749, 4094, 3364, 1566, 2588, 111, 802, 172, 3079, 2401, + 2532, 2533, 2110, 2535, 2537, 2538, 2539, 1749, 1750, 1751, + 1752, 6167, 2200, 1787, 2910, 2548, 4724, 1512, 1338, 792, + 5544, 2448, 2917, 6056, 3468, 4045, 1735, 3064, 4197, 1413, + 1177, 1257, 4726, 2563, 6136, 5744, 2556, 777, 5794, 690, + 1825, 5796, 1736, 792, 792, 1596, 1597, 1598, 1414, 5800, + 2107, 792, 2499, 1567, 5464, 1745, 1746, 1747, 1748, 1749, + 1750, 1751, 1752, 787, 2365, 3389, 6214, 4016, 5272, 2370, + 2495, 2716, 4607, 2517, 2139, 1432, 1341, 2111, 2557, 2380, + 610, 610, 777, 610, 610, 610, 610, 777, 792, 777, + 1198, 2003, 6149, 2749, 1649, 610, 5697, 5698, 2671, 2674, + 4636, 3365, 4003, 4004, 4005, 3140, 6168, 3135, 3366, 1737, + 4439, 3088, 2562, 610, 3367, 792, 4967, 709, 3136, 4886, + 4727, 4252, 2728, 5295, 2629, 6183, 4186, 3390, 1568, 1728, + 1729, 1730, 5347, 5308, 5309, 763, 2108, 777, 2109, 5273, + 6076, 2760, 3972, -1371, 4620, 2201, 5127, 3137, 1199, 777, + 6057, 4728, 3166, 4135, 4136, 3142, -994, 4137, 4138, 4139, + 2478, 6169, 5264, 6045, 1339, 2659, 764, 6047, 2465, 4729, + 5396, 1385, 788, 3115, 890, 1218, 2665, 5825, 5348, 3138, + 5689, 2202, -1371, 5692, 1826, 6006, 2201, -1371, 3368, 4008, + 691, 5699, 1239, -1311, 710, 4732, 792, 4616, 2906, 4940, + 4716, 2062, 2063, 5765, -216, 2534, 2854, 2125, 6215, 2160, + 2540, 777, 2542, 2558, 2707, 158, 2645, 5846, -1371, 892, + 2161, 1558, 2112, 2453, 5773, 5172, 2110, 6058, 6107, 5665, + 1386, 5667, 3209, 2754, 4968, 3141, 1558, 792, 5264, 6106, + 1728, 1729, 1730, 5590, 2661, 2112, 792, 792, 792, 2140, + 3369, 4730, 777, 1348, 5041, 2454, 2568, 4889, 1286, 1348, + 2577, 2743, 4892, 4893, 4621, 5601, 5700, 777, 2759, 1855, + 5981, 5911, 2587, 2039, 1348, 3523, 940, 2162, 777, 777, + -2309, 5725, 2755, 807, 5720, 2144, 792, 5483, 5847, 5726, + 5727, 5384, 4728, 5837, 2079, 5825, 4196, 4215, 4216, 1475, + 3283, 2111, 6184, 3284, 5042, 765, 3310, 3289, 2833, 690, + 4729, 5303, 1856, 3942, 1857, 4830, 1218, 817, 3451, 5391, + 3876, 3223, 2230, 5349, 4602, 826, 5505, 6147, 2455, 2230, + 5886, 3940, 943, 792, 3877, 4048, 3224, 818, 2423, 4052, + 723, 5047, 5892, 1287, 5895, 5282, 5057, 3944, 3231, 777, + 3967, 5420, 826, 4477, 5265, 777, 5304, 5282, 3947, 3948, + 3967, 3967, 3531, 3531, 3531, 1844, 4199, 5845, 175, 176, + 4757, 695, 4066, 2834, -3524, 2669, 5848, 777, 3452, 4476, + 941, 2243, 5491, 4776, 830, 2079, 1845, 5912, 2305, 690, + 1362, 2230, 5184, 3249, 1472, 3223, 2849, -769, 1288, 6185, + 2851, 1362, 1362, 2006, 4202, 690, -2311, 1858, 2039, 2456, + 3224, 2749, 777, 777, 2007, 3073, 2230, 724, 5628, 1740, + 1734, 1348, 2698, 5313, 5305, 4067, 1738, 4302, 941, 2871, + 2871, 2424, 5124, 5003, 5004, -2676, 1371, 2230, 942, 1745, + 1746, 1747, 1748, 1749, 1750, 1751, 1752, 2425, 1741, 1742, + 2308, 5951, 5955, 792, 5223, 1859, 2733, 777, 2163, 2760, + 691, 5150, 5835, 941, -2281, 5153, 5748, 777, 940, 3239, + 3240, 5158, 2776, 2913, 5219, 2326, 2896, 2758, 2779, 2067, + 1373, 3294, 5128, 2921, 856, 3295, 942, 5749, 5849, 1462, + 2473, 5767, 694, 2734, 690, 2139, 2337, 5220, 4726, 941, + 941, 4718, 2699, 1860, 3893, 1481, -994, 3912, 4723, 1734, + 5638, 4740, 1743, 1735, 2426, 2906, 2908, 5005, 4744, 695, + 2749, 942, 3913, 3516, 943, 3510, -2357, 2962, -2357, 1736, + 2011, 2735, 2759, 5750, 2897, 4669, 3511, 3140, 5199, 3135, + 691, 4730, 4670, 3465, 940, 111, 3241, 1738, 831, 2953, + 3136, 3799, 2870, 2870, 5029, 3799, 691, 942, 942, 940, + 1496, 3090, 3800, 847, 4309, 3512, 3800, 5846, 4309, 1558, + 4302, 5951, 3812, 3518, 3523, 5955, 1583, 4306, -2682, 3137, + 2885, 4309, 1814, 3817, 3818, -2684, 1371, 3142, 3064, 892, + 1540, 3801, 1861, 1744, 5006, 3801, 1737, 3513, 940, 3808, + 943, 6042, 1735, 3808, 2139, 3378, 940, 940, 940, 3967, + 4291, 3138, 4304, 1239, 1862, 943, 905, 1497, 1736, -2281, + 1498, 735, 4292, 3802, 4305, 1372, 1146, 3802, 5711, 4852, + 1373, 5710, 2962, 4854, 777, 1153, 6113, 1417, 5847, 777, + 1250, 3852, 3931, 5211, 2733, 691, 2736, 1127, 1499, 5278, + 5278, 1129, 3967, 3517, 943, 3051, 1500, 4306, 2737, 2076, + 2077, 1374, 943, 943, 943, -2690, 3861, 3141, 5374, 5625, + 2140, 175, 176, 4481, 3445, 2749, 890, 6165, 6165, 3804, + 5375, 2734, 4730, 3804, 5636, 1737, 672, 4302, 5164, 5165, + 5568, 678, 833, 2443, 2117, -2693, 1715, 5645, 1713, 5647, + 5244, 5245, 1815, 850, 5314, 4755, 5315, 1144, 4756, 5366, + 4302, 5367, 6191, 1816, 661, 6157, 3181, 1252, -2696, 2735, + 4302, 3182, 1239, 2760, 725, 726, 5848, 1254, -2697, 4302, + 3185, 4405, 4013, 4408, 2796, 2797, 3188, -2698, 2044, 792, + 792, 2046, 2046, 5316, 1262, 5951, 5955, 4302, 792, 2809, + 4786, 6189, 2871, 2871, 4787, -2700, 4788, 3031, 4789, 2139, + 727, 2738, 3036, 1267, 5321, 792, 5044, 1272, 792, 5323, + 1817, 3160, 3161, 5317, 5041, 6198, 1191, 1191, 1818, 2140, + 1281, 5793, 5840, 1275, 5842, 1200, 1200, 1195, 1195, 1284, + 1323, 3215, 6207, 3334, 3335, 3180, 610, 4302, 1196, 1196, + 2688, 610, 728, 2383, 2384, -2701, 2689, 1295, 2690, 4306, + 610, 3330, 3346, 1302, 1819, 3347, 610, -364, 1388, 1389, + 1192, 1192, 3372, 3373, 5042, 1293, 1304, 1197, 1197, 2754, + 2739, 1318, 756, 3139, 2736, 1205, 1205, 2684, 5849, 2685, + 2874, 3223, 2875, 777, 2811, 2812, 2737, 2968, 4316, 2303, + 4317, 1957, 4319, 4903, 1324, 3281, 3224, 1962, 1963, 1891, + 1322, 3286, 3288, 792, 3218, 777, 3007, 1328, 1906, 741, + 1331, 3193, 941, 5045, 1348, 2870, 2870, 1239, 1348, 1333, + 2691, 6071, 6072, 1334, 3434, 3435, 3436, 3437, 5088, 1630, + 1402, 1368, 940, 777, 3523, 1410, 5961, 940, 1424, 3132, + 3245, 2026, 1443, 1435, 777, 5318, 3012, 1647, 3013, 742, + 5043, 1650, 1651, 5103, 1441, 1201, 1201, -769, 1453, 3526, + 2833, 3527, 1442, 743, 1820, 3451, -771, 3272, 5943, 5027, + 942, 3277, 3278, 777, 2140, 610, 802, 4094, 4094, 5319, + 777, 3287, 610, 4056, 777, 4057, 3183, 1447, 943, 2738, + 777, 1821, 1456, 943, 3491, 3492, 3256, 3190, 3493, 4118, + 3494, 4119, 3495, 1463, 1464, 777, 3200, 1475, 1239, 3308, + 3374, 1491, 5120, 2025, 3313, 4358, 729, 3013, 4361, -771, + 1906, 4367, 742, 4368, 5278, 5111, 1493, 5114, 3220, 1501, + 4094, 6033, 5133, 730, 6036, 2005, 3223, 5123, 5809, 2079, + 2079, 5138, 4217, 4218, 4219, 1504, 1718, 5140, 1719, 1720, + 1721, 3224, 1722, 4373, 1723, 1906, 5136, 5154, 2739, 731, + 4374, 4470, 4375, 1724, 5160, 5161, 826, 4377, 5141, 4378, + 1348, 3321, 1495, 1161, 1738, 4877, 4705, 744, 4707, 792, + 3248, 1503, -3423, 5159, 1505, 777, 890, 3467, 5519, 5520, + 4672, 4857, 4673, 1906, 4094, 1506, 3279, -2079, 2006, 732, + 4507, -3425, -3422, 3285, 941, 5028, 5093, 1362, 5094, 2007, + 745, 1507, -771, 1362, 5029, 5678, 5095, 2008, 5096, 1718, + 4849, 1719, 1720, 1721, 5097, 1722, 5098, 1723, 1362, 2845, + -3424, 4429, 1162, 1513, 5850, 5240, 1724, 1514, 5175, 3056, + 5178, 2796, 2797, 2009, 3455, 1308, 3457, 1515, 1309, 1310, + 744, 157, 777, 1311, 3799, 777, 2809, 4871, 792, 792, + 792, 1516, 942, 1738, 1520, 3800, 1725, 3452, 1521, 1522, + 792, 3333, 1524, 5047, 1793, 5192, 1793, 1906, 4694, 3340, + 941, 1316, 1317, -771, 1320, 1822, 1321, 1525, 3344, 3345, + 1523, 1526, 4797, 4798, 3801, 941, 4462, 2010, 4463, 5209, + 1536, 5210, 3808, 1564, 1745, 1746, 1747, 1748, 1749, 1750, + 1751, 1752, 961, 962, 4475, 1726, 965, 5217, 967, 1906, + 969, 5230, 4818, 5231, 763, 2011, 3802, 1308, 158, 1570, + 1309, 1310, -1371, 3514, 941, 1578, -3654, 1642, 942, 1725, + 1569, 1680, 941, 941, 941, 4845, 792, 5252, 792, 5253, + 4786, 2811, 2812, 942, 4787, 764, 4791, 940, 4789, 3803, + 4465, 4466, 1823, 3803, 4467, 5268, 4468, 5269, 4469, 5029, + 1824, -1371, 5365, 5810, 4057, 1362, -1371, 5458, 3464, 5459, + 5811, 5706, 3804, 5460, 1163, 5459, 1164, 4866, 1726, 1584, + 1585, 3515, 942, 1685, 5462, 5812, 5463, 1165, 1586, 1591, + 942, 942, 942, 1754, 5526, 3139, 4479, -1371, 2943, 5656, + 4472, 5657, 5675, 943, 5598, 1166, 5708, 5714, 5709, 5709, + -2281, 735, 1755, 5715, 1727, 5709, 5044, 1592, 1593, 4714, + 4715, 1594, 959, 960, 961, 962, 963, 964, 965, 966, + 967, 968, 969, 5746, 5436, 4057, 1718, 1595, 1719, 1720, + 1721, 4746, 1722, 5445, 1723, 1599, 3979, 4749, 3874, 5747, + 5904, 4057, 5905, 1724, -1711, 5913, 4758, 5914, 4762, 4763, + 4764, 3132, 4766, 4767, 4135, 4136, 1601, 1602, 4137, 4138, + 4139, 4770, 4771, 4772, 4773, 4774, 5947, 1603, 4119, 3899, + -1710, 6054, 111, 6055, 765, 1758, 1715, 1727, 1713, 6085, + 1604, 4911, 1718, 5089, 1719, 1720, 1721, 6086, 1722, 5231, + 1723, 628, 1605, 3884, 777, 6093, 1606, 6094, 777, 1724, + 1607, 792, 792, 5813, 1756, 6102, 1718, 6103, 1719, 1720, + 1721, 992, 1722, 5045, 1723, 6122, 5814, 5709, 6124, 6125, + 5709, 5709, 1718, 1724, 1719, 1720, 1721, 1608, 1722, 792, + 1723, 1609, 4097, 4098, 5815, 4100, 4102, 4898, 746, 1724, + 6148, 6158, 5709, 5709, 1757, 629, 1725, 1610, 6244, 6173, + 1611, 5231, -2079, 6231, 1311, 6232, -163, 3958, 1612, 3960, + 4078, 5030, 133, 1613, 111, 1616, 1762, 1617, 109, 1618, + 1625, 1626, 1417, 1417, 1167, 1198, 1198, 2485, 2485, 1627, + 1628, 153, 1631, 1632, 1633, 1634, 1012, 1635, 2392, 4037, + 1636, -2536, 155, 1637, 1638, 1726, 106, 1760, 1639, 1640, + 2988, 638, 1725, 1641, 5239, 175, 176, 1643, 941, 1644, + 2247, 2248, 4088, 941, 4089, 1645, 4090, 2478, 4091, 1646, + 1648, 3928, 630, 1793, 4191, 1652, 1725, 1653, 1654, 747, + 1655, 2005, 1656, 1199, 1199, 4596, 4597, 1657, 4404, 4598, + 4599, 1658, 1725, 4896, 1659, 4600, 4601, 2443, 1793, 1660, + 1661, 1726, 4196, 1718, 1662, 1719, 1720, 1721, 1239, 1722, + 1766, 1723, 1663, 1664, 3057, 1665, 942, 1417, 5031, 610, + 1724, 942, 4513, 5816, 777, 1726, 1029, 1666, 1669, 1670, + 1671, 1672, 1673, 1674, 4232, 777, 1675, 631, 1767, 777, + 1676, 1726, 1677, 1678, 2006, 792, 1777, 4127, 1679, 4018, + 1778, 1779, 1681, 2448, 1727, 2007, 1682, 1683, 2005, 4819, + 2247, 2248, 2249, 2008, 2250, 1780, 2251, 1684, 2252, 792, + 792, 1686, 4820, 156, 1687, 2247, 2248, 4088, 1688, 4089, + 1689, 4090, 1718, 4091, 1719, 1720, 1721, 4821, 1722, 2009, + 1723, 1690, 1691, 1692, 1348, 1348, 1785, 1695, 4575, 1724, + 1696, 1699, 1700, 1701, 1702, 1703, 1704, 5135, 1705, 1706, + 1727, 1812, 1761, 1811, 5135, 4822, -3557, 4887, 4888, 792, + 1813, 2006, 1832, 1725, 1372, 5407, 1850, 1168, 1169, 1170, + 1171, 2821, 2007, 1851, 1727, 4150, 5663, 1852, 1853, 1873, + 2008, 1874, 5498, 2010, 3451, 1879, 1883, 4042, 1886, 1887, + 1727, 1718, 4115, 1719, 1720, 1721, 1894, 1722, 1362, 1723, + 1906, 1938, 1362, 1948, 5185, 1950, 2009, 1954, 1724, 1960, + 1961, 2011, 1726, 1967, 1968, 4579, 1970, 1972, 1976, 1992, + 1991, 5189, 1993, 632, 157, 2003, 2014, 2015, 2018, 2028, + 4823, 777, 2041, 2042, 2031, 4160, 2065, 4162, 4163, 1728, + 1729, 1730, 1725, 4168, 2068, 2070, 2073, 3531, 2074, 2078, + 633, 4176, 2090, 2054, 792, 792, 4183, 2098, 2944, 777, + 2010, 2103, 2119, 2039, 5504, 4978, 2125, 5506, 2131, 2129, + 2133, 2135, 2143, 2149, 2749, 2151, 4111, 4112, 4113, 4114, + 2153, 4116, 4117, 2155, 2154, 2157, 2158, 2185, 2011, 2193, + 2205, 1726, 3803, 2207, 4824, 634, 2208, 2209, -1897, 2213, + 2214, 158, 1718, 2216, 1719, 1720, 1721, 2218, 1722, -1897, + 1723, 1725, 1728, 1729, 1730, 2217, 2229, 2228, 2230, 1724, + 2239, 1727, 2246, 941, -3557, 2257, 2261, 4164, 4165, 2289, + 4167, 3058, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 5446, + 4177, 2302, 2303, 4182, 2195, 2304, 2315, 4185, 4877, 2322, + 940, 159, 2822, 2317, 1362, 2321, 5790, 5388, 2139, 5390, + 1726, 2369, 5393, 2374, 2378, 5397, 2388, 2876, 5400, 5401, + 2399, 2418, -1897, 2422, 2403, 2449, 5409, 2450, 5410, 2474, + 2475, 942, 4223, -3007, 2480, 2482, 2483, 5416, -72, 2500, + 2509, 2489, 2506, 2528, 2529, 5202, 160, 2554, 2569, 5204, + 1727, 2571, 5704, 4825, 2570, 4826, 943, 2572, 2823, -1897, + 2574, 940, 2576, 2575, -2129, 2591, 5429, -1897, 2595, 2594, + 2598, 2599, 1725, 2600, 5113, -1897, -1897, 2601, 2608, 5822, + 635, 2618, -1897, 2609, 2619, -1897, 2620, 2621, 2622, 2623, + -1897, 1718, -1897, 1719, 1720, 1721, -1897, 1722, 636, 1723, + 2625, 2633, 2626, 2632, -1897, 2636, -1897, 2641, 1724, 2637, + 2646, -1897, 2653, 2657, 2678, 2694, 2680, 943, 2695, 1727, + 1417, 1726, 2681, 4809, 2682, 2485, 1239, 2683, 2686, 2696, + -1897, 2704, 2708, 3799, 2711, 5499, 2712, 2719, 5500, -1897, + 637, 940, -1897, 638, 3800, 2709, 2720, 2723, 2724, 2732, + -2547, 2757, 2772, 2781, 2783, 2780, 2785, 2788, 2784, 2818, + -1897, 2835, 2838, 2839, 2843, 1374, 2824, 2847, 2850, 2853, + 2855, 639, 2862, 3801, 2865, 2868, 3090, 2886, 2911, 640, + -1897, 3808, 2912, 2140, -1897, 2914, 2929, 2932, 5687, 1728, + 1729, 1730, 2934, -1897, 4858, 161, 2937, 943, 2935, 162, + 2759, 2946, 2948, 4827, 4828, 3802, 2963, 5824, 2964, 2947, + 2951, 1725, -1897, 5830, 5831, 2952, 1718, 2954, 1719, 1720, + 1721, 2962, 1722, 2969, 1723, 2973, 2976, 2986, 2987, -1897, + 1727, 2991, 3023, 1724, 2999, -1897, -1897, 3000, 3001, 3005, + 2821, 163, 3016, 3026, 3027, 1728, 1729, 1730, 3032, -1897, + 1718, -1897, 1719, 1720, 1721, 3034, 1722, 3053, 1723, 3041, + 1726, 3804, 2965, 3045, 2966, 5642, -1506, 1724, 3046, 1728, + 1729, 1730, 164, 5845, 175, 176, 3048, 3052, 3060, 3065, + -3557, 5239, 3072, 2821, 690, 1728, 1729, 1730, 2989, 3078, + 3085, 1752, 3087, 3094, -1676, 690, 3101, 3106, 4386, 1667, + 1693, 1697, 3043, 3109, 3044, 3111, 3441, 3114, -671, 1718, + 3117, 1719, 1720, 1721, 3116, 1722, 3124, 1723, 3120, 4520, + 175, 176, 3144, 3164, 3167, 3125, 1724, 3126, 5861, 3168, + -2281, 3169, 3172, 4419, 3176, 3177, 1725, 3191, 3195, 3179, + 3206, 3213, 1718, 2749, 1719, 1720, 1721, 792, 1722, 777, + 1723, 3203, 3349, 3229, 5862, 3207, 3259, 792, 792, 1724, + 4446, 4829, 3228, 4449, 4450, 5630, 111, 3257, 3260, 1727, + 1725, 1718, 3261, 1719, 1720, 1721, 3264, 1722, 3265, 1723, + 3293, 4561, 3531, 3300, 3304, 1726, 2749, 3318, 1724, 3324, + 3331, 2760, 3336, 3328, -1897, 3337, 3338, 3910, 3341, 3339, + 2058, 5407, 3342, 3343, 3394, 3397, 3404, 3400, 3408, 3440, + 3409, 3410, -994, 4487, 3411, 3412, 1728, 1729, 1730, 1726, + 3413, 2822, 3432, 5609, 5610, 111, 5612, 2139, 3414, 1725, + 3415, 3416, 3433, 3054, 3456, 3055, 3417, 3418, 3419, 3420, + 3421, 3422, 3423, 4521, 3424, 6043, 691, 3425, 3426, 3427, + 777, 5863, 792, 5864, 3428, 777, 777, 3429, 3430, 3431, + 3458, 610, 1725, 3459, 2822, 3474, 3479, 3462, 3476, 2005, + 2139, 2112, 4430, 5846, 3480, 777, 777, 3477, 1726, 3478, + 3489, 4700, 4584, 3484, 3490, 3496, 3488, 5687, 3813, 5113, + 3524, 1725, 3814, 3815, 1727, 1728, 1729, 1730, 4445, 3089, + 3828, 1718, 3829, 1719, 1720, 1721, 3838, 1722, 3848, 1723, + 4523, 1726, 3890, 5666, 3891, -1719, 3886, 3885, 1724, 3887, + 2823, 3900, 3872, 3873, 3901, 3350, 3906, 3907, 1727, 3916, + 3908, 3095, 2006, 3918, 3516, 4663, 3510, 3925, 3922, 3924, + 1726, 3932, 3929, 2007, 5847, 1239, 3933, 3511, 5788, 3937, + 3938, 2008, 5679, 5680, 1718, 5978, 1719, 1720, 1721, 3945, + 1722, 3946, 1723, 2512, 1728, 1729, 1730, 4524, 4525, 4526, + 3351, 1724, 2511, 4511, 2906, 3984, 3512, 2009, 4516, 4517, + 3970, 4335, 2875, 4336, 3518, 3985, 3305, 1727, 1239, 4527, + 3990, 3995, 3988, 5865, 2039, 2039, 941, 5518, 1362, 1362, + 4025, 6236, 2140, 3996, 4019, 4029, 4027, 4030, 3513, 4031, + 4612, 4613, 4614, 4046, 4047, 4690, 4050, 4051, -2030, 4693, + 1727, 1725, 4695, 4076, 4084, 4085, 940, 4130, 2824, 4131, + 4132, 2010, 5848, 4683, 4686, 4152, 4689, 5993, 4148, 4528, + 4157, 4529, 4158, 4159, 4701, 2140, 111, 4161, 4190, 1727, + 109, 3352, 4194, 4205, 942, 4200, 5915, 941, 2848, 2011, + 4530, 111, 4207, 4212, 3517, 5753, 4213, 5754, 5755, 4225, + 1726, 4293, 6175, 4290, 1725, 1728, 1729, 1730, 4531, 4294, + 4313, 3438, 943, 3306, -1897, 4532, 4302, 4306, 4299, 4310, + 4314, 4318, 4351, 4321, 4352, 4322, 4376, 2196, 4387, 4323, + 4533, 4324, 4389, 4411, 4399, 4423, 4403, 4400, 4413, 4420, + 4534, 4424, 3353, 4426, -1897, 942, -1897, 4427, 4782, -1897, + -1897, 4440, 4454, 1726, 4785, 4535, 5277, 4455, 4460, 3354, + 3355, 4480, 4478, 4473, 3356, 3357, 3358, 941, 6003, 4508, + 4482, 4488, 4479, 4490, 5849, 4509, 4946, 4947, 4948, 4949, + 4950, 4951, 4952, 4953, 4954, 4955, 4510, 4957, 4958, 4959, + 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4512, 4515, 4970, + 4971, 4559, 4749, -1810, 6090, 4564, 6243, 6027, -1815, 1727, + 4582, 4758, 4536, 4762, 4763, 4764, 4766, 4767, 4590, 4587, + 4591, 4594, 4537, 4605, 4595, 942, 4623, 4610, 4668, 4676, + 5392, 3803, 3359, 4696, 4697, 4702, 4710, 4721, 4716, 4743, + 4750, 4765, 4848, 4779, 1728, 1729, 1730, 5383, 4780, 4792, + -771, 4796, 4799, 5027, 4800, 4802, 4812, 4813, 4538, 4850, + 4394, 4363, 1727, 4364, 3057, 4859, 4064, 4861, 4862, 4446, + 1718, 4539, 1719, 1720, 1721, 4864, 1722, 2458, 1723, 4865, + 4868, 3360, 4419, 4843, 5049, 4890, 4878, 1724, 42, 5059, + 4891, 4922, 4915, 4916, 4078, 792, 5595, 4911, 4885, 4904, + 4879, 4910, 4917, -771, 4942, 4856, 742, 111, 4944, 4943, + 4634, 4540, 2759, 4956, 4984, 4985, -247, 4541, 4988, 4989, + 3223, 5009, 4990, 2445, 5020, 4993, 4995, 5021, 2392, 5022, + 5029, 6090, 5040, 5051, 5068, 3224, 6098, 4909, 5867, 5037, + 5039, 3516, 5050, 3510, 5060, 5061, 5062, 3799, 5064, 5063, + 5065, 5078, 2821, 5067, 3511, 5069, 5070, 5071, 3800, 5081, + 5084, 5085, 5092, 5100, 5101, 5104, 5105, 777, 5108, 1728, + 1729, 1730, 5110, 4941, 4769, 4542, 5131, 777, 5139, 5142, + 5147, 5128, 4543, 3512, 5170, 5162, 4369, 3801, 4370, 5173, + 1725, 3518, 5174, 4127, 5175, 3808, -771, 5193, 5176, -2281, + 4969, 5181, 5182, 1728, 1729, 1730, 6225, 4445, 6162, 5178, + 5194, 5187, 5195, 4544, 5203, 3513, 5201, 5206, 3441, 3802, + 6235, 5215, 2400, 5673, 5218, 5216, 6225, 5232, 4545, 4546, + 5850, 5225, 5234, 6235, 744, 5233, 4884, 3308, 5247, 1726, + 5235, 4547, 5249, 5083, 5254, 5250, 2448, 5257, 5260, 5261, + 5351, 5282, 5353, 5360, 5369, 2749, 5370, 5371, 5372, 5379, + 5380, 6098, 1728, 1729, 1730, 792, 1718, -771, 1719, 1720, + 1721, 3517, 1722, 5362, 1723, 3804, 5364, 5378, 5386, 4406, + 3516, 4407, 5573, 1724, 5384, 5394, 5381, 5398, 5399, 4146, + 4921, 5430, 2277, 5574, 5541, 1728, 1729, 1730, 5546, 5547, + 4945, 5432, 4918, 2760, 5434, 5451, 5453, 5456, 5455, 2443, + -671, 5480, 5467, 4941, 2949, 5469, 5481, 5482, 1793, 5484, + 5488, 5489, 5575, 610, 1728, 1729, 1730, 5517, 5087, 5492, + 5579, 5495, 5508, 2822, 5516, 5530, 3799, 5525, 5531, 2139, + 5538, 5534, 5537, 2950, 5539, 111, 5542, 3800, 1727, 5581, + 5583, 5585, 5591, 5029, 5576, 5592, 5594, 5598, 3799, 5596, + 5606, 2278, 1718, 5616, 1719, 1720, 1721, 5611, 1722, 3800, + 1723, 111, 5613, 5614, 5618, 779, 3801, 5633, 5265, 1724, + 5632, 792, 5637, 5643, 3808, 5648, 1725, 5660, 5269, 5671, + 792, 5674, 5677, 5682, 5683, 5688, 5689, 5284, 3801, 5692, + 5690, 5018, 5779, 5693, 5702, 5707, 3808, 5723, 3802, 5300, + 5578, 5270, 5711, -2678, 1718, 5145, 1719, 1720, 1721, 940, + 1722, 5739, 1723, -2677, 5757, 2279, 5713, 2280, -2681, 5717, + 3802, 1724, 5759, 2281, 3514, 1726, 5770, 5771, -2691, -2695, + 5729, 5772, -3641, -3639, -3643, -3637, -3642, 5977, -3640, 5756, + -3638, 5733, 941, 5777, 1728, 1729, 1730, 1239, 5780, 5781, + 5782, 5789, 5791, 5795, 3804, 5805, 5804, 5808, 5826, 5827, + 5832, 5838, 4520, 2959, 5882, 943, 5874, 5883, 5877, 5884, + 6204, 1718, 1725, 1719, 1720, 1721, 3804, 1722, 5885, 1723, + 5890, 5891, 3515, 5900, 2282, 5902, 5903, 5906, 1724, 5910, + 5916, 5920, 5923, 5931, 5958, 5259, 5928, 1728, 1729, 1730, + 942, 5944, 5946, 5964, 2140, 5966, 5972, 5968, 5976, 5970, + 4419, 5969, 5974, 5975, 5989, 5991, 2960, 5990, 5992, 6007, + 6041, 1726, 5997, 6014, 1725, 2392, 6029, 6051, 2283, 6044, + 6049, 5302, 6052, 6059, 1727, 6062, 940, 6065, 6074, 111, + 4192, 6075, 6080, 5236, 6082, 5395, 6083, 5719, 6084, 6087, + 4631, 4636, 6112, 6115, 6118, 5030, 4487, 6176, 6126, 6127, + 6139, 6133, 6186, 6137, 6179, 6142, 6182, 792, 6187, 6190, + 4941, 5113, 5267, 1726, 6188, 6195, 6196, 6199, 6200, 6201, + 6203, 6205, 1718, 6211, 1719, 1720, 1721, 777, 1722, 4663, + 1723, 1725, 943, 6226, 6212, 3950, 4184, 3227, 6239, 1724, + 5442, 5444, 4034, 792, 5443, 1869, 5829, 5597, 4603, 5880, + 5999, 6135, 1343, 2487, 2069, 4980, 5479, 4571, 5461, 5669, + 2284, 5738, 5676, 5331, 5340, 5792, 5167, 2466, 3238, 4505, + 1727, 2285, 5340, 4296, 4209, 2787, 1455, 4784, 2922, 2924, + 1726, 5286, 5289, 5291, 5293, 2923, 2771, 5296, 5297, 5736, + 5735, 5587, 5301, 5074, 2116, 5307, 2852, 4650, 5311, 5639, + 4867, 5286, 5031, 5507, 5224, 5322, 5286, 5389, 6138, 4872, + 6013, 3099, 4941, 5694, 6092, 5512, 6178, 6146, 5820, 6180, + 5404, 5930, 1727, 5387, 4909, 3332, 5876, 2060, 6104, 5072, + 5414, 5425, 5536, 5077, 5403, 5623, 2392, 5417, 5276, 5418, + 5419, 6166, 1725, 777, 5413, 6073, 6077, 6005, 4831, 4909, + 5283, 4733, 4775, 6079, 6011, 940, 4909, 5764, 5121, 5129, + 3799, 4941, 1718, 4853, 1719, 1720, 1721, 4391, 1722, 4855, + 1723, 3800, 4851, 6181, 749, 750, 5438, 5298, 5299, 1724, + 6159, 5836, 6160, 4026, 6040, 6048, 6046, 5312, 5137, 1727, + 5619, 1726, 5617, 5075, 5423, 2186, 4514, 2085, 5454, 2654, + 3801, 5330, 4012, 5898, 1576, 4011, 6009, 3403, 3808, 3923, + 5763, 943, 5358, 3219, 2820, 5477, 4222, 4520, 175, 176, + 3485, 4709, 778, 1728, 1729, 1730, 2049, 3888, 4075, 4683, + 1370, 4686, 3802, 4689, 3977, 5820, 5102, 3934, 1782, 4863, + 2004, 3514, 2961, 4415, 2446, 3803, 2048, 3851, 940, 3849, + 2291, 5478, 1624, 6240, 2386, 5340, 5985, 4331, 5186, 2301, + 2236, 5608, 5368, 2703, 2700, 6000, 5411, 1996, 1997, 1998, + -960, 1999, -960, 1718, 2001, 1719, 1720, 1721, 4901, 1722, + 5251, 1723, 1725, 6001, 2693, 5985, 2245, 2714, 3804, 3320, + 1724, 4410, 5013, 5012, 4073, 4409, 5503, 5769, 2058, 3515, + 1727, 5909, 5246, 2043, 943, 5494, 4074, 1718, 5431, 1719, + 1720, 1721, 5521, 1722, 5511, 1723, 1390, 760, 5016, 4878, + 5515, 3454, 3312, 751, 1724, 1152, 2878, 3310, 2056, 3483, + 4708, 1726, 4882, 1775, 5703, 4909, 4108, 4897, 4900, 5256, + 1717, 4521, 5529, 6174, 1467, 5529, 5529, 1473, 2846, 3197, + 5535, 5493, 1244, 2560, 4941, 3198, 3971, 2050, 1247, 775, + 3232, 5734, 5545, 5524, 4713, 2191, 2644, 5580, 6177, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 5577, 5373, 6197, 5615, 6238, 6241, 5985, 1579, 5513, 3535, + 3210, 3962, 3481, 1725, 3963, 1203, 3964, 2928, 3163, 1204, + 3959, 3956, 5496, 4453, 3955, 1793, 2663, 5019, 4523, 6237, + 4611, 2909, 1776, 2488, 1160, 3393, 3930, 2179, 2180, 1728, + 1729, 1730, 4028, 5107, 5340, 5661, 4664, 1725, 1292, 1953, + 769, 5620, 753, 5622, 3803, 754, 2955, 1799, 3515, 755, + 1727, 5359, 1726, 4297, 2925, 941, 938, 3308, 1124, 3308, + 1559, 4706, 5740, 5621, 5602, 5881, 3803, 0, 0, 0, + 0, 0, 938, 0, 0, 4524, 4525, 4526, 992, 1248, + 0, 0, 0, 4941, 4909, 4941, 1726, 792, 4941, 0, + 4909, 0, 0, 0, 0, 4941, 4941, 4527, 0, 4909, + 0, 0, 0, 1124, 5640, 4941, 0, 0, 0, 0, + 0, 4941, 4909, 942, 4909, 0, 0, 5582, 0, 0, + 0, 5649, 0, 0, 0, 1728, 1729, 1730, 0, 0, + 0, 0, 0, 5584, 1937, 5741, 0, 0, 0, 0, + 0, 0, 0, 0, 2967, 0, 0, 4528, 777, 4529, + 0, 0, 0, 1012, 0, 0, 0, 0, 5145, 0, + 0, 1727, 5670, 0, 0, 0, -960, 0, 4530, 0, + 0, 5820, 0, 0, 0, 0, 0, 1728, 1729, 1730, + 0, 1718, 941, 1719, 1720, 1721, 4531, 1722, 0, 1723, + 0, 0, 0, 4532, 0, 1727, 2977, 0, 1724, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4533, 0, + 0, 0, 2392, 0, 0, 0, 0, 0, 4534, 0, + 0, 0, 1124, 0, 0, 5529, 0, 0, 0, 5716, + 0, 2040, 0, 4535, 0, 0, 5721, 777, 0, 0, + 942, 4941, 4941, 1029, 1728, 1729, 1730, 0, 1718, 0, + 1719, 1720, 1721, 0, 1722, 0, 1723, 0, 4663, 0, + 0, 0, 0, 2978, 0, 1724, 0, 0, 0, 0, + 0, 5664, 0, 0, 0, 0, 0, 0, 777, 0, + 0, 0, 0, 0, 0, 0, 0, 5340, 0, 0, + 4536, 0, 0, 5340, 0, 0, 111, 0, 0, 0, + 4537, 1725, 0, 5921, 5922, 0, 5924, 5925, 5926, 5927, + 938, 0, 938, 938, 938, 0, 0, 0, 0, 0, + 938, 4941, 0, 938, 0, 4941, 0, 5766, 0, 0, + 0, 5477, 2392, 0, 0, 0, 4538, 0, 0, 0, + 0, 4909, 940, 0, 0, 0, 0, 0, 0, 4539, + 1726, 5497, 5783, 5787, 0, 1728, 1729, 1730, 0, 5498, + 5722, 941, 0, 2266, 2267, 2268, 2269, 5478, 1725, 0, + 0, 0, 0, 1124, 2983, 0, 0, 1124, 0, 0, + 0, 0, 0, 2183, 0, 0, 0, 5858, 5803, 4540, + 0, 5858, 0, 0, 0, 4541, 0, 4848, 943, 0, + 0, 1124, 0, 0, 5529, 0, 0, 2270, 2271, 2272, + 1124, 0, 5833, 6021, 4941, 0, 6024, 1726, 0, 942, + 0, 0, 0, 0, 6032, 0, 0, 6035, 5873, 0, + 0, 0, 0, 0, 5878, 0, 0, 0, 3803, 0, + 0, 1718, 0, 1719, 1720, 1721, 0, 1722, 5893, 1723, + 0, 0, 4941, 4542, 941, 0, 2273, 2274, 1724, 1727, + 4543, 0, 0, 1624, 0, 5894, 4941, 777, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2300, 1624, + 0, 0, 0, 0, 2443, 0, 5908, 1124, 1124, 1124, + 1124, 4544, 0, 0, 0, 1728, 1729, 1730, 0, 1124, + 0, 0, 0, 0, 0, 0, 4545, 4546, 0, 0, + 0, 5858, 942, 0, 2984, 0, 0, 0, 2275, 4547, + 0, 0, 5945, 0, 0, 0, 1727, 5957, 0, 5858, + 0, 0, 0, 5963, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6028, 1718, 938, 1719, 1720, 1721, 792, 1722, 0, 1723, + 0, 1725, 0, 0, 0, 0, 0, 0, 1724, 0, + 0, 0, 5996, 0, 777, 0, 0, 0, 0, 4487, + 4487, 0, 0, 2276, 4975, 0, 0, 0, 0, 0, + 5896, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5787, 0, 0, 0, 0, 0, 1728, 1729, 1730, 5803, + 1726, 0, 0, 0, 735, 0, 0, 0, 0, 2451, + 0, 6134, 792, 0, 0, 2985, 1624, 0, 0, 0, + 0, 1718, 0, 1719, 1720, 1721, 0, 1722, 0, 1723, + 1728, 1729, 1730, 0, 0, 0, 0, 0, 1724, 0, + 0, 0, 0, 6050, 5858, 3467, 0, 0, 0, 3002, + 0, 5529, 5499, 5529, 5529, 5500, 0, 0, 0, 2521, + 0, 1725, 6070, 1124, 2277, 5501, 1929, 0, 0, 0, + 0, 5971, 0, 0, 0, 0, 0, 0, 0, 1715, + 0, 1713, 6081, 0, 0, 0, 1718, 5998, 1719, 1720, + 1721, 0, 1722, 0, 1723, 2392, 0, 0, 0, 0, + 0, 0, 0, 1724, 0, 0, 0, 0, 0, 1727, + 1726, 0, 0, 0, 6145, 0, 0, 792, 0, 0, + 0, 0, 0, 0, 0, 0, 6111, 0, 5858, 0, + 0, 0, 0, 2278, 0, 0, 5529, 5529, 0, 0, + 6119, 1725, 0, 0, 6022, 6023, 0, 5529, 0, 0, + 0, 0, 0, 0, 0, 0, 6034, 0, 0, 0, + 1718, 0, 1719, 1720, 1721, 6132, 1722, 0, 1723, 6242, + 6105, 0, 0, 0, 0, 0, 0, 1724, 5858, 5858, + 0, 1624, 0, 0, 0, 0, 792, 0, 0, 0, + 1726, 0, 0, 0, 0, 0, 0, 2279, 0, 2280, + 6069, 0, 0, 5529, 0, 2281, 1725, 0, 0, 0, + 0, 0, 0, 5858, 0, 0, 0, 0, 6171, 1727, + 0, 0, 2392, 0, 1718, 0, 1719, 1720, 1721, 6228, + 1722, 0, 1723, 0, 6230, 0, 0, 0, 0, 1124, + 0, 1724, 0, 0, 6099, 938, 0, 6100, 0, 0, + 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, + 0, 0, 0, 0, 6110, 0, 2282, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, 0, + 1725, 2718, 0, 0, 1724, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1728, 1729, 1730, 2392, 0, 1727, + 0, 792, 0, 0, 0, 0, 792, 0, 0, 0, + 2283, 2392, 0, 3009, 0, 0, 0, 2392, 0, 0, + 0, 0, 0, 0, 2392, 1124, 0, 1124, 941, 1726, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1725, 0, 0, 0, 1718, 0, + 1719, 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, + 0, 1728, 1729, 1730, 1727, 1724, 0, 0, 0, 0, + 0, 0, 0, 1124, 1124, 0, 0, 0, 0, 1124, + 3011, 0, 0, 1124, 1124, 1124, 942, 1725, 0, 0, + 0, 0, 0, 1726, 1124, 1124, 0, 0, 0, 0, + 1124, 0, 2284, 0, 1124, 1124, 1124, 0, 1124, 1124, + 1124, 0, 0, 2285, 0, 0, 0, 0, 1124, 0, + 1124, 0, 0, 1124, 1124, 1124, 1124, 0, 1124, 0, + 1124, 1124, 1124, 0, 0, 0, 1726, 1124, 1727, 0, + 1124, 0, 0, 0, 0, 0, 1124, 1124, 0, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 0, + 1124, 1124, 1124, 1124, 1124, 0, 1124, 1124, 1725, 1124, + 1124, 1124, 0, 0, 1124, 1124, 1124, 2930, 1124, 1124, + 1124, 0, 1124, 0, 1124, 0, 1124, 0, 0, 0, + 1124, 1124, 1124, 0, 0, 1124, 1124, 1124, 1124, 1124, + 0, 1124, 1727, 0, 0, 0, 0, 0, 1124, 0, + 1718, 1124, 1719, 1720, 1721, 0, 1722, 1726, 1723, 1124, + 0, 0, 0, 1124, 1124, 1124, 1124, 1724, 1124, 1124, + 0, 0, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1727, 0, 1124, 0, 0, + 0, 0, 1624, 2971, 1728, 1729, 1730, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3014, 0, 0, 0, 0, 0, 1718, + 0, 1719, 1720, 1721, 1124, 1722, 0, 1723, 0, 0, + 0, 0, -1120, 0, 0, 0, 1724, 0, 0, 0, + 0, 0, 0, 4520, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1727, 0, 0, 0, + 1725, 4624, 0, 4625, 4626, 0, 0, 0, 3050, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3067, 0, 0, 4627, 0, 4628, 0, 0, + 0, 0, 0, 4629, 1728, 1729, 1730, 0, 0, 0, + 0, 1124, 1718, 0, 1719, 1720, 1721, 0, 1722, 1726, + 1723, 0, 0, 3015, 2058, 0, 0, 0, 0, 1724, + 0, 0, 0, 0, 0, 4630, 0, 0, 1124, 1725, + 1124, 0, 0, 0, 0, 0, 0, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, 0, + 0, 0, 0, 0, 1724, 0, 0, 4521, 0, 0, + 0, 0, 0, 0, 0, 1124, 0, 0, 0, 0, + 0, 3123, 0, 0, 1728, 1729, 1730, 0, 1726, 0, + 0, 0, 0, 0, 0, 4631, 0, 0, 1799, 0, + 0, 0, 1718, 3017, 1719, 1720, 1721, 0, 1722, 0, + 1723, 0, 0, 0, 0, 0, 0, 0, 0, 1724, + 0, 0, 0, 0, 4632, 0, 4633, 1718, 1727, 1719, + 1720, 1721, 1725, 1722, 4523, 1723, 4634, 0, 0, 0, + 0, 0, 0, 0, 1724, 0, 0, 0, 0, 1728, + 1729, 1730, 0, 0, 0, 0, 0, 0, 4635, 1124, + 0, 0, 0, 0, 0, 0, 0, 1725, 3020, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1726, 0, 0, 2183, 0, 0, 0, 0, 0, + 0, 4524, 4525, 4526, 0, 0, 0, 1727, 1718, 0, + 1719, 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, + 0, 0, 0, 4527, 0, 1724, 1726, 0, 0, 0, + 1937, 1937, 1725, 1728, 1729, 1730, 0, 0, 1718, 0, + 1719, 1720, 1721, 938, 1722, 1718, 1723, 1719, 1720, 1721, + 0, 1722, 3021, 1723, 0, 1724, 0, 1725, 0, 0, + 0, 0, 1724, 0, 0, 4636, 0, 0, 0, 0, + 0, 0, 0, 4528, 0, 4529, 1718, 0, 1719, 1720, + 1721, 1726, 1722, 0, 1723, 0, 0, 0, 0, 0, + 0, 938, 0, 1724, 4530, 0, 2940, 1728, 1729, 1730, + 1727, 4637, 0, 0, 0, 0, 1726, 0, 0, 0, + 0, 0, 4531, 0, 0, 0, 3022, 0, 2040, 4532, + 2040, 2040, 3327, 0, 0, 0, 938, 0, 1725, 1124, + 0, 0, 0, 0, 4533, 1727, 0, 0, 0, 2889, + 1728, 1729, 1730, 0, 4534, 0, 0, 0, 4638, 4639, + 0, 0, 0, 0, 0, 4640, 0, 2974, 1725, 4535, + 0, 0, 938, 938, 0, 1725, 0, 4641, 0, 0, + 1718, 1124, 1719, 1720, 1721, 0, 1722, 1726, 1723, 1124, + 1124, 0, 0, 0, 0, 0, 0, 1724, 4642, 0, + 1727, 0, 0, 0, 0, 0, 1725, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, + 0, 0, 4643, 0, 1726, 1727, 4536, 0, 0, 0, + 0, 1728, 1729, 1730, 0, 0, 4537, 0, 0, 0, + 0, 0, 0, 0, 1124, 0, 0, 0, 0, 0, + 3039, 0, 0, 0, 0, 1726, 0, 0, 0, 0, + 1718, 0, 1719, 1720, 1721, 0, 1722, 0, 1723, 0, + 0, 0, 4538, 0, 0, 0, 0, 1724, 0, 0, + 1124, 1124, 1124, 0, 2183, 4539, 0, 4644, 0, 0, + 0, 1718, 0, 1719, 1720, 1721, 1727, 1722, 0, 1723, + 1725, 0, 0, 0, 0, 0, 0, 0, 1724, 0, + 1718, 0, 1719, 1720, 1721, 0, 1722, 0, 1723, 0, + 0, 0, 0, 0, 0, 4540, 1727, 1724, 0, 0, + 0, 4541, 0, 1727, 1718, 0, 1719, 1720, 1721, 0, + 1722, 0, 1723, 0, 0, 0, 0, 0, 0, 1726, + 0, 1724, 1124, 0, 0, 0, 4645, 0, 0, 0, + 0, 0, 0, 0, 1727, 0, 0, 4646, 4647, 4648, + 1124, 1, 2, 0, 1124, 1124, 0, 1124, 1124, 0, + 1725, 0, 0, 0, 0, 0, 1124, 0, 1124, 4542, + 0, 0, 0, 1728, 1729, 1730, 4543, 0, 0, 0, + 0, 1718, 0, 1719, 1720, 1721, 0, 1722, 0, 1723, + 0, 1725, 3042, 3, 4, 0, 1124, 0, 1724, 0, + 0, 0, 0, 0, 0, 0, 0, 4544, 0, 1726, + 1725, 5, 0, 6, 0, 7, 0, 8, 0, 0, + 0, 0, 4545, 4546, 1124, 9, 0, 0, 3131, 0, + 0, 0, 0, 0, 1725, 4547, 0, 1124, 1727, 4649, + 1726, 0, 1728, 1729, 1730, 0, 10, 0, 11, 12, + 1124, 0, 0, 0, 0, 13, 0, 0, 0, 1726, + 0, 3049, 0, 0, 1718, 0, 1719, 1720, 1721, 0, + 1722, 14, 1723, 0, 0, 15, 1124, 0, 3904, 0, + 0, 1724, 0, 1726, 16, 0, 0, 0, 0, 4491, + 0, 0, 17, 0, 0, 1624, 4492, 0, 0, 0, + 0, 1725, 0, 18, -1120, 0, 0, 0, 0, 0, + 0, 4493, 0, 19, 0, 20, 0, 0, 1727, 21, + 1124, 4494, 4495, 4496, 0, 938, 0, 0, 0, 0, + 0, 4497, 0, 0, 0, 1728, 1729, 1730, 0, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 1727, + 1726, 0, 0, 0, 3537, 23, 24, 0, 1929, 0, + 0, 0, 0, 0, 0, 25, 26, 2521, 1727, 0, + 1728, 1729, 1730, 0, 0, 0, 0, 27, 28, 29, + 30, 0, 31, 0, 1725, 0, 0, 32, 0, 3819, + 0, 0, 1727, 33, 0, 0, 0, 34, 35, 36, + 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 0, 1718, 0, 1719, 1720, 1721, 0, 1722, 0, + 1723, 0, 0, 0, 0, 1728, 1729, 1730, 0, 1724, + 0, 0, 0, 1726, 0, 37, 0, 38, 0, 39, + 0, 0, 0, 1124, 4333, 0, 40, 0, 0, 0, + 1728, 1729, 1730, 0, 41, 42, 0, 1124, 0, 1727, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4334, + 4498, 0, 1718, 0, 1719, 1720, 1721, 0, 1722, 0, + 1723, 0, 4499, 0, 0, 0, 0, 43, 44, 1724, + 45, 0, 0, 0, 0, 0, 0, 46, 0, 992, + 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 2040, 0, 0, 1124, 938, 0, 0, + 0, 1728, 1729, 1730, 48, 0, 0, 0, 0, 0, + 0, 1718, 1725, 1719, 1720, 1721, 0, 1722, 0, 1723, + 4347, 0, 1727, 0, 0, 0, 0, 0, 1724, 49, + 0, 1728, 1729, 1730, 0, 0, 0, 0, 1728, 1729, + 1730, 50, 0, 0, 0, 0, 0, 0, 4500, 0, + 4366, 0, 0, 0, 1012, 0, 0, 4382, 0, 0, + 51, 1726, 0, 4501, 0, 0, 0, 0, 0, 1728, + 1729, 1730, 1725, 938, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 938, 54, + 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 4502, 0, 0, 0, 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 4503, 0, 0, 0, 0, 0, + 0, 1726, 0, 0, 0, 0, 3509, 938, 2040, 0, + 0, 1725, 0, 0, 0, 938, 938, 938, 0, 0, + 3131, 1124, 0, 0, 1029, 1124, 0, 0, 1124, 0, + 0, 0, 3797, 0, 0, 0, 3797, 1124, 0, 0, + 0, 0, 0, 1728, 1729, 1730, 1124, 0, 1124, 1124, + 1727, 1124, 1124, 1124, 1124, 0, 1124, 0, 1124, 1124, + 1726, 1124, 4383, 0, 0, 0, 0, 0, 0, 1124, + 1124, 0, 0, 0, 1124, 1124, 1124, 1124, 0, 0, + 1124, 1124, 0, 0, 1124, 0, 1124, 0, 1124, 0, + 1124, 0, 0, 0, 1124, 0, 0, 0, 0, 0, + 57, 1124, 0, 1124, 0, 1124, 1124, 1124, 0, 1124, + 1727, 0, 1124, 1124, 1124, 1124, 0, 0, 1124, 0, + 0, 0, 0, 1728, 1729, 1730, 0, 0, 0, 58, + 0, 1124, 5497, 59, 1124, 0, 1124, 1124, 1124, 0, + 5498, 1124, 5191, 60, 0, 0, 0, 1124, 0, 0, + 0, 61, 0, 0, 1728, 1729, 1730, 0, 0, 0, + 0, 0, 0, 62, 1, 1124, 0, 1124, 0, 1727, + 1124, 2979, 0, 1728, 1729, 1730, 0, 0, 1130, 0, + 1124, 0, 1124, 63, 0, 1131, 64, 1124, 0, 0, + 2980, 0, 0, 0, 0, 0, 0, 1728, 1729, 1730, + 1132, 0, 0, 0, 0, 0, 3, 4, 0, 0, + 1133, 1134, 1135, 0, 2981, 0, 0, 0, 0, 65, + 1136, 0, 0, 0, 5, 0, 6, 0, 7, 66, + 8, 0, 0, 0, 0, 1124, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 1124, 0, 0, + 0, 0, 0, 0, 1124, 67, 0, 0, 0, 10, + 0, 11, 12, 0, 1728, 1729, 1730, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, + 0, 3003, 0, 0, 14, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 1124, 938, 0, 0, 0, 17, 938, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 18, 0, 0, 1718, + 1124, 1719, 1720, 1721, 1724, 1722, 19, 1723, 20, 0, + 0, 0, 21, 0, 0, 0, 1724, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1728, 1729, 1730, + 1718, 0, 1719, 1720, 1721, 0, 1722, 22, 1723, 1137, + 0, 0, 0, 0, 3006, 0, 0, 1724, 23, 24, + 0, 1138, 0, 0, 0, 0, 0, 0, 25, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 1124, 0, + 27, 28, 29, 30, 0, 31, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 33, 0, 0, 1124, + 34, 35, 36, 0, 1718, 0, 1719, 1720, 1721, 0, + 1722, 4385, 1723, 0, 0, 0, 0, 1725, 0, 0, + 0, 1724, 0, 0, 0, 0, 0, 0, 4095, 1725, + 0, 0, 0, 5499, 0, 0, 5500, 0, 37, 0, + 38, 0, 39, 0, 0, 0, 5684, 0, 0, 40, + 0, 0, 0, 0, 4095, 4095, 0, 41, 42, 0, + 1725, 0, 1139, 0, 0, 0, 1726, 0, 0, 0, + 0, 1718, 0, 1719, 1720, 1721, 4448, 1722, 1726, 1723, + 0, 0, 0, 0, 0, 1728, 1729, 1730, 1724, 0, + 43, 44, 0, 45, 0, 0, 0, 0, 0, 1140, + 46, 0, 3008, 0, 0, 0, 0, 47, 0, 1726, + 0, 0, 0, 1141, 0, 0, 0, 0, 4095, 4095, + 0, 0, 0, 0, 1725, 0, 1718, 48, 1719, 1720, + 1721, 0, 1722, 0, 1723, 1937, 1718, 1, 1719, 1720, + 1721, 0, 1722, 1724, 1723, 1728, 1729, 1730, 0, 0, + 0, 0, 49, 1724, 0, 1124, 0, 0, 0, 0, + 0, 0, 3010, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 1726, 0, 1727, 0, 0, 0, 3, + 4, 0, 0, 51, 0, 4287, 0, 1727, 0, 0, + 0, 1725, 0, 0, 0, 0, 0, 5, 52, 0, + 0, 7, 0, 8, 1728, 1729, 1730, 1124, 0, 53, + 0, 9, 54, 0, 0, 55, 938, 0, 1727, 1124, + 0, 3018, 1124, 0, 0, 0, 0, 0, 0, 0, + 56, 0, 10, 0, 11, 12, 0, 0, 0, 0, + 1726, 13, 0, 0, 0, 0, 1725, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 1725, 0, 0, 0, + 0, 15, 0, 0, 1724, 0, 0, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 1718, 17, 1719, + 1720, 1721, 1727, 1722, 1724, 1723, 0, 0, 0, 18, + 0, 0, 0, 0, 1724, 1726, 0, 0, 0, 19, + 0, 20, 0, 0, 0, 1726, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1718, 0, 1719, 1720, 1721, + 0, 1722, 0, 1723, 0, 0, 0, 0, 0, 0, + 22, 0, 1724, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 57, 0, 0, 0, 0, 0, 1727, + 0, 25, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 0, 30, 1725, 31, 0, + 0, 0, 58, 32, 0, 0, 59, 0, 0, 33, + 0, 0, 0, 34, 35, 36, 60, 1725, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 1725, 0, 0, + 0, 0, 0, 0, 1727, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 1727, 0, 1726, 0, 0, 0, + 0, 37, 0, 38, 0, 39, 63, 0, 0, 64, + 0, 0, 40, 0, 0, 1725, 1726, 0, 0, 0, + 0, 42, 0, 0, 0, 0, 1726, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, 0, + 0, 0, 65, 0, 1724, 0, 0, 0, 0, 0, + 0, 0, 66, 43, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 46, 1726, 1718, 0, 1719, 1720, 1721, + 47, 1722, 0, 1723, 0, 0, 1124, 1124, 67, 0, + 0, 1124, 1724, 0, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 0, 0, 1718, 0, 1719, 1720, 1721, + 68, 1722, 1124, 1723, 1124, 1727, 1124, 0, 1124, 0, + 0, 0, 1724, 0, 0, 49, 1718, 0, 1719, 1720, + 1721, 0, 1722, 0, 1723, 1727, 0, 50, 1124, 0, + 0, 0, 0, 1724, 1718, 1727, 1719, 1720, 1721, 0, + 1722, 0, 1723, 0, 0, 0, 51, 1725, 1124, 1124, + 0, 1724, 0, 1124, 0, 1124, 0, 1124, 0, 0, + 0, 52, 1124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 1727, 1124, 54, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, 1726, 0, 0, 0, + 1728, 1729, 1730, 0, 0, 1124, 0, 0, 0, 0, + 0, 0, 1728, 1729, 1730, 1725, 0, 3019, 0, 1124, + 0, 0, 0, 1124, 0, 0, 0, 0, 0, 3024, + 0, 0, 0, 0, 1726, 0, 1725, 0, 0, 0, + 0, 1124, 0, 1728, 1729, 1730, 0, 0, 0, 0, + 0, 0, 0, 0, 1725, 0, 0, 0, 0, 0, + 3025, 0, 0, 1718, 1726, 1719, 1720, 1721, 0, 1722, + 0, 1723, 0, 0, 0, 1718, 0, 1719, 1720, 1721, + 1724, 1722, 0, 1723, 0, 1726, 0, 0, 0, 0, + 0, 0, 1724, 0, 4557, 4557, 1718, 0, 1719, 1720, + 1721, 0, 1722, 1726, 1723, 1727, 57, 1728, 1729, 1730, + 0, 0, 0, 1724, 0, 0, 1124, 0, 0, 0, + 0, 0, 0, 0, 3028, 1718, 1124, 1719, 1720, 1721, + 0, 1722, 0, 1723, 0, 58, 0, 0, 1124, 59, + 1124, 0, 1724, 1727, 1718, 0, 1719, 1720, 1721, 60, + 1722, 0, 1723, 0, 0, 0, 0, 61, 0, 0, + 0, 1724, 1718, 0, 1719, 1720, 1721, 0, 1722, 62, + 1723, 0, 0, 1727, 1728, 1729, 1730, 0, 0, 1724, + 0, 0, 0, 1725, 0, 0, 0, 0, 0, 63, + 0, 3029, 64, 0, 1727, 1725, 1718, 0, 1719, 1720, + 1721, 0, 1722, 0, 1723, 0, 0, 4557, 0, 0, + 0, 0, 1727, 1724, 0, 0, 1725, 0, 0, 938, + 1718, 0, 1719, 1720, 1721, 65, 1722, 0, 1723, 1728, + 1729, 1730, 1726, 0, 0, 66, 0, 1724, 0, 1728, + 1729, 1730, 0, 0, 1726, 1725, 3030, 0, 0, 0, + 0, 0, 0, 4095, 0, 0, 3033, 0, 0, 0, + 0, 67, 0, 0, 1725, 1726, 0, 0, 1718, 0, + 1719, 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, + 938, 0, 1725, 68, 0, 1724, 0, 1718, 0, 1719, + 1720, 1721, 0, 1722, 1726, 1723, 0, 0, 0, 0, + 0, 0, 0, 0, 1724, 0, 0, 0, 0, 0, + 0, 0, 0, 1726, 0, 0, 1725, 0, 0, 0, + 0, 0, 1718, 2040, 1719, 1720, 1721, 0, 1722, 0, + 1723, 1726, 0, 0, 0, 0, 0, 0, 0, 1724, + 1725, 1727, 0, 0, 0, 0, 0, 0, 0, 0, + 1728, 1729, 1730, 1727, 0, 0, 0, 0, 0, 0, + 938, 0, 0, 0, 0, 1726, 0, 3035, 0, 0, + 1728, 1729, 1730, 0, 1727, 0, 0, 0, 0, 0, + 1728, 1729, 1730, 0, 0, 0, 0, 3037, 1725, 1726, + 0, 0, 0, 0, 0, 1124, 1124, 3038, 1124, 0, + 0, 0, 0, 1727, 0, 3904, 0, 1725, 0, 1124, + 0, 1124, 0, 0, 1124, 0, 0, 0, 1728, 1729, + 1730, 0, 1727, 0, 3797, 0, 1124, 0, 1124, 0, + 1124, 0, 1124, 0, 0, 3040, 0, 1726, 0, 0, + 1727, 0, 1725, 0, 1124, 1124, 1718, 0, 1719, 1720, + 1721, 0, 1722, 0, 1723, 0, 1726, 0, 0, 0, + 0, 0, 0, 1724, 0, 1126, 0, 0, 0, 1124, + 0, 0, 0, 1718, 1727, 1719, 1720, 1721, 0, 1722, + 0, 1723, 0, 0, 0, 0, 0, 5845, 175, 176, + 1724, 1726, 0, 0, 0, 0, 0, 1718, 1727, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, 690, + 1126, 0, 0, 1124, 1724, 0, 0, 0, 1124, 1124, + 0, 0, -796, 1718, 0, 1719, 1720, 1721, 0, 1722, + 0, 1723, 0, 0, 0, 0, 0, 1124, 0, 0, + 1724, 1124, 5861, 0, 0, 0, 1727, 0, 0, 0, + 1728, 1729, 1730, 1718, 0, 1719, 1720, 1721, 0, 1722, + 0, 1723, 0, 0, 0, 1727, 1725, 3047, 5862, 0, + 1724, 0, 0, 0, 1718, 0, 1719, 1720, 1721, 0, + 1722, 0, 1723, 0, 0, 0, 0, 0, 1728, 1729, + 1730, 1724, 0, 1725, 0, 0, 0, 0, 0, 0, + 1727, 0, 0, 0, 0, 3061, 0, 0, 0, 0, + 0, 0, 0, 0, 4557, 1726, 0, 1725, 1728, 1729, + 1730, 0, 0, 0, 0, 0, -994, 0, 0, 1126, + 0, 0, 0, 0, 0, 4328, 0, 0, 0, 1728, + 1729, 1730, 1726, 1725, 0, 0, 0, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 4337, 1728, 1729, 1730, + 691, 0, 0, 0, 1724, 5863, 1726, 5864, 0, 0, + 0, 0, 0, 1725, 4338, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5846, 0, 0, + 0, 0, 1726, 0, 1725, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1718, + 0, 1719, 1720, 1721, 4557, 1722, 0, 1723, 0, 0, + 0, 0, 1726, 0, 1727, 0, 1724, 1124, 1124, 0, + 0, 0, 0, 0, 0, 0, 1718, 0, 1719, 1720, + 1721, 0, 1722, 1726, 1723, 0, 0, 0, 0, 0, + 0, 1727, 0, 1724, 0, 0, 0, 0, 5847, 0, + 0, 0, 0, 0, 1577, 0, 0, 1725, 0, 0, + 0, 0, 0, 0, 0, 1727, 0, 0, 0, 0, + 1126, 0, 0, 0, 1126, 0, 1728, 1729, 1730, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1728, 1729, + 1730, 1727, 0, 4339, 0, 0, 0, 5865, 1126, 0, + 0, 0, 1577, 0, 0, 4343, 1726, 1126, 0, 1728, + 1729, 1730, 0, 0, 0, 0, 0, 3509, 0, 1725, + 0, 1727, 0, 0, 0, 0, 4344, 0, 0, 0, + 0, 0, 0, 0, 0, 938, 5848, 0, 1728, 1729, + 1730, 0, 1727, 0, 0, 0, 1725, 0, 0, 0, + 0, 1124, 0, 0, 0, 4345, 0, 1728, 1729, 1730, + 0, 0, 0, 0, 0, 0, 0, 0, 1726, 0, + 0, 0, 0, 0, 4346, 1728, 1729, 1730, 0, 0, + 0, 0, 0, 0, 1126, 1126, 1126, 1126, 0, 0, + 1577, 0, 4348, 0, 0, 1726, 1126, 0, 0, 1718, + 0, 1719, 1720, 1721, 0, 1722, 0, 1723, 0, 1728, + 1729, 1730, 0, 1124, 0, 1727, 1724, 0, 5866, 1718, + 0, 1719, 1720, 1721, 0, 1722, 4357, 1723, 0, 0, + 0, 0, 0, 1728, 1729, 1730, 1724, 1718, 0, 1719, + 1720, 1721, 0, 1722, 2936, 1723, 1124, 1124, 5849, 0, + 4365, 0, 0, 0, 1724, 0, 0, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, 1124, + 0, 0, 0, 0, 1724, 0, 0, 1727, 0, 0, + 0, 1728, 1729, 1730, 0, 0, 0, 1577, 0, 0, + 0, 0, 0, 0, 2040, 2040, 0, 0, 4371, 0, + 1728, 1729, 1730, 1718, 1727, 1719, 1720, 1721, 0, 1722, + 0, 1723, 0, 0, 0, 0, 0, 4372, 0, 1725, + 1724, 0, 0, 0, 0, 0, 0, 4557, 0, 4557, + 0, 2183, 0, 0, 0, 1728, 1729, 1730, 0, 1725, + 0, 0, 0, 0, 1124, 0, 1124, 1718, 0, 1719, + 1720, 1721, 4380, 1722, 0, 1723, 0, 1725, 0, 0, + 0, 0, 0, 0, 1724, 0, 0, 0, 1726, 0, + 1126, 0, 0, 0, 1577, 0, 1718, 1725, 1719, 1720, + 1721, 0, 1722, 0, 1723, 0, 0, 0, 1726, 0, + 0, 0, 0, 1724, 1718, 0, 1719, 1720, 1721, 0, + 1722, 0, 1723, 0, 0, 0, 1726, 0, 0, 0, + 0, 1724, 5867, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1725, 0, 4557, 1726, 1718, 0, 1719, + 1720, 1721, 0, 1722, 0, 1723, 0, 0, 0, 0, + 0, 0, 0, 0, 1724, 0, 0, 0, 0, 0, + 0, 0, 1124, 0, 0, 0, 0, 0, 0, 1728, + 1729, 1730, 0, 0, 0, 0, 0, 1725, 0, 0, + 2998, 1577, 1726, 0, 0, 0, 4381, 1727, 0, 0, + 0, 0, 0, 0, 0, 0, 1728, 1729, 1730, 0, + 0, 0, 0, 0, 3509, 0, 1725, 1727, 4287, 1124, + 0, 0, 0, 4384, 5850, 0, 0, 0, 0, 0, + 1728, 1729, 1730, 0, 1725, 1727, 1726, 0, 0, 0, + 0, 3840, 0, 0, 0, 0, 0, 4388, 0, 0, + 0, 0, 0, 0, 0, 1727, 1728, 1729, 1730, 0, + 0, 0, 0, 1124, 0, 1726, 1126, 1725, 0, 0, + 0, 0, 0, 4806, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1726, 0, 0, 1728, 1729, 1730, 0, + 1124, 0, 0, 0, 1718, 0, 1719, 1720, 1721, 0, + 1722, 1727, 1723, 5190, 0, 0, 0, 1728, 1729, 1730, + 0, 1724, 0, 0, 1124, 1124, 1726, 0, 0, 0, + 0, 0, 0, 0, 5196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1577, 0, 1727, 0, 0, 0, 0, + 0, 0, 1126, 5572, 1126, 0, 0, 0, 0, 3540, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1727, 0, 0, 0, 0, 0, + 1728, 1729, 1730, 0, 0, 0, 0, 0, 3842, 0, + 0, 0, 1727, 0, 0, 0, 0, 5197, 0, 0, + 1126, 1126, 0, 0, 0, 0, 1126, 4287, 0, 0, + 1126, 1126, 1126, 0, 1725, 0, 0, 0, 938, 0, + 0, 1126, 1126, 1577, 0, 1727, 0, 1126, 0, 4287, + 0, 1126, 1126, 1126, 0, 1126, 1126, 1126, 1577, 1577, + 0, 0, 1728, 1729, 1730, 1126, 0, 1126, 0, 0, + 1126, 1126, 1126, 1126, 0, 1126, 0, 1126, 1126, 1126, + 0, 0, 0, 1726, 1126, 0, 0, 1126, 0, 1728, + 1729, 1730, 0, 1126, 1126, 0, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 5198, 1126, 1126, 1126, + 1126, 1126, 0, 1126, 1126, 0, 1126, 1126, 1126, 0, + 0, 1126, 1126, 1126, 0, 1126, 1126, 1126, 0, 1126, + 0, 1126, 0, 1126, 0, 0, 0, 1126, 1126, 1126, + 0, 0, 1126, 1126, 1126, 1126, 1126, 0, 1126, 0, + 0, 0, 0, 0, 0, 1126, 0, 0, 1126, 0, + 0, 0, 0, 0, 0, 938, 1126, 0, 0, 0, + 1126, 1126, 1126, 1126, 1124, 1126, 1126, 0, 0, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1727, 0, 1126, 0, 0, 0, 0, 1577, + 1124, 0, 0, 0, 0, 0, 1577, 0, 0, 0, + 1124, 0, 0, 5845, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1124, + 1718, 1126, 1719, 1720, 1721, 690, 1722, 0, 1723, 0, + 1718, 0, 1719, 1720, 1721, 0, 1722, 1724, 1723, 1577, + 1718, 0, 1719, 1720, 1721, 0, 1722, 1724, 1723, 0, + 4359, 0, 1728, 1729, 1730, 0, 0, 1724, 5861, 1718, + 0, 1719, 1720, 1721, 0, 1722, 0, 1723, 0, 5207, + 0, 0, 1728, 1729, 1730, 0, 1724, 0, 0, 4362, + 0, 0, 0, 0, 5862, 0, 0, 0, 0, 5208, + 1728, 1729, 1730, 0, 0, 0, 0, 0, 0, 2266, + 2267, 2268, 2269, 0, 0, 0, 0, 5212, 1126, 0, + 1728, 1729, 1730, 0, 3844, 1718, 0, 1719, 1720, 1721, + 0, 1722, 0, 1723, 0, 0, 0, 5213, 0, 0, + 0, 0, 1724, 0, 938, 1126, 0, 1126, 0, 0, + 1725, 1124, -994, 2270, 2271, 2272, 0, 0, 0, 0, + 1725, 0, 0, 0, 0, 0, 1728, 1729, 1730, 0, + 1725, 1577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1126, 5681, 0, 0, 691, 0, 0, 1725, + 0, 5863, 0, 5864, 0, 0, 0, 0, 0, 1726, + 0, 0, 2273, 2274, 0, 0, 0, 0, 0, 1726, + 1728, 1729, 1730, 5846, 0, 0, 0, 0, 0, 1726, + 5859, 4287, 0, 0, 5859, 0, 0, 5834, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 938, 1726, 1728, + 1729, 1730, 0, 0, 0, 1725, 0, 0, 0, 175, + 176, 0, 0, 0, 0, 0, 0, 1728, 1729, 1730, + 0, 0, 0, 0, 2275, 0, 1126, 0, 0, 1124, + 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5847, 0, 0, 1909, 0, 0, + 1728, 1729, 1730, 0, 1726, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1727, 0, + 0, 0, 0, 0, 0, 0, 5942, 0, 1727, 0, + 0, 0, 5942, 5942, 0, 0, 0, 0, 1727, 2276, + 0, 0, 0, 5865, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5859, 0, 0, 1727, 0, 0, + 0, 0, 0, 0, 5988, 0, 0, 0, 0, 0, + 0, 0, 5859, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5848, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5988, 0, 0, 0, 0, 0, 0, + 0, 0, 1124, 175, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 1727, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2277, 0, 0, 0, 0, 0, 1126, 0, 0, 0, + 5942, 1909, 0, 0, 0, 0, 0, 1728, 1729, 1730, + 0, 0, 5942, 0, 0, 0, 5942, 0, 0, 0, + 0, 0, 0, 4518, 0, 4519, 4520, 175, 176, 0, + 4520, 175, 176, 0, 0, 0, 0, 1577, 1126, 0, + 0, 0, 0, 1124, 0, 0, 1126, 1126, 0, 0, + 0, 0, 0, 0, 5849, 0, 0, 5859, 0, 2278, + 0, 0, 0, 0, 1910, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 651, 0, 0, 1124, + 0, 0, 0, -960, 0, -960, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1126, 0, 0, 0, 5942, 6114, 2058, 0, 0, + 0, 2058, 1577, 1577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2279, 0, 2280, 0, 0, 0, 0, + 0, 2281, 0, 0, 0, 0, 0, 1126, 1126, 1126, + 0, 5859, 0, 0, 0, 0, 0, 0, 0, 0, + 4521, 0, 0, 0, 4521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4522, 0, 0, 0, + 0, 0, 0, 0, 5942, 0, 5942, 5942, 0, 0, + 0, 0, 2282, 0, 0, 0, 0, 0, 1577, 0, + 1124, 0, 0, 0, 1124, 0, 0, 0, 1910, 1126, + 1911, 0, 1577, 0, 0, 0, 0, 4523, 5867, 0, + 5942, 4523, 0, 0, 1912, 0, 1913, 1126, 0, 0, + 0, 1126, 1126, 0, 1126, 1126, 2283, 0, 0, 0, + 0, 0, 0, 1126, 5942, 1126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1914, 0, + 0, 5942, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1915, 0, 1126, 4524, 4525, 4526, 0, 4524, 4525, + 4526, 0, 0, 0, 0, 0, 0, 0, 1094, 0, + 0, 938, 0, 0, 0, 0, 4527, 0, 0, 0, + 4527, 1126, 0, 1916, 1124, 0, 0, 0, 0, 0, + 5850, 0, 0, 0, 1126, 0, 0, 0, 1577, 0, + 0, 1917, 0, 1728, 1729, 1730, 0, 1126, 2284, 0, + 0, 0, 0, 1728, 1729, 1730, 0, 0, 0, 2285, + 0, 0, 0, 1728, 1729, 1730, 4528, 0, 4529, 0, + 4528, 0, 4529, 1126, 1911, 0, 0, 0, 0, 0, + 0, 0, 1728, 1729, 1730, 0, 0, 4530, 1912, -960, + 1913, 4530, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4531, 0, 0, 0, 4531, + 0, 0, 4532, 0, 0, 0, 4532, 1126, 0, 1918, + 0, 0, 1914, 0, 1577, 0, 1919, 4533, 0, 0, + 0, 4533, 0, 0, 0, 1915, 1920, 4534, 1728, 1729, + 1730, 4534, 0, 0, 0, 0, 0, 0, 0, 0, + 1921, 0, 4535, 0, 0, 0, 4535, 0, 0, 0, + 1577, 1577, 0, 0, 0, 0, 0, 1916, 0, 0, + 0, 0, 1452, 0, 0, 0, 0, 0, 0, 0, + 0, 1922, 0, 0, 1923, 1917, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1924, 0, 0, 0, 0, 0, 0, 0, 0, 4536, + 0, 0, 0, 4536, 0, 0, 652, 0, 0, 4537, + 0, 0, 0, 4537, 0, 0, 0, 0, 0, 0, + 0, 1925, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 0, 0, 0, 0, 1577, 0, + 1577, 1577, 1577, 0, 1126, 4538, 0, 0, 0, 4538, + 0, 0, 0, 1918, 859, 0, 0, 0, 4539, 0, + 1919, 0, 4539, 0, 0, 0, 0, 0, 0, 0, + 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1921, 0, 860, 0, 0, 0, + 0, 0, 0, 2789, 0, 0, 0, 0, 4540, 0, + 0, 0, 4540, 1126, 4541, 0, 0, 862, 4541, 0, + 0, 0, 0, 0, 0, 1922, 863, 1588, 1923, 0, + 0, 0, 0, 0, 0, 2790, 0, 0, 0, 0, + 0, 0, 0, 0, 1924, 0, 864, 0, 0, 0, + 0, 1615, 0, 0, 0, 0, 0, 0, 865, 0, + 1629, 0, 0, 866, 0, 0, 0, 0, 0, 0, + 0, 2791, 4542, 0, 0, 1925, 4542, 0, 0, 4543, + 0, 0, 0, 4543, 0, 0, 867, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1577, 0, 0, 0, 0, 0, + 4544, 0, 0, 0, 4544, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4545, 4546, 0, 0, 4545, + 4546, 0, 0, 0, 0, 0, 0, 0, 4547, 0, + 1714, 868, 4547, 0, 0, 869, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1126, 0, + 0, 0, 1126, 0, 870, 1126, 0, 0, 871, 872, + 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, + 0, 0, 0, 1126, 0, 1126, 1126, 0, 1126, 1126, + 1126, 1126, 0, 1126, 0, 1126, 1126, 0, 1126, 0, + 873, 0, 0, 0, 0, 0, 1126, 1126, 874, 875, + 0, 1126, 1126, 1126, 1126, 0, 0, 1126, 1126, 0, + 0, 1126, 0, 1126, 0, 1126, 0, 1126, 0, 0, + 0, 1126, 0, 0, 0, 0, 0, 0, 1126, 0, + 1126, 0, 1126, 1126, 1126, 0, 1126, 0, 0, 1126, + 1126, 1126, 1126, 0, 0, 1126, 0, 0, 0, 0, + 0, 2166, 0, 0, 0, 0, 0, 0, 1126, 0, + 0, 1126, 0, 1126, 1126, 1126, 0, 0, 1126, 0, + 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2167, 0, 1126, 0, 1126, 0, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 1577, 1126, + 0, 0, 0, 1907, 1126, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1577, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2168, 0, 0, 0, + 0, 2169, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2170, 2171, 0, 0, 0, 0, 0, 0, + 2792, 0, 1126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, + 0, 1126, 0, 0, 0, 0, 0, 0, 0, 2793, + 2794, 0, 2795, 2796, 2797, 2798, 2799, 1577, 2800, 2801, + 2802, 2803, 2804, 2805, 2806, 2807, 0, 2808, 2809, 2810, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 175, 176, 0, 2811, 2812, 0, 2172, 0, 0, 0, + 0, 0, 0, 0, 0, 1126, 2173, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2174, 1206, 0, + 0, 0, 0, 2175, 0, 0, 1126, 0, 658, 0, + 0, 0, 0, 1577, 0, 0, 0, 0, 0, 0, + 0, 0, 1177, 0, 0, 0, 0, 0, 0, 0, + 1207, 1208, 0, 0, 2176, 0, 0, 2177, 0, 0, + 1209, 0, 0, 0, 0, 2189, 0, 2189, 0, 0, + 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2178, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1210, 0, 0, 0, 0, 0, 2235, + 0, 0, 0, 2240, 0, 2242, 0, 1211, 0, 0, + 0, 0, 0, 0, 2258, 2259, 0, 0, 0, 0, + 2288, 0, 0, 0, 2293, 2294, 2295, 0, 2297, 2298, + 2299, 0, 0, 0, 0, 0, 0, 0, 2307, 0, + 2310, 0, 0, 2311, 2312, 2313, 2314, 0, 1577, 0, + 2318, 2319, 2320, 0, 0, 0, 0, 2325, 0, 1212, + 2331, 0, 1126, 0, 0, 0, 2335, 2336, 0, 2339, + 1213, 2341, 2342, 2343, 2344, 2347, 2348, 0, 2351, 0, + 2352, 2353, 2354, 2355, 2356, 0, 2362, 2363, 0, 2366, + 2367, 2368, 0, 0, 2371, 0, 2373, 0, 2375, 2376, + 2377, 0, 2379, 0, 2381, 0, 2382, 0, 0, 0, + 2385, 2331, 2387, 0, 1126, 2393, 2394, 0, 2396, 2397, + 0, 2398, 0, 0, 0, 0, 1126, 1214, 2402, 1126, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2410, + 0, 0, 0, 2411, 2412, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1215, 0, 0, 0, 4520, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1216, 0, 0, + 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, + 0, 0, 0, 5421, 2502, 4625, 0, 0, 1218, 0, + 0, 0, 0, 0, 0, 0, 4520, 175, 176, 1219, + 0, 0, 0, 0, 0, 0, 0, 4627, 0, 0, + 0, 0, 0, 0, 0, 4629, 0, 0, 0, 0, + 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2058, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5422, 0, -960, + 0, -960, 0, 0, -2281, 1221, 0, 0, 1222, 0, + 1223, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2581, 0, 0, 0, 0, 0, 2058, 0, 4521, + 0, 0, 0, 0, 0, 0, 0, 1224, 1225, 0, + 0, 0, 0, 1226, 1227, 0, 0, 0, 2610, 0, + 2615, 0, 0, 0, 0, 0, 0, 4631, 0, 0, + 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1229, 0, 0, 0, 2638, 0, 0, 4633, 0, + 0, 0, 0, 0, 0, 0, 4523, 0, 0, 0, + 0, 0, 1230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4635, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1126, 1126, 0, 0, 4523, 1126, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4524, 4525, 4526, 1231, 0, 0, 1126, + 0, 1126, 0, 1126, 0, 1126, 0, 0, 0, 2710, + 0, 1232, 0, 0, 0, 4527, 0, 0, 0, 0, + 1233, 0, 0, 1234, 1235, 1126, 0, 0, 0, 0, + 0, 1577, 0, 0, 4524, 4525, 4526, 0, 1236, 0, + 0, 0, 0, 0, 0, 1126, 1126, 0, 0, 0, + 1126, 0, 1126, 0, 1126, 0, 4527, 4636, 0, 1126, + 0, 0, 0, 0, 0, 4528, 0, 4529, 0, 0, + 0, 1126, 0, 0, 0, 1237, 0, 0, 0, 0, + 0, 0, 1238, 0, 0, 0, 4530, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1577, 0, 0, 0, + 0, -3285, 1126, 1239, 4531, 0, 4528, 0, 4529, 0, + 0, 4532, 0, 0, 0, 0, 1126, 0, 0, 0, + 1126, 0, 0, 0, 0, -960, 4533, 4530, 0, 0, + 0, 0, 0, 0, 0, 0, 4534, 0, 1126, 0, + 4638, 0, 0, 0, 0, 4531, 0, 4640, 0, 0, + 0, 4535, 4532, 0, -3285, 1577, 0, 0, 0, 0, + 0, 1240, 0, 0, 0, 0, 0, 4533, 0, 2879, + 0, 0, 0, 0, 0, 0, 0, 4534, 0, 0, + 4642, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4535, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4536, 0, + 0, 2931, 0, 1126, 0, 0, 0, 0, 4537, 2938, + 2939, 0, 0, 1126, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1126, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4536, + 0, 0, 0, 0, 4538, 0, 0, 0, 0, 4537, + 0, 0, 0, 0, 0, 0, 0, 4539, 0, 4644, + 0, 0, 0, 0, 2958, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4538, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4540, 4539, 0, + 2993, 2995, 2997, 4541, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4540, 0, + 0, 0, 0, 0, 4541, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4542, 0, 0, 0, 0, 0, 0, 4543, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3074, 0, 0, 0, 0, 0, 0, 0, 0, 4544, + 0, 0, 4542, 0, 0, 0, 3082, 0, 3083, 4543, + 0, 0, 0, 0, 4545, 4546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4547, 0, 0, + 0, 0, 0, 0, 0, 0, 3105, 0, 0, 0, + 4544, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4545, 4546, 0, 0, 0, + 0, 0, 0, 0, 3121, 0, 0, 0, 4547, 0, + 0, 0, 0, 0, 0, 0, 0, 3158, 0, 0, + 0, 0, 1126, 1126, 0, 1126, 0, 0, 0, 0, + 3158, 0, 0, 0, 0, 0, 1126, 0, 1126, 0, + 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1126, 0, 1126, 3184, 1126, 0, 1126, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1126, 1126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, + 2615, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 0, 1126, 1126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1126, 0, 0, 0, 1126, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3314, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3405, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1126, 1126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3536, 0, 0, 0, 3538, 0, 0, 3539, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3816, 0, 0, 0, + 0, 3820, 3821, 3822, 3823, 0, 3824, 0, 3825, 3826, + 0, 0, 0, 0, 0, 0, 0, 0, 1126, 3830, + 3831, 0, 0, 1577, 3832, 3833, 3834, 3835, 0, 0, + 3836, 3837, 0, 0, 3839, 0, 3841, 0, 3843, 0, + 3845, 0, 0, 0, 3847, 0, 0, 0, 0, 0, + 0, 2344, 0, 3850, 0, 2344, 0, 3853, 0, 3854, + 0, 0, 3855, 3856, 3858, 3859, 0, 0, 3860, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 3867, 0, 3868, 3869, 3870, 0, + 0, 3871, 0, 0, 0, 0, 0, 3875, 0, 0, + 0, 0, 0, 0, 0, 1577, 0, 0, 0, 0, + 0, 0, 0, 1126, 1126, 0, 0, 0, 0, 0, + 3894, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3905, 0, 0, 0, 1126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3941, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3158, 0, 0, 0, 0, 0, + 0, 1126, 0, 1126, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2615, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2615, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1126, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4069, + 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1126, 1126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4208, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4295, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4300, + 0, 0, 4301, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1126, 0, 0, 1577, 1577, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4326, 4327, 0, 0, + 0, 4332, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1126, 0, + 0, 0, 4353, 0, 4354, 0, 4355, 0, 4356, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4401, 4402, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3314, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4421, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3158, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1126, 0, 0, 3158, + 0, 0, 0, 3158, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2615, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4581, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3314, 0, 0, 0, + 1577, 0, 0, 0, 0, 0, 0, 0, 3314, 1126, + 4593, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4807, 4808, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4815, + 0, 4816, 0, 0, 4817, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4837, 0, 4838, 0, + 4839, 0, 4840, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4846, 4847, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3158, 0, 0, 0, 0, 3158, 3158, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2615, 0, 0, + 0, 2615, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5079, 5080, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3314, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3158, 3158, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2615, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5361, 0, 5363, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5465, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5487, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3314, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3158, 3158, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3314, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2615, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5718, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5899, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 954, 0, 0, 0, 955, 956, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 957, 958, + 0, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 6008, 0, 0, 0, 0, 0, 0, 970, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 972, 973, 974, + 0, 0, 0, 0, 0, 0, 0, 975, 976, 0, + 977, 0, 0, 0, 0, 0, 0, 978, 979, 0, + 0, 980, 981, 982, 983, 0, 984, 985, 0, 986, + 987, 0, 0, 0, 0, 0, 0, 0, 988, 0, + 0, 989, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1714, 0, 0, 0, 0, 990, 991, + 992, 0, 993, 0, 0, 0, 0, 0, 0, 0, + 994, 995, 996, 0, 0, 0, 0, 0, 997, 0, + 0, 0, 0, 0, 0, 0, 998, 0, 0, 999, + 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, + 1001, 0, 1002, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1003, 1004, 0, 1005, + 0, 0, 0, 1006, 0, 0, 0, 1007, 0, 0, + 1008, 0, 1009, 1010, 1011, 1012, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1013, 1014, 1015, 0, 1016, 0, 0, 0, 0, + 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, + 0, 0, 1020, 1021, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1022, 0, 0, 0, 0, 0, 0, 1023, 1024, + 2615, 1025, 1026, 1027, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1028, 1029, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1030, 1031, 1032, 0, 0, + 40, 0, 0, 1033, 1034, 0, 0, 0, 0, 42, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 1035, 190, 191, 192, 193, + 194, 195, 1036, 197, 198, 199, 200, 201, 202, 203, + 1037, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 1038, 220, 221, 222, + 223, 224, 225, 226, 227, 1039, 229, 1040, 231, 1041, + 1042, 1043, 1044, 1045, 2615, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 1046, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 1047, 1048, 1049, 265, 1050, 1051, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 1052, 312, 313, 314, 315, 316, 1053, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 1054, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 1055, 1056, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 1057, 393, 1058, 395, 396, + 397, 398, 399, 1059, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 1060, 1061, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 1062, 428, 429, 430, 431, 432, 433, 1063, 435, 436, + 437, 438, 439, 440, 441, 1064, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 1065, 455, 456, + 457, 458, 459, 460, 1066, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 1067, 493, 494, 495, 496, + 497, 1068, 1069, 500, 501, 502, 503, 504, 1070, 506, + 507, 508, 509, 510, 511, 1071, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 1072, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 1073, 1074, 1075, 1076, 564, 565, + 566, 567, 1077, 1078, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 1079, 584, 1080, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 1081, 1082, 598, 1083, 600, 601, 602, 0, 603, 604, + 605, 1084, 0, 0, 0, 0, 0, 0, 0, 0, + 1085, 1086, 0, 0, 0, 954, 1087, 0, 0, 955, + 956, 1088, 0, 0, 0, 1089, 1090, 0, 0, 1091, + 957, 958, 0, 959, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, + 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 973, 974, 0, 0, 0, 2328, 0, 0, 0, 975, + 976, 0, 977, 0, 0, 0, 0, 0, 0, 978, + 979, 0, 0, 980, 981, 982, 983, 0, 984, 985, + 0, 986, 987, 0, 0, 0, 0, 0, 0, 0, + 988, 0, 0, 989, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 990, 991, 992, 0, 993, 0, 0, 0, 0, 0, + 0, 0, 994, 995, 996, 0, 0, 0, 0, 0, + 997, 0, 0, 0, 0, 0, 0, 0, 998, 0, + 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, + 1000, 2329, 1001, 0, 1002, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1003, 1004, + 0, 1005, 0, 0, 0, 1006, 0, 0, 0, 1007, + 0, 0, 1008, 0, 1009, 1010, 1011, 1012, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1013, 1014, 1015, 0, 1016, 0, 0, + 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, + 0, 0, 0, 0, 1020, 1021, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, + 1023, 1024, 0, 1025, 1026, 1027, 0, 0, 0, 0, + 0, 0, 0, 0, 2330, 0, 1028, 1029, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1030, 1031, 1032, + 0, 0, 0, 0, 0, 1033, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 1035, 190, 191, + 192, 193, 194, 195, 1036, 197, 198, 199, 200, 201, + 202, 203, 1037, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 1038, 220, + 221, 222, 223, 224, 225, 226, 227, 1039, 229, 1040, + 231, 1041, 1042, 1043, 1044, 1045, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 1046, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 1047, 1048, 1049, 265, 1050, 1051, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 1052, 312, 313, 314, 315, + 316, 1053, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 1054, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 1055, 1056, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 1057, 393, 1058, + 395, 396, 397, 398, 399, 1059, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 1060, 1061, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 1062, 428, 429, 430, 431, 432, 433, 1063, + 435, 436, 437, 438, 439, 440, 441, 1064, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 1065, + 455, 456, 457, 458, 459, 460, 1066, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 1067, 493, 494, + 495, 496, 497, 1068, 1069, 500, 501, 502, 503, 504, + 1070, 506, 507, 508, 509, 510, 511, 1071, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 1072, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 1073, 1074, 1075, 1076, + 564, 565, 566, 567, 1077, 1078, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1079, + 584, 1080, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 1081, 1082, 598, 1083, 600, 601, 602, 0, + 603, 604, 605, 1084, 0, 0, 0, 0, 0, 0, + 0, 0, 1085, 1086, 0, 0, 0, 954, 1087, 0, + 0, 955, 956, 1088, 0, 0, 0, 1089, 1090, 0, + 0, 1091, 957, 958, 0, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, + 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, + 3154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3155, 972, 973, 974, 0, 0, 0, 0, 0, 0, + 0, 975, 976, 0, 977, 0, 0, 0, 0, 0, + 0, 978, 979, 0, 0, 980, 981, 982, 983, 0, + 984, 985, 0, 986, 987, 0, 0, 0, 0, 0, + 0, 0, 3156, 0, 0, 989, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 990, 991, 992, 0, 993, 0, 0, 0, + 0, 0, 0, 0, 994, 995, 996, 0, 0, 0, + 0, 0, 997, 0, 0, 0, 0, 0, 0, 0, + 998, 0, 0, 999, 0, 0, 0, 0, 0, 0, + 0, 0, 1000, 0, 1001, 0, 1002, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1003, 1004, 0, 1005, 0, 0, 0, 1006, 0, 0, + 0, 1007, 0, 0, 1008, 0, 1009, 1010, 1011, 1012, + 0, 3157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1013, 1014, 1015, 0, 1016, + 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, + 0, 0, 0, 0, 0, 0, 1020, 1021, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, + 0, 0, 1023, 1024, 0, 1025, 1026, 1027, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, + 1031, 1032, 0, 0, 0, 0, 0, 1033, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 1035, + 190, 191, 192, 193, 194, 195, 1036, 197, 198, 199, + 200, 201, 202, 203, 1037, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 1038, 220, 221, 222, 223, 224, 225, 226, 227, 1039, + 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 1046, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 1047, 1048, 1049, 265, 1050, 1051, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 1052, 312, 313, + 314, 315, 316, 1053, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 1054, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 1055, 1056, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 1057, + 393, 1058, 395, 396, 397, 398, 399, 1059, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 1060, 1061, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 1062, 428, 429, 430, 431, 432, + 433, 1063, 435, 436, 437, 438, 439, 440, 441, 1064, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 1065, 455, 456, 457, 458, 459, 460, 1066, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 1067, + 493, 494, 495, 496, 497, 1068, 1069, 500, 501, 502, + 503, 504, 1070, 506, 507, 508, 509, 510, 511, 1071, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 1072, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 1073, 1074, + 1075, 1076, 564, 565, 566, 567, 1077, 1078, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 1079, 584, 1080, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 1081, 1082, 598, 1083, 600, 601, + 602, 0, 603, 604, 605, 1084, 0, 0, 0, 0, + 0, 0, 0, 0, 1085, 1086, 0, 0, 0, 954, + 1087, 0, 0, 955, 956, 1088, 0, 0, 0, 1089, + 1090, 0, 0, 1091, 957, 958, 0, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 0, 0, + 0, 0, 0, 0, 0, 970, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 972, 973, 974, 0, 0, 0, 0, + 0, 0, 0, 975, 976, 0, 977, 0, 0, 0, + 0, 0, 0, 978, 979, 0, 0, 980, 981, 982, + 983, 0, 984, 985, 0, 986, 987, 0, 0, 0, + 0, 0, 0, 0, 988, 0, 0, 989, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 990, 991, 992, 0, 993, 0, + 0, 0, 0, 0, 0, 0, 994, 995, 996, 0, + 0, 0, 0, 0, 997, 0, 0, 0, 0, 0, + 0, 0, 998, 0, 0, 999, 0, 0, 0, 0, + 0, 0, 0, 0, 1000, 0, 1001, 0, 1002, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1003, 1004, 0, 1005, 0, 0, 0, 1006, + 0, 0, 0, 1007, 0, 0, 1008, 0, 1009, 1010, + 1011, 1012, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, + 0, 1016, 0, 0, 0, 0, 0, 0, 1017, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 1019, 0, 0, 0, 0, 0, 0, 0, 1020, 1021, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, + 0, 0, 0, 0, 1023, 1024, 0, 1025, 1026, 1027, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1028, 1029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1030, 1031, 1032, 0, 0, 0, 0, 0, 1033, + 1034, 0, 1587, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 1035, 190, 191, 192, 193, 194, 195, 1036, 197, + 198, 199, 200, 201, 202, 203, 1037, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 1038, 220, 221, 222, 223, 224, 225, 226, + 227, 1039, 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 1046, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 1047, 1048, 1049, 265, + 1050, 1051, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 1052, + 312, 313, 314, 315, 316, 1053, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 1054, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 1055, + 1056, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 1057, 393, 1058, 395, 396, 397, 398, 399, 1059, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 1060, + 1061, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 1062, 428, 429, 430, + 431, 432, 433, 1063, 435, 436, 437, 438, 439, 440, + 441, 1064, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 1065, 455, 456, 457, 458, 459, 460, + 1066, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 1067, 493, 494, 495, 496, 497, 1068, 1069, 500, + 501, 502, 503, 504, 1070, 506, 507, 508, 509, 510, + 511, 1071, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 1072, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 1073, 1074, 1075, 1076, 564, 565, 566, 567, 1077, 1078, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 1079, 584, 1080, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 1081, 1082, 598, 1083, + 600, 601, 602, 0, 603, 604, 605, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 1085, 1086, 0, 0, + 0, 954, 1087, 0, 0, 955, 956, 1088, 0, 0, + 0, 1089, 1090, 0, 0, 1091, 957, 958, 0, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 0, 0, 0, 0, 0, 0, 0, 970, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 971, 972, 973, 974, 0, 0, + 0, 0, 0, 0, 0, 975, 976, 0, 977, 0, + 0, 0, 0, 0, 0, 978, 979, 0, 0, 980, + 981, 982, 983, 0, 984, 985, 0, 986, 987, 0, + 0, 0, 0, 0, 0, 0, 2612, 0, 0, 989, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 990, 991, 992, 0, + 993, 0, 0, 0, 0, 0, 0, 0, 994, 995, + 996, 0, 0, 0, 0, 0, 997, 0, 2613, 0, + 0, 0, 0, 0, 998, 0, 0, 999, 0, 0, + 0, 0, 0, 0, 0, 0, 1000, 0, 1001, 0, + 1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1003, 1004, 0, 1005, 0, 0, + 0, 1006, 0, 0, 0, 1007, 0, 0, 1008, 0, + 1009, 1010, 1011, 1012, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, + 1014, 1015, 0, 1016, 0, 0, 0, 0, 0, 0, + 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, + 1020, 1021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022, + 0, 0, 0, 0, 0, 0, 1023, 1024, 0, 1025, + 1026, 1027, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1028, 1029, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1030, 1031, 1032, 0, 0, 0, 0, + 0, 1033, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 1035, 190, 191, 192, 193, 194, 195, + 1036, 197, 198, 199, 200, 201, 202, 203, 1037, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 1038, 220, 221, 222, 223, 224, + 225, 226, 227, 1039, 229, 1040, 231, 1041, 1042, 1043, + 1044, 1045, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 1046, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 1047, 1048, + 1049, 265, 1050, 1051, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 1052, 312, 313, 314, 315, 316, 1053, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 1054, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 1055, 1056, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 1057, 393, 1058, 395, 396, 397, 398, + 399, 1059, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 1060, 1061, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 1062, 428, + 429, 430, 431, 432, 433, 1063, 435, 436, 437, 438, + 439, 440, 441, 1064, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 1065, 455, 456, 457, 458, + 459, 460, 1066, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 1067, 493, 494, 495, 496, 497, 1068, + 1069, 500, 501, 502, 503, 504, 1070, 506, 507, 508, + 509, 510, 511, 1071, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 1072, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 1073, 1074, 1075, 1076, 564, 565, 566, 567, + 1077, 1078, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 1079, 584, 1080, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 1081, 1082, + 598, 1083, 600, 601, 602, 0, 603, 604, 605, 1084, + 0, 0, 0, 0, 0, 0, 0, 0, 1085, 1086, + 0, 0, 0, 954, 1087, 0, 0, 955, 956, 1088, + 0, 0, 0, 1089, 1090, 0, 0, 1091, 957, 958, + 0, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 0, 0, 0, 0, 0, 0, 0, 970, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 972, 973, 974, + 0, 0, 0, 0, 0, 0, 0, 975, 976, 0, + 977, 0, 0, 0, 0, 0, 0, 978, 979, 0, + 0, 980, 981, 982, 983, 0, 984, 985, 0, 986, + 987, 0, 0, 0, 0, 0, 0, 0, 988, 0, + 0, 989, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 990, 991, + 992, 0, 993, 0, 0, 0, 2992, 0, 0, 0, + 994, 995, 996, 0, 0, 0, 0, 0, 997, 0, + 0, 0, 0, 0, 0, 0, 998, 0, 0, 999, + 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, + 1001, 0, 1002, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1003, 1004, 0, 1005, + 0, 0, 0, 1006, 0, 0, 0, 1007, 0, 0, + 1008, 0, 1009, 1010, 1011, 1012, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1013, 1014, 1015, 0, 1016, 0, 0, 0, 0, + 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, + 0, 0, 1020, 1021, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1022, 0, 0, 0, 0, 0, 0, 1023, 1024, + 0, 1025, 1026, 1027, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1028, 1029, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1030, 1031, 1032, 0, 0, + 0, 0, 0, 1033, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 1035, 190, 191, 192, 193, + 194, 195, 1036, 197, 198, 199, 200, 201, 202, 203, + 1037, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 1038, 220, 221, 222, + 223, 224, 225, 226, 227, 1039, 229, 1040, 231, 1041, + 1042, 1043, 1044, 1045, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 1046, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 1047, 1048, 1049, 265, 1050, 1051, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 1052, 312, 313, 314, 315, 316, 1053, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 1054, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 1055, 1056, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 1057, 393, 1058, 395, 396, + 397, 398, 399, 1059, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 1060, 1061, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 1062, 428, 429, 430, 431, 432, 433, 1063, 435, 436, + 437, 438, 439, 440, 441, 1064, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 1065, 455, 456, + 457, 458, 459, 460, 1066, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 1067, 493, 494, 495, 496, + 497, 1068, 1069, 500, 501, 502, 503, 504, 1070, 506, + 507, 508, 509, 510, 511, 1071, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 1072, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 1073, 1074, 1075, 1076, 564, 565, + 566, 567, 1077, 1078, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 1079, 584, 1080, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 1081, 1082, 598, 1083, 600, 601, 602, 0, 603, 604, + 605, 1084, 0, 0, 0, 0, 0, 0, 0, 0, + 1085, 1086, 0, 0, 0, 954, 1087, 0, 0, 955, + 956, 1088, 0, 0, 0, 1089, 1090, 0, 0, 1091, + 957, 958, 0, 959, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, + 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 973, 974, 0, 0, 0, 0, 0, 0, 0, 975, + 976, 0, 977, 0, 0, 0, 0, 0, 0, 978, + 979, 0, 0, 980, 981, 982, 983, 0, 984, 985, + 0, 986, 987, 0, 0, 0, 0, 0, 0, 0, + 988, 0, 0, 989, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 990, 991, 992, 0, 993, 0, 0, 0, 2994, 0, + 0, 0, 994, 995, 996, 0, 0, 0, 0, 0, + 997, 0, 0, 0, 0, 0, 0, 0, 998, 0, + 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, + 1000, 0, 1001, 0, 1002, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1003, 1004, + 0, 1005, 0, 0, 0, 1006, 0, 0, 0, 1007, + 0, 0, 1008, 0, 1009, 1010, 1011, 1012, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1013, 1014, 1015, 0, 1016, 0, 0, + 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, + 0, 0, 0, 0, 1020, 1021, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, + 1023, 1024, 0, 1025, 1026, 1027, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1028, 1029, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1030, 1031, 1032, + 0, 0, 0, 0, 0, 1033, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 1035, 190, 191, + 192, 193, 194, 195, 1036, 197, 198, 199, 200, 201, + 202, 203, 1037, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 1038, 220, + 221, 222, 223, 224, 225, 226, 227, 1039, 229, 1040, + 231, 1041, 1042, 1043, 1044, 1045, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 1046, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 1047, 1048, 1049, 265, 1050, 1051, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 1052, 312, 313, 314, 315, + 316, 1053, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 1054, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 1055, 1056, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 1057, 393, 1058, + 395, 396, 397, 398, 399, 1059, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 1060, 1061, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 1062, 428, 429, 430, 431, 432, 433, 1063, + 435, 436, 437, 438, 439, 440, 441, 1064, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 1065, + 455, 456, 457, 458, 459, 460, 1066, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 1067, 493, 494, + 495, 496, 497, 1068, 1069, 500, 501, 502, 503, 504, + 1070, 506, 507, 508, 509, 510, 511, 1071, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 1072, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 1073, 1074, 1075, 1076, + 564, 565, 566, 567, 1077, 1078, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1079, + 584, 1080, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 1081, 1082, 598, 1083, 600, 601, 602, 0, + 603, 604, 605, 1084, 0, 0, 0, 0, 0, 0, + 0, 0, 1085, 1086, 0, 0, 0, 954, 1087, 0, + 0, 955, 956, 1088, 0, 0, 0, 1089, 1090, 0, + 0, 1091, 957, 958, 0, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, + 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 971, 972, 973, 974, 0, 0, 0, 0, 0, 0, + 0, 975, 976, 0, 977, 0, 0, 0, 0, 0, + 0, 978, 979, 0, 0, 980, 981, 982, 983, 0, + 984, 985, 0, 986, 987, 0, 0, 0, 0, 0, + 0, 0, 988, 0, 0, 989, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 990, 991, 992, 0, 993, 0, 0, 0, + 2996, 0, 0, 0, 994, 995, 996, 0, 0, 0, + 0, 0, 997, 0, 0, 0, 0, 0, 0, 0, + 998, 0, 0, 999, 0, 0, 0, 0, 0, 0, + 0, 0, 1000, 0, 1001, 0, 1002, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1003, 1004, 0, 1005, 0, 0, 0, 1006, 0, 0, + 0, 1007, 0, 0, 1008, 0, 1009, 1010, 1011, 1012, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1013, 1014, 1015, 0, 1016, + 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, + 0, 0, 0, 0, 0, 0, 1020, 1021, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, + 0, 0, 1023, 1024, 0, 1025, 1026, 1027, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, + 1031, 1032, 0, 0, 0, 0, 0, 1033, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 1035, + 190, 191, 192, 193, 194, 195, 1036, 197, 198, 199, + 200, 201, 202, 203, 1037, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 1038, 220, 221, 222, 223, 224, 225, 226, 227, 1039, + 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 1046, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 1047, 1048, 1049, 265, 1050, 1051, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 1052, 312, 313, + 314, 315, 316, 1053, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 1054, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 1055, 1056, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 1057, + 393, 1058, 395, 396, 397, 398, 399, 1059, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 1060, 1061, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 1062, 428, 429, 430, 431, 432, + 433, 1063, 435, 436, 437, 438, 439, 440, 441, 1064, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 1065, 455, 456, 457, 458, 459, 460, 1066, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 1067, + 493, 494, 495, 496, 497, 1068, 1069, 500, 501, 502, + 503, 504, 1070, 506, 507, 508, 509, 510, 511, 1071, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 1072, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 1073, 1074, + 1075, 1076, 564, 565, 566, 567, 1077, 1078, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 1079, 584, 1080, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 1081, 1082, 598, 1083, 600, 601, + 602, 0, 603, 604, 605, 1084, 0, 0, 0, 0, + 0, 0, 0, 0, 1085, 1086, 0, 0, 0, 954, + 1087, 0, 0, 955, 956, 1088, 0, 0, 0, 1089, + 1090, 0, 0, 1091, 957, 958, 0, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 0, 0, + 0, 0, 0, 0, 0, 970, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 972, 973, 974, 0, 0, 0, 0, + 0, 0, 0, 975, 976, 0, 977, 0, 0, 0, + 0, 0, 0, 978, 979, 0, 0, 980, 981, 982, + 983, 0, 984, 985, 0, 986, 987, 0, 0, 0, + 0, 0, 0, 0, 4899, 0, 0, 989, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 990, 991, 992, 0, 993, 0, + 0, 0, 0, 0, 0, 0, 994, 995, 996, 0, + 0, 0, 0, 0, 997, 0, 2613, 0, 0, 0, + 0, 0, 998, 0, 0, 999, 0, 0, 0, 0, + 0, 0, 0, 0, 1000, 0, 1001, 0, 1002, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1003, 1004, 0, 1005, 0, 0, 0, 1006, + 0, 0, 0, 1007, 0, 0, 1008, 0, 1009, 1010, + 1011, 1012, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, + 0, 1016, 0, 0, 0, 0, 0, 0, 1017, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 1019, 0, 0, 0, 0, 0, 0, 0, 1020, 1021, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, + 0, 0, 0, 0, 1023, 1024, 0, 1025, 1026, 1027, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1028, 1029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1030, 1031, 1032, 0, 0, 0, 0, 0, 1033, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 1035, 190, 191, 192, 193, 194, 195, 1036, 197, + 198, 199, 200, 201, 202, 203, 1037, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 1038, 220, 221, 222, 223, 224, 225, 226, + 227, 1039, 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 1046, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 1047, 1048, 1049, 265, + 1050, 1051, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 1052, + 312, 313, 314, 315, 316, 1053, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 1054, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 1055, + 1056, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 1057, 393, 1058, 395, 396, 397, 398, 399, 1059, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 1060, + 1061, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 1062, 428, 429, 430, + 431, 432, 433, 1063, 435, 436, 437, 438, 439, 440, + 441, 1064, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 1065, 455, 456, 457, 458, 459, 460, + 1066, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 1067, 493, 494, 495, 496, 497, 1068, 1069, 500, + 501, 502, 503, 504, 1070, 506, 507, 508, 509, 510, + 511, 1071, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 1072, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 1073, 1074, 1075, 1076, 564, 565, 566, 567, 1077, 1078, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 1079, 584, 1080, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 1081, 1082, 598, 1083, + 600, 601, 602, 0, 603, 604, 605, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 1085, 1086, 0, 0, + 0, 954, 1087, 0, 0, 955, 956, 1088, 0, 0, + 0, 1089, 1090, 0, 0, 1091, 957, 958, 0, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 0, 0, 0, 0, 0, 0, 0, 970, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 971, 972, 973, 974, 0, 0, + 0, 0, 0, 0, 0, 975, 976, 0, 977, 0, + 0, 0, 0, 0, 0, 978, 979, 0, 0, 980, + 981, 982, 983, 0, 984, 985, 0, 986, 987, 0, + 0, 0, 0, 0, 0, 0, 988, 0, 0, 989, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 990, 991, 992, 0, + 993, 0, 0, 0, 0, 0, 0, 0, 994, 995, + 996, 0, 0, 0, 0, 0, 997, 0, 0, 0, + 0, 0, 0, 0, 998, 0, 0, 999, 0, 0, + 0, 0, 0, 0, 0, 0, 1000, 0, 1001, 0, + 1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1003, 1004, 0, 1005, 0, 0, + 0, 1006, 0, 0, 0, 1007, 0, 0, 1008, 0, + 1009, 1010, 1011, 1012, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, + 1014, 1015, 0, 1016, 0, 0, 0, 0, 0, 0, + 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, + 1020, 1021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022, + 0, 0, 0, 0, 0, 0, 1023, 1024, 0, 1025, + 1026, 1027, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1028, 1029, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1030, 1031, 1032, 0, 0, 0, 0, + 0, 1033, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 1035, 190, 191, 192, 193, 194, 195, + 1036, 197, 198, 199, 200, 201, 202, 203, 1037, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 1038, 220, 221, 222, 223, 224, + 225, 226, 227, 1039, 229, 1040, 231, 1041, 1042, 1043, + 1044, 1045, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 1046, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 1047, 1048, + 1049, 265, 1050, 1051, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 1052, 312, 313, 314, 315, 316, 1053, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 1054, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 1055, 1056, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 1057, 393, 1058, 395, 396, 397, 398, + 399, 1059, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 1060, 1061, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 1062, 428, + 429, 430, 431, 432, 433, 1063, 435, 436, 437, 438, + 439, 440, 441, 1064, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 1065, 455, 456, 457, 458, + 459, 460, 1066, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 1067, 493, 494, 495, 496, 497, 1068, + 1069, 500, 501, 502, 503, 504, 1070, 506, 507, 508, + 509, 510, 511, 1071, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 1072, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 1073, 1074, 1075, 1076, 564, 565, 566, 567, + 1077, 1078, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 1079, 584, 1080, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 1081, 1082, + 598, 1083, 600, 601, 602, 0, 603, 604, 605, 1084, + 0, 0, 0, 0, 0, 0, 0, 0, 1085, 1086, + 0, 0, 0, 954, 1087, 0, 0, 955, 956, 1088, + 0, 0, 0, 1089, 1090, 0, 0, 1091, 957, 958, + 0, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 0, 0, 0, 0, 0, 0, 0, 970, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 972, 973, 974, + 0, 0, 0, 0, 0, 0, 0, 975, 976, 0, + 977, 0, 0, 0, 0, 0, 0, 978, 979, 0, + 0, 980, 981, 982, 983, 0, 984, 985, 0, 986, + 987, 0, 0, 0, 0, 0, 0, 0, 988, 0, + 0, 989, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 990, 991, + 992, 0, 993, 0, 0, 0, 0, 0, 0, 0, + 994, 995, 996, 0, 0, 0, 0, 0, 997, 0, + 0, 0, 0, 0, 0, 0, 998, 0, 0, 999, + 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, + 1001, 0, 1002, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1003, 1004, 0, 1005, + 0, 0, 0, 1006, 0, 0, 0, 1007, 0, 0, + 1008, 0, 1009, 1010, 1011, 1012, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1013, 1014, 1015, 0, 1016, 0, 0, 0, 0, + 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, + 0, 0, 1020, 1021, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1022, 0, 0, 0, 0, 0, 0, 1023, 1024, + 0, 1025, 1026, 1027, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1028, 1029, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1030, 1031, 1032, 0, 0, + 0, 0, 0, 1033, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 1035, 190, 191, 192, 193, + 194, 195, 1036, 197, 198, 199, 200, 201, 202, 203, + 1037, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 1038, 220, 221, 222, + 223, 224, 225, 226, 227, 1039, 229, 1040, 231, 1041, + 1042, 1043, 1044, 1045, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 1046, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 1047, 1048, 1049, 265, 1050, 1051, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 1052, 312, 313, 314, 315, 316, 1053, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 1054, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 1055, 1056, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 1057, 393, 1058, 395, 396, + 397, 398, 399, 1059, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 1060, 1061, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 1062, 428, 429, 430, 431, 432, 433, 1063, 435, 436, + 437, 438, 439, 440, 441, 1064, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 1065, 455, 456, + 457, 458, 459, 460, 1066, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 1067, 493, 494, 495, 496, + 497, 1068, 1069, 500, 501, 502, 503, 504, 1070, 506, + 507, 508, 509, 510, 511, 1071, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 1072, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 1073, 1074, 1075, 1076, 564, 565, + 566, 567, 1077, 1078, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 1079, 584, 1080, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 1081, 1082, 598, 1083, 600, 601, 602, 0, 603, 604, + 605, 1084, 0, 0, 0, 0, 0, 0, 0, 0, + 1085, 1086, 0, 0, 0, 954, 1087, 0, 0, 955, + 956, 1614, 0, 0, 0, 1089, 1090, 0, 0, 1091, + 957, 958, 0, 959, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, + 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 973, 974, 0, 0, 0, 0, 0, 0, 0, 975, + 976, 0, 977, 0, 0, 0, 0, 0, 0, 978, + 979, 0, 0, 980, 981, 982, 983, 0, 984, 985, + 0, 986, 987, 0, 0, 0, 0, 0, 0, 0, + 988, 0, 0, 989, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 990, 991, 992, 0, 993, 0, 0, 0, 0, 0, + 0, 0, 994, 995, 996, 0, 0, 0, 0, 0, + 997, 0, 0, 0, 0, 0, 0, 0, 998, 0, + 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, + 1000, 0, 1001, 0, 1002, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1003, 1004, + 0, 1005, 0, 0, 0, 1006, 0, 0, 0, 1007, + 0, 0, 1008, 0, 1009, 1010, 1011, 1012, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1013, 1014, 1015, 0, 1016, 0, 0, + 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, + 0, 0, 0, 0, 1020, 1021, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, + 1023, 1024, 0, 1025, 1026, 1027, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1028, 1029, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1030, 1031, 1032, + 0, 0, 0, 0, 0, 1033, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 1035, 190, 191, + 192, 193, 194, 195, 1036, 197, 198, 199, 200, 201, + 202, 203, 1037, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 1038, 220, + 221, 222, 223, 224, 225, 226, 227, 1039, 229, 1040, + 231, 1041, 1042, 1043, 1044, 1045, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 1046, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 1047, 1048, 1049, 265, 1050, 1051, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 1052, 312, 313, 314, 315, + 316, 1053, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 1054, 2187, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 1055, 1056, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 1057, 393, 1058, + 395, 396, 397, 398, 399, 1059, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 1060, 1061, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 1062, 428, 429, 430, 431, 432, 433, 1063, + 435, 436, 437, 438, 439, 440, 441, 1064, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 1065, + 455, 456, 457, 458, 459, 460, 1066, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 1067, 493, 494, + 495, 496, 497, 1068, 1069, 500, 501, 502, 503, 504, + 1070, 506, 507, 508, 509, 510, 511, 1071, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 1072, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 1073, 1074, 1075, 1076, + 564, 565, 566, 567, 1077, 1078, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 2188, + 584, 1080, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 1081, 1082, 598, 1083, 600, 601, 602, 0, + 603, 604, 605, 1084, 0, 0, 0, 0, 0, 0, + 0, 0, 1085, 1086, 0, 0, 0, 954, 1087, 0, + 0, 955, 956, 1088, 0, 0, 0, 1089, 1090, 0, + 0, 1091, 957, 958, 0, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, + 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 971, 972, 973, 974, 0, 0, 0, 0, 0, 0, + 0, 975, 976, 0, 977, 0, 0, 0, 0, 0, + 0, 978, 979, 0, 0, 980, 981, 982, 983, 0, + 984, 985, 0, 986, 987, 0, 0, 0, 0, 0, + 0, 0, 988, 0, 0, 989, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 990, 991, 992, 0, 993, 0, 0, 0, + 0, 0, 0, 0, 994, 995, 996, 0, 0, 0, + 0, 0, 997, 0, 0, 0, 0, 0, 0, 0, + 998, 0, 0, 999, 0, 0, 0, 0, 0, 0, + 0, 0, 1000, 0, 1001, 0, 1002, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1003, 1004, 0, 1005, 0, 0, 0, 1006, 0, 0, + 0, 1007, 0, 0, 1008, 0, 1009, 1010, 1011, 1012, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1013, 1014, 1015, 0, 1016, + 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, + 0, 0, 0, 0, 0, 0, 1020, 1021, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, + 0, 0, 1023, 1024, 0, 1025, 1026, 1027, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, + 1031, 1032, 0, 0, 0, 0, 0, 1033, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 1035, + 190, 191, 192, 193, 194, 195, 1036, 197, 198, 199, + 200, 201, 202, 203, 1037, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 1038, 220, 221, 222, 223, 224, 225, 226, 227, 1039, + 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 1046, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 1047, 1048, 1049, 265, 1050, 1051, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 1052, 312, 313, + 314, 315, 316, 1053, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 1054, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 1055, 1056, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 1057, + 393, 1058, 395, 396, 397, 398, 399, 1059, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 1060, 1061, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 1062, 428, 429, 430, 431, 432, + 433, 1063, 435, 436, 437, 438, 439, 440, 441, 1064, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 1065, 455, 456, 457, 458, 459, 460, 1066, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 1067, + 493, 494, 495, 496, 497, 1068, 1069, 500, 501, 502, + 503, 504, 1070, 506, 507, 508, 509, 510, 511, 1071, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 1072, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 1073, 1074, + 1075, 1076, 564, 565, 566, 567, 1077, 1078, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 2188, 584, 1080, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 1081, 1082, 598, 1083, 600, 601, + 602, 0, 603, 604, 605, 1084, 0, 0, 0, 0, + 0, 0, 0, 0, 1085, 1086, 0, 0, 0, 954, + 1087, 0, 0, 955, 956, 1088, 0, 0, 0, 1089, + 1090, 0, 0, 1091, 957, 958, 0, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 0, 0, + 0, 0, 0, 0, 0, 970, 0, 0, 0, 0, + 0, 0, 2413, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 972, 973, 974, 0, 0, 0, 0, + 0, 0, 0, 975, 976, 0, 977, 0, 0, 0, + 0, 0, 0, 978, 979, 0, 0, 980, 981, 982, + 983, 0, 984, 985, 0, 986, 987, 0, 0, 0, + 0, 0, 0, 0, 988, 0, 0, 989, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 990, 991, 992, 0, 993, 0, + 0, 0, 0, 0, 0, 0, 994, 995, 996, 0, + 0, 0, 0, 0, 997, 0, 0, 0, 0, 0, + 0, 0, 998, 0, 0, 999, 0, 0, 0, 0, + 0, 0, 0, 0, 1000, 0, 1001, 0, 1002, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1003, 1004, 0, 1005, 0, 0, 0, 1006, + 0, 0, 0, 1007, 0, 0, 0, 0, 1009, 1010, + 1011, 1012, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, + 0, 1016, 0, 0, 0, 0, 0, 0, 1017, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 1019, 0, 0, 0, 0, 0, 0, 0, 1020, 1021, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, + 0, 0, 0, 0, 1023, 1024, 0, 1025, 1026, 1027, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1028, 1029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1030, 1031, 1032, 0, 0, 0, 0, 0, 1033, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 1035, 190, 191, 192, 193, 194, 2414, 1036, 197, + 198, 199, 200, 201, 202, 203, 1037, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 1038, 220, 221, 222, 223, 224, 225, 226, + 227, 1039, 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 1046, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 1047, 1048, 1049, 265, + 1050, 1051, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 1052, + 312, 313, 314, 315, 316, 1053, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 1054, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 1055, + 1056, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 1057, 393, 1058, 395, 396, 397, 398, 399, 1059, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 1060, + 1061, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 1062, 428, 429, 430, + 431, 432, 433, 1063, 435, 436, 437, 438, 439, 440, + 441, 1064, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 1065, 455, 456, 457, 458, 459, 460, + 1066, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 1067, 493, 494, 495, 496, 497, 1068, 1069, 500, + 501, 502, 503, 504, 1070, 506, 507, 508, 509, 510, + 511, 1071, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 1072, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 1073, 1074, 1075, 1076, 564, 565, 566, 567, 1077, 1078, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 1079, 584, 1080, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 1081, 1082, 598, 1083, + 600, 601, 602, 0, 603, 604, 605, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 1085, 1086, 0, 0, + 0, 954, 1087, 0, 0, 955, 956, 1088, 0, 0, + 0, 1089, 1090, 0, 0, 1091, 957, 958, 0, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 0, 0, 0, 0, 0, 0, 0, 970, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 971, 972, 973, 974, 0, 0, + 0, 0, 0, 0, 0, 975, 976, 0, 977, 0, + 0, 0, 0, 0, 0, 978, 979, 0, 0, 980, + 981, 982, 983, 0, 984, 985, 0, 986, 987, 0, + 0, 0, 0, 0, 0, 0, 988, 0, 0, 989, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 990, 991, 992, 0, + 993, 0, 0, 0, 0, 0, 0, 0, 994, 995, + 996, 0, 0, 0, 0, 0, 997, 0, 0, 0, + 0, 0, 0, 0, 998, 0, 0, 3846, 0, 0, + 0, 0, 0, 0, 0, 0, 1000, 0, 1001, 0, + 1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1003, 1004, 0, 1005, 0, 0, + 0, 1006, 0, 0, 0, 1007, 0, 0, 1008, 0, + 1009, 1010, 1011, 1012, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, + 1014, 1015, 0, 1016, 0, 0, 0, 0, 0, 0, + 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, + 1020, 1021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022, + 0, 0, 0, 0, 0, 0, 1023, 1024, 0, 1025, + 1026, 1027, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1028, 1029, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1030, 1031, 1032, 0, 0, 0, 0, + 0, 1033, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 1035, 190, 191, 192, 193, 194, 195, + 1036, 197, 198, 199, 200, 201, 202, 203, 1037, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 1038, 220, 221, 222, 223, 224, + 225, 226, 227, 1039, 229, 1040, 231, 1041, 1042, 1043, + 1044, 1045, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 1046, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 1047, 1048, + 1049, 265, 1050, 1051, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 1052, 312, 313, 314, 315, 316, 1053, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 1054, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 1055, 1056, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 1057, 393, 1058, 395, 396, 397, 398, + 399, 1059, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 1060, 1061, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 1062, 428, + 429, 430, 431, 432, 433, 1063, 435, 436, 437, 438, + 439, 440, 441, 1064, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 1065, 455, 456, 457, 458, + 459, 460, 1066, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 1067, 493, 494, 495, 496, 497, 1068, + 1069, 500, 501, 502, 503, 504, 1070, 506, 507, 508, + 509, 510, 511, 1071, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 1072, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 1073, 1074, 1075, 1076, 564, 565, 566, 567, + 1077, 1078, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 1079, 584, 1080, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 1081, 1082, + 598, 1083, 600, 601, 602, 0, 603, 604, 605, 1084, + 0, 0, 0, 0, 0, 0, 0, 0, 1085, 1086, + 0, 0, 0, 954, 1087, 0, 0, 955, 956, 1088, + 0, 0, 0, 1089, 1090, 0, 0, 1091, 957, 958, + 0, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 0, 0, 0, 0, 0, 0, 0, 970, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 972, 973, 974, + 0, 0, 0, 0, 0, 0, 0, 975, 976, 0, + 977, 0, 0, 0, 0, 0, 0, 978, 979, 0, + 0, 980, 981, 982, 983, 0, 984, 985, 0, 986, + 987, 0, 0, 0, 0, 0, 0, 0, 988, 0, + 0, 989, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 990, 991, + 992, 0, 993, 0, 0, 0, 0, 0, 0, 0, + 994, 995, 996, 0, 0, 0, 0, 0, 997, 0, + 0, 0, 0, 0, 0, 0, 998, 0, 0, 3866, + 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, + 1001, 0, 1002, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1003, 1004, 0, 1005, + 0, 0, 0, 1006, 0, 0, 0, 1007, 0, 0, + 1008, 0, 1009, 1010, 1011, 1012, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1013, 1014, 1015, 0, 1016, 0, 0, 0, 0, + 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, + 0, 0, 1020, 1021, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1022, 0, 0, 0, 0, 0, 0, 1023, 1024, + 0, 1025, 1026, 1027, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1028, 1029, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1030, 1031, 1032, 0, 0, + 0, 0, 0, 1033, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 1035, 190, 191, 192, 193, + 194, 195, 1036, 197, 198, 199, 200, 201, 202, 203, + 1037, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 1038, 220, 221, 222, + 223, 224, 225, 226, 227, 1039, 229, 1040, 231, 1041, + 1042, 1043, 1044, 1045, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 1046, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 1047, 1048, 1049, 265, 1050, 1051, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 1052, 312, 313, 314, 315, 316, 1053, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 1054, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 1055, 1056, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 1057, 393, 1058, 395, 396, + 397, 398, 399, 1059, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 1060, 1061, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 1062, 428, 429, 430, 431, 432, 433, 1063, 435, 436, + 437, 438, 439, 440, 441, 1064, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 1065, 455, 456, + 457, 458, 459, 460, 1066, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 1067, 493, 494, 495, 496, + 497, 1068, 1069, 500, 501, 502, 503, 504, 1070, 506, + 507, 508, 509, 510, 511, 1071, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 1072, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 1073, 1074, 1075, 1076, 564, 565, + 566, 567, 1077, 1078, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 1079, 584, 1080, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 1081, 1082, 598, 1083, 600, 601, 602, 0, 603, 604, + 605, 1084, 0, 0, 0, 0, 0, 0, 0, 0, + 1085, 1086, 0, 0, 0, 954, 1087, 0, 0, 955, + 956, 1088, 0, 0, 0, 1089, 1090, 0, 0, 1091, + 957, 958, 0, 959, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, + 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 973, 974, 0, 0, 0, 0, 0, 0, 0, 975, + 976, 0, 977, 0, 0, 0, 0, 0, 0, 978, + 979, 0, 0, 980, 981, 982, 983, 0, 984, 985, + 0, 986, 987, 0, 0, 0, 0, 0, 0, 0, + 988, 0, 0, 989, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 990, 991, 992, 0, 993, 0, 0, 0, 0, 0, + 0, 0, 994, 995, 996, 0, 0, 0, 0, 0, + 997, 0, 0, 0, 0, 0, 0, 0, 998, 0, + 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, + 1000, 0, 1001, 0, 1002, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1003, 1004, + 6095, 1005, 0, 0, 0, 1006, 0, 0, 0, 1007, + 0, 0, 0, 0, 1009, 1010, 1011, 1012, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1013, 1014, 1015, 0, 1016, 0, 0, + 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, + 0, 0, 0, 0, 1020, 1021, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, + 1023, 1024, 0, 1025, 1026, 1027, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1028, 1029, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1030, 1031, 1032, + 0, 0, 0, 0, 0, 1033, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 1035, 190, 191, + 192, 193, 194, 195, 1036, 197, 198, 199, 200, 201, + 202, 203, 1037, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 1038, 220, + 221, 222, 223, 224, 225, 226, 227, 1039, 229, 1040, + 231, 1041, 1042, 1043, 1044, 1045, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 1046, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 1047, 1048, 1049, 265, 1050, 1051, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 1052, 312, 313, 314, 315, + 316, 1053, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 1054, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 1055, 1056, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 1057, 393, 1058, + 395, 396, 397, 398, 399, 1059, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 1060, 1061, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 1062, 428, 429, 430, 431, 432, 433, 1063, + 435, 436, 437, 438, 439, 440, 441, 1064, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 1065, + 455, 456, 457, 458, 459, 460, 1066, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 1067, 493, 494, + 495, 496, 497, 1068, 1069, 500, 501, 502, 503, 504, + 1070, 506, 507, 508, 509, 510, 511, 1071, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 1072, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 1073, 1074, 1075, 1076, + 564, 565, 566, 567, 1077, 1078, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1079, + 584, 1080, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 1081, 1082, 598, 1083, 600, 601, 602, 0, + 603, 604, 605, 1084, 0, 0, 0, 0, 0, 0, + 0, 0, 1085, 1086, 0, 0, 0, 954, 1087, 0, + 0, 955, 956, 1088, 0, 0, 0, 1089, 1090, 0, + 0, 1091, 957, 958, 0, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, + 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 971, 972, 973, 974, 0, 0, 0, 0, 0, 0, + 0, 975, 976, 0, 977, 0, 0, 0, 0, 0, + 0, 978, 979, 0, 0, 980, 981, 982, 983, 0, + 984, 985, 0, 986, 987, 0, 0, 0, 0, 0, + 0, 0, 988, 0, 0, 989, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 990, 991, 992, 0, 993, 0, 0, 0, + 0, 0, 0, 0, 994, 995, 996, 0, 0, 0, + 0, 0, 997, 0, 0, 0, 0, 0, 0, 0, + 998, 0, 0, 1580, 0, 0, 0, 0, 0, 0, + 0, 0, 1000, 0, 1001, 0, 1002, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1003, 1004, 0, 1005, 0, 0, 0, 1006, 0, 0, + 0, 1007, 0, 0, 0, 0, 1009, 1010, 1011, 1012, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1013, 1014, 1015, 0, 1016, + 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, + 0, 0, 0, 0, 0, 0, 1020, 1021, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, + 0, 0, 1023, 1024, 0, 1025, 1026, 1027, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, + 1031, 1032, 0, 0, 0, 0, 0, 1033, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 1035, + 190, 191, 192, 193, 194, 195, 1036, 197, 198, 199, + 200, 201, 202, 203, 1037, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 1038, 220, 221, 222, 223, 224, 225, 226, 227, 1039, + 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 1046, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 1047, 1048, 1049, 265, 1050, 1051, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 1052, 312, 313, + 314, 315, 316, 1053, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 1054, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 1055, 1056, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 1057, + 393, 1058, 395, 396, 397, 398, 399, 1059, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 1060, 1061, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 1062, 428, 429, 430, 431, 432, + 433, 1063, 435, 436, 437, 438, 439, 440, 441, 1064, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 1065, 455, 456, 457, 458, 459, 460, 1066, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 1067, + 493, 494, 495, 496, 497, 1068, 1069, 500, 501, 502, + 503, 504, 1070, 506, 507, 508, 509, 510, 511, 1071, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 1072, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 1073, 1074, + 1075, 1076, 564, 565, 566, 567, 1077, 1078, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 1079, 584, 1080, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 1081, 1082, 598, 1083, 600, 601, + 602, 0, 603, 604, 605, 1084, 0, 0, 0, 0, + 0, 0, 0, 0, 1581, 1582, 0, 0, 0, 954, + 1087, 0, 0, 955, 956, 1088, 0, 0, 0, 1089, + 1090, 0, 0, 1091, 957, 958, 0, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 0, 0, + 0, 0, 0, 0, 0, 970, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 972, 973, 974, 0, 0, 0, 0, + 0, 0, 0, 975, 976, 0, 977, 0, 0, 0, + 0, 0, 0, 978, 979, 0, 0, 980, 981, 982, + 983, 0, 984, 985, 0, 986, 987, 0, 0, 0, + 0, 0, 0, 0, 988, 0, 0, 989, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 990, 991, 992, 0, 993, 0, + 0, 0, 0, 0, 0, 0, 994, 995, 996, 0, + 0, 0, 0, 0, 997, 0, 0, 0, 0, 0, + 0, 0, 998, 0, 0, 1707, 0, 0, 0, 0, + 0, 0, 0, 0, 1000, 0, 1001, 0, 1002, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1003, 1004, 0, 1005, 0, 0, 0, 1006, + 0, 0, 0, 1007, 0, 0, 0, 0, 1009, 1010, + 1011, 1012, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, + 0, 1016, 0, 0, 0, 0, 0, 0, 1017, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 1019, 0, 0, 0, 0, 0, 0, 0, 1020, 1021, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, + 0, 0, 0, 0, 1023, 1024, 0, 1025, 1026, 1027, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1028, 1029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1030, 1031, 1032, 0, 0, 0, 0, 0, 1033, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 1035, 190, 191, 192, 193, 194, 195, 1036, 197, + 198, 199, 200, 201, 202, 203, 1037, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 1038, 220, 221, 222, 223, 224, 225, 226, + 227, 1039, 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 1046, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 1047, 1048, 1049, 265, + 1050, 1051, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 1052, + 312, 313, 314, 315, 316, 1053, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 1054, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 1055, + 1056, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 1057, 393, 1058, 395, 396, 397, 398, 399, 1059, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 1060, + 1061, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 1062, 428, 429, 430, + 431, 432, 433, 1063, 435, 436, 437, 438, 439, 440, + 441, 1064, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 1065, 455, 456, 457, 458, 459, 460, + 1066, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 1067, 493, 494, 495, 496, 497, 1068, 1069, 500, + 501, 502, 503, 504, 1070, 506, 507, 508, 509, 510, + 511, 1071, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 1072, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 1073, 1074, 1075, 1076, 564, 565, 566, 567, 1077, 1078, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 1079, 584, 1080, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 1081, 1082, 598, 1083, + 600, 601, 602, 0, 603, 604, 605, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 1581, 1582, 0, 0, + 0, 954, 1087, 0, 0, 955, 956, 1088, 0, 0, + 0, 1089, 1090, 0, 0, 1091, 957, 958, 0, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 0, 0, 0, 0, 0, 0, 0, 970, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 971, 972, 973, 974, 0, 0, + 0, 0, 0, 0, 0, 975, 976, 0, 977, 0, + 0, 0, 0, 0, 0, 978, 979, 0, 0, 980, + 981, 982, 983, 0, 984, 985, 0, 986, 987, 0, + 0, 0, 0, 0, 0, 0, 988, 0, 0, 989, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 990, 991, 992, 0, + 993, 0, 0, 0, 0, 0, 0, 0, 994, 995, + 996, 0, 0, 0, 0, 0, 997, 0, 0, 0, + 0, 0, 0, 0, 998, 0, 0, 1709, 0, 0, + 0, 0, 0, 0, 0, 0, 1000, 0, 1001, 0, + 1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1003, 1004, 0, 1005, 0, 0, + 0, 1006, 0, 0, 0, 1007, 0, 0, 0, 0, + 1009, 1010, 1011, 1012, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, + 1014, 1015, 0, 1016, 0, 0, 0, 0, 0, 0, + 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1018, 1019, 0, 0, 0, 0, 0, 0, 0, + 1020, 1021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022, + 0, 0, 0, 0, 0, 0, 1023, 1024, 0, 1025, + 1026, 1027, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1028, 1029, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1030, 1031, 1032, 0, 0, 0, 0, + 0, 1033, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 1035, 190, 191, 192, 193, 194, 195, + 1036, 197, 198, 199, 200, 201, 202, 203, 1037, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 1038, 220, 221, 222, 223, 224, + 225, 226, 227, 1039, 229, 1040, 231, 1041, 1042, 1043, + 1044, 1045, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 1046, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 1047, 1048, + 1049, 265, 1050, 1051, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 1052, 312, 313, 314, 315, 316, 1053, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 1054, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 1055, 1056, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 1057, 393, 1058, 395, 396, 397, 398, + 399, 1059, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 1060, 1061, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 1062, 428, + 429, 430, 431, 432, 433, 1063, 435, 436, 437, 438, + 439, 440, 441, 1064, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 1065, 455, 456, 457, 458, + 459, 460, 1066, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 1067, 493, 494, 495, 496, 497, 1068, + 1069, 500, 501, 502, 503, 504, 1070, 506, 507, 508, + 509, 510, 511, 1071, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 1072, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 1073, 1074, 1075, 1076, 564, 565, 566, 567, + 1077, 1078, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 1079, 584, 1080, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 1081, 1082, + 598, 1083, 600, 601, 602, 0, 603, 604, 605, 1084, + 0, 0, 0, 0, 0, 0, 0, 0, 1581, 1582, + 0, 0, 0, 954, 1087, 0, 0, 955, 956, 1088, + 0, 0, 0, 1089, 1090, 0, 0, 1091, 957, 958, + 0, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 0, 0, 0, 0, 0, 0, 0, 970, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 972, 973, 974, + 0, 0, 0, 0, 0, 0, 0, 975, 976, 0, + 977, 0, 0, 0, 0, 0, 0, 978, 979, 0, + 0, 980, 981, 982, 983, 0, 984, 985, 0, 986, + 987, 0, 0, 0, 0, 0, 0, 0, 988, 0, + 0, 989, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 990, 991, + 992, 0, 993, 0, 0, 0, 0, 0, 0, 0, + 994, 995, 996, 0, 0, 0, 0, 0, 997, 0, + 0, 0, 0, 0, 0, 0, 998, 0, 0, 999, + 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, + 1001, 0, 1002, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1003, 1004, 0, 1005, + 0, 0, 0, 1006, 0, 0, 0, 1007, 0, 0, + 0, 0, 1009, 1010, 1011, 1012, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1013, 1014, 1015, 0, 1016, 0, 0, 0, 0, + 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1018, 1019, 0, 0, 0, 0, 0, + 0, 0, 1020, 1021, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1022, 0, 0, 0, 0, 0, 0, 1023, 1024, + 0, 1025, 1026, 1027, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1028, 1029, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1030, 1031, 1032, 0, 0, + 0, 0, 0, 1033, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 1035, 190, 191, 192, 193, + 194, 195, 1036, 197, 198, 199, 200, 201, 202, 203, + 1037, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 1038, 220, 221, 222, + 223, 224, 225, 226, 227, 1039, 229, 1040, 231, 1041, + 1042, 1043, 1044, 1045, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 1046, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 1047, 1048, 1049, 265, 1050, 1051, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 1052, 312, 313, 314, 315, 316, 1053, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 1054, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 1055, 1056, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 1057, 393, 1058, 395, 396, + 397, 398, 399, 1059, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 1060, 1061, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 1062, 428, 429, 430, 431, 432, 433, 1063, 435, 436, + 437, 438, 439, 440, 441, 1064, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 1065, 455, 456, + 457, 458, 459, 460, 1066, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 1067, 493, 494, 495, 496, + 497, 1068, 1069, 500, 501, 502, 503, 504, 1070, 506, + 507, 508, 509, 510, 511, 1071, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 1072, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 1073, 1074, 1075, 1076, 564, 565, + 566, 567, 1077, 1078, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 1079, 584, 1080, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 1081, 1082, 598, 1083, 600, 601, 602, 0, 603, 604, + 605, 1084, 0, 0, 0, 0, 0, 0, 0, 0, + 1085, 1086, 0, 0, 0, 954, 1087, 0, 0, 955, + 956, 1088, 0, 0, 0, 1089, 1090, 0, 0, 1091, + 957, 958, 0, 959, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 969, 0, 0, 0, 0, 0, 0, + 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 973, 974, 0, 0, 0, 0, 0, 0, 0, 975, + 976, 0, 977, 0, 0, 0, 0, 0, 0, 978, + 979, 0, 0, 980, 981, 982, 983, 0, 984, 985, + 0, 986, 987, 0, 0, 0, 0, 0, 0, 0, + 988, 0, 0, 989, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 990, 991, 992, 0, 993, 0, 0, 0, 0, 0, + 0, 0, 994, 995, 996, 0, 0, 0, 0, 0, + 997, 0, 0, 0, 0, 0, 0, 0, 998, 0, + 0, 2434, 0, 0, 0, 0, 0, 0, 0, 0, + 1000, 0, 1001, 0, 1002, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1003, 1004, + 0, 1005, 0, 0, 0, 1006, 0, 0, 0, 1007, + 0, 0, 0, 0, 1009, 1010, 1011, 1012, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1013, 1014, 1015, 0, 1016, 0, 0, + 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1018, 1019, 0, 0, 0, + 0, 0, 0, 0, 1020, 1021, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, + 1023, 1024, 0, 1025, 1026, 1027, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1028, 1029, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1030, 1031, 1032, + 0, 0, 0, 0, 0, 1033, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 1035, 190, 191, + 192, 193, 194, 195, 1036, 197, 198, 199, 200, 201, + 202, 203, 1037, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 1038, 220, + 221, 222, 223, 224, 225, 226, 227, 1039, 229, 1040, + 231, 1041, 1042, 1043, 1044, 1045, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 1046, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 1047, 1048, 1049, 265, 1050, 1051, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 1052, 312, 313, 314, 315, + 316, 1053, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 1054, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 1055, 1056, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 1057, 393, 1058, + 395, 396, 397, 398, 399, 1059, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 1060, 1061, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 1062, 428, 429, 430, 431, 432, 433, 1063, + 435, 436, 437, 438, 439, 440, 441, 1064, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 1065, + 455, 456, 457, 458, 459, 460, 1066, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 1067, 493, 494, + 495, 496, 497, 1068, 1069, 500, 501, 502, 503, 504, + 1070, 506, 507, 508, 509, 510, 511, 1071, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 1072, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 1073, 1074, 1075, 1076, + 564, 565, 566, 567, 1077, 1078, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1079, + 584, 1080, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 1081, 1082, 598, 1083, 600, 601, 602, 0, + 603, 604, 605, 1084, 0, 0, 0, 0, 0, 0, + 0, 0, 1085, 1086, 0, 0, 0, 954, 1087, 0, + 0, 955, 956, 1088, 0, 0, 0, 1089, 1090, 0, + 0, 1091, 957, 958, 0, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 0, 0, 0, 0, + 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 971, 972, 973, 974, 0, 0, 0, 0, 0, 0, + 0, 975, 976, 0, 977, 0, 0, 0, 0, 0, + 0, 978, 979, 0, 0, 980, 981, 982, 983, 0, + 984, 985, 0, 986, 987, 0, 0, 0, 0, 0, + 0, 0, 988, 0, 0, 989, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 990, 991, 992, 0, 993, 0, 0, 0, + 0, 0, 0, 0, 994, 995, 996, 0, 0, 0, + 0, 0, 997, 0, 0, 0, 0, 0, 0, 0, + 998, 0, 0, 2436, 0, 0, 0, 0, 0, 0, + 0, 0, 1000, 0, 1001, 0, 1002, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1003, 1004, 0, 1005, 0, 0, 0, 1006, 0, 0, + 0, 1007, 0, 0, 0, 0, 1009, 1010, 1011, 1012, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1013, 1014, 1015, 0, 1016, + 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, + 0, 0, 0, 0, 0, 0, 1020, 1021, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, + 0, 0, 1023, 1024, 0, 1025, 1026, 1027, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, + 1031, 1032, 0, 0, 0, 0, 0, 1033, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 1035, + 190, 191, 192, 193, 194, 195, 1036, 197, 198, 199, + 200, 201, 202, 203, 1037, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 1038, 220, 221, 222, 223, 224, 225, 226, 227, 1039, + 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 1046, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 1047, 1048, 1049, 265, 1050, 1051, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 1052, 312, 313, + 314, 315, 316, 1053, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 1054, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 1055, 1056, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 1057, + 393, 1058, 395, 396, 397, 398, 399, 1059, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 1060, 1061, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 1062, 428, 429, 430, 431, 432, + 433, 1063, 435, 436, 437, 438, 439, 440, 441, 1064, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 1065, 455, 456, 457, 458, 459, 460, 1066, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 1067, + 493, 494, 495, 496, 497, 1068, 1069, 500, 501, 502, + 503, 504, 1070, 506, 507, 508, 509, 510, 511, 1071, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 1072, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 1073, 1074, + 1075, 1076, 564, 565, 566, 567, 1077, 1078, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 1079, 584, 1080, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 1081, 1082, 598, 1083, 600, 601, + 602, 0, 603, 604, 605, 1084, 0, 0, 0, 0, + 0, 0, 0, 0, 1085, 1086, 0, 0, 0, 954, + 1087, 0, 0, 955, 956, 1088, 0, 0, 0, 1089, + 1090, 0, 0, 1091, 957, 958, 0, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 972, 973, 974, 0, 0, 0, 0, + 0, 0, 0, 975, 976, 0, 977, 0, 0, 0, + 0, 0, 0, 978, 979, 0, 0, 980, 981, 982, + 983, 0, 984, 985, 0, 986, 987, 0, 0, 0, + 0, 0, 0, 0, 988, 0, 0, 989, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 990, 991, 992, 0, 993, 0, + 0, 0, 0, 0, 0, 0, 994, 995, 996, 0, + 0, 0, 0, 0, 997, 0, 0, 0, 0, 0, + 0, 0, 998, 0, 0, 1580, 0, 0, 0, 0, + 0, 0, 0, 0, 1000, 0, 1001, 0, 1002, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1003, 1004, 0, 1005, 0, 0, 0, 1006, + 0, 0, 0, 1007, 0, 0, 0, 0, 1009, 1010, + 1011, 1012, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, + 0, 1016, 0, 0, 0, 0, 0, 0, 1017, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 1019, 0, 0, 0, 0, 0, 0, 0, 1020, 1021, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, + 0, 0, 0, 0, 1023, 1024, 0, 1025, 1026, 1027, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1028, 1029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1030, 1031, 1032, 0, 0, 0, 0, 0, 1033, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 1035, 190, 191, 192, 193, 194, 195, 1036, 197, + 198, 199, 200, 201, 202, 203, 1037, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 1038, 220, 221, 222, 223, 224, 225, 226, + 227, 1039, 229, 1040, 231, 1041, 1042, 1043, 1044, 1045, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 1046, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 1047, 1048, 1049, 265, + 1050, 1051, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 1052, + 312, 313, 314, 315, 316, 1053, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 1054, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 1055, + 1056, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 1057, 393, 1058, 395, 396, 397, 398, 399, 1059, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 1060, + 1061, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 1062, 428, 429, 430, + 431, 432, 433, 1063, 435, 436, 437, 438, 439, 440, + 441, 1064, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 1065, 455, 456, 457, 458, 459, 460, + 1066, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 1067, 493, 494, 495, 496, 497, 1068, 1069, 500, + 501, 502, 503, 504, 1070, 506, 507, 508, 509, 510, + 511, 1071, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 1072, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 1073, 1074, 1075, 1076, 564, 565, 566, 567, 1077, 1078, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 1079, 584, 1080, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 1081, 1082, 598, 1083, + 600, 601, 602, 0, 603, 604, 605, 1084, 0, 0, + 0, 0, 0, 0, 0, 0, 5979, 5980, 954, 0, + 0, 0, 1619, 0, 0, 0, 0, 5981, 0, 0, + 0, 0, 1090, 1573, 1574, 1091, 959, 960, 961, 962, + 963, 964, 965, 966, 967, 968, 969, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 992, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1012, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1029, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 2467, 264, 265, 266, + 267, 268, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 0, 0, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 0, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 2468, + 561, 562, 2469, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 0, 603, 604, 605, 606, 6221, 0, 0, + 0, 2389, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 6221, 0, 0, 0, + 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 175, 176, 0, 0, 0, 6222, 0, 0, 0, + 0, 0, 0, 2390, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 1619, 603, 604, 605, 606, 0, 0, 0, 0, 0, + 0, 1573, 1574, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 1619, 603, 604, 605, 606, 0, 0, 0, 0, 0, + 0, 1573, 1574, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1620, 0, 0, 0, 0, 0, + 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 2389, 603, 604, 605, 606, 0, 0, 0, 0, 0, + 0, 175, 176, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 0, 603, 604, 605, 606, 175, 176, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4925, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3223, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3224, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 744, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 0, 0, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 4926, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 0, 603, 604, 605, 606, 175, + 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4927, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 0, 0, 0, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 0, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 0, 0, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 0, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 0, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 0, 603, + 604, 605, 606, 175, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1346, 0, 0, 0, 0, 0, 0, 0, + 773, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1345, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 0, 0, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 0, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 0, 603, 604, 605, 606, 175, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1346, 0, 0, 0, + 0, 1347, 0, 0, 773, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 0, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 0, 0, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 0, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 0, 603, 604, 605, + 606, 175, 176, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1346, 0, 0, 0, 0, 1347, 0, 0, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 0, 603, 604, 605, 606, 175, 176, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1346, 0, 0, 0, 0, 0, + 0, 0, 773, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 0, 0, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 0, 603, 604, 605, 606, 175, + 176, 0, 0, 0, 0, 0, 0, 0, 0, 2869, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 773, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 0, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 0, 0, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 0, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 0, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 0, 603, + 604, 605, 606, 175, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5076, 0, 0, 0, 0, 0, 0, 0, + 4927, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5382, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 0, 0, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 0, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 0, 603, 604, 605, 606, 175, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4927, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 0, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 0, 0, 297, 298, 299, + 770, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 0, 771, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 772, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 0, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 0, 603, 604, 605, + 606, 175, 176, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 0, 603, 604, 605, 606, 175, 176, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 773, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 0, 0, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 0, 603, 604, 605, 606, 175, + 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4927, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 909, 0, 0, 0, 14, 0, 0, 910, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, + 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 913, 914, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, + 0, 0, 0, 0, 177, 178, 179, 915, 181, 0, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 0, 197, 198, 199, 200, 201, 202, + 203, 204, 0, 916, 0, 0, 208, 209, 210, 211, + 212, 0, 0, 215, 216, 217, 218, 0, 0, 0, + 222, 223, 224, 225, 226, 917, 228, 229, 230, 231, + 0, 0, 0, 0, 0, 0, 237, 0, 239, 0, + 241, 242, 0, 244, 245, 246, 247, 248, 249, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 0, 266, 267, 268, 0, 269, + 270, 271, 272, 273, 274, 275, 0, 277, 278, 279, + 280, 0, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 0, 0, 0, 296, 0, 918, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 0, 0, 0, 0, 0, 312, 313, 919, 315, 316, + 317, 0, 319, 320, 0, 322, 323, 0, 0, 325, + 0, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 0, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 0, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 0, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 920, 0, 0, 434, 0, + 436, 437, 0, 439, 440, 441, 442, 0, 444, 445, + 446, 447, 0, 0, 0, 0, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 0, 479, 0, 481, 482, 483, 0, 485, + 486, 0, 488, 489, 490, 491, 492, 493, 0, 495, + 496, 497, 498, 499, 500, 501, 0, 503, 504, 505, + 0, 507, 508, 509, 510, 0, 512, 513, 0, 0, + 516, 0, 0, 519, 520, 521, 0, 523, 0, 525, + 526, 527, 528, 0, 529, 530, 531, 532, 0, 534, + 535, 0, 537, 0, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 0, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 0, 570, 571, 572, 0, 574, + 575, 576, 577, 0, 0, 580, 581, 0, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 0, 0, 600, 601, 0, 0, 603, + 0, 605, 606, 175, 176, 790, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 695, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5672, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1415, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 0, 0, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 0, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 0, 526, 527, 528, 0, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 0, 603, 604, 605, 606, 175, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1701, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 0, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 0, 0, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 0, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 1176, 603, 604, 605, + 606, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 175, 176, 0, 0, 0, 0, 0, 0, 0, + 2445, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1178, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 1179, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 1180, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 1181, + 315, 316, 317, 318, 1182, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 1183, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 1184, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 1185, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 1186, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 1187, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 1188, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 1189, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 1190, 599, 600, 601, 602, + 1783, 603, 604, 605, 606, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 175, 176, 790, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 695, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 0, 0, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 2021, 603, 604, 605, 606, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, + 176, 790, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 695, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 0, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 0, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 0, 0, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 0, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 0, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 2225, 603, + 604, 605, 606, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 175, 176, 790, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 695, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 0, 0, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 0, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 0, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 1176, 603, 604, 605, 606, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 175, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1177, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1178, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 178, 179, 1179, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 0, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 1180, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 0, 0, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 0, 311, 312, 313, 1181, 315, 316, 317, 318, + 1182, 320, 321, 322, 323, 324, 0, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 1183, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 1184, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 1185, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 1186, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 1187, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 0, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 1190, 599, 600, 601, 602, 1931, 603, 604, 605, + 606, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1573, 1574, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1932, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 0, + 0, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 0, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 0, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 0, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 1931, 603, 604, 605, 606, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1573, 1574, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 0, 0, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 0, 603, 604, 605, 606, 2032, + 956, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1573, 1574, 0, 0, 0, 0, 0, 0, 0, 2033, + 0, 2034, 0, 2035, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 2032, 956, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1573, 1574, 0, 0, 0, + 0, 0, 0, 0, 2033, 0, 2034, 0, 2035, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4198, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 0, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 0, 0, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 0, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 0, 603, 604, 605, 606, 2032, + 956, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1573, 1574, 0, 0, 0, 0, 0, 0, 0, 2033, + 0, 2034, 0, 2035, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 2848, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 1573, 1574, 0, 0, 0, 0, 0, 0, + 0, 0, 4214, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 1573, 1574, 0, 0, + 0, 0, 0, 0, 0, 0, 4447, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 5241, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 5514, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 2905, 0, 0, 5821, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5470, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5471, 0, + 662, 0, 5472, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 790, 0, 0, 0, 0, 0, + 0, 2906, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1405, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1788, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 790, 1406, + 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1405, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 1406, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3541, 3542, 3543, 3544, + 3545, 3546, 3547, 3548, 3549, 3550, 3551, 4228, 4229, 3553, + 3554, 3555, 4230, 4231, 3556, 3557, 3558, 3559, 3560, 3561, + 3562, 3563, 4232, 3565, 3566, 0, 3567, 3568, 3569, 3570, + 3571, 3572, 3573, 3574, 3575, 3576, 3577, 0, 3578, 3579, + 3580, 3581, 3582, 3583, 3584, 3585, 3586, 4233, 3588, 3589, + 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, + 4234, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, + 3610, 3611, 3612, 3613, 3614, 4235, 3616, 0, 3617, 3618, + 3619, 3620, 3621, 0, 0, 3622, 3623, 3624, 3625, 3626, + 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, + 3637, 4236, 3639, 4237, 3641, 3642, 3643, 3644, 3645, 3646, + 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, + 3657, 3658, 4238, 4239, 4240, 3659, 3660, 3661, 3662, 3663, + 3664, 3665, 4241, 4242, 4243, 3666, 3667, 3668, 3669, 3670, + 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 4244, 3679, + 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, + 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, + 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 4245, 3708, + 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, + 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, + 3729, 3730, 3731, 4246, 3732, 3733, 4247, 3734, 3735, 3736, + 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, + 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, + 4248, 4249, 4250, 3757, 3758, 3759, 3760, 3761, 3762, 3763, + 3764, 3765, 0, 3767, 3768, 3769, 3770, 3771, 3772, 3773, + 3774, 3775, 3776, 4251, 4252, 3778, 3779, 3780, 3781, 3782, + 3783, 3784, 3785, 3786, 3787, 177, 178, 179, 0, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 5548, 209, 5549, + 5550, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 5551, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 5552, 262, 5553, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 5554, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 5555, 308, 309, 310, 0, 311, 312, 313, 3501, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 5556, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 5557, 5558, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 5559, 5560, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 5561, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 5562, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 5563, 558, 559, 5564, 561, 562, 5565, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 5566, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 3502, 599, 600, 601, 602, 0, + 603, 604, 605, 5567, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, + 3551, 4228, 4229, 3553, 3554, 3555, 4230, 4231, 3556, 3557, + 3558, 3559, 3560, 3561, 3562, 3563, 4232, 3565, 3566, 0, + 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, + 3577, 0, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, + 3586, 4233, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, + 3596, 3597, 3598, 3599, 4234, 3601, 3602, 3603, 3604, 3605, + 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 4235, + 3616, 0, 3617, 3618, 3619, 3620, 3621, 0, 0, 3622, + 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, + 3633, 3634, 3635, 3636, 3637, 4236, 3639, 4237, 3641, 3642, + 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, + 3653, 3654, 3655, 3656, 3657, 3658, 4238, 4239, 4240, 3659, + 3660, 3661, 3662, 3663, 3664, 3665, 4241, 4242, 4243, 3666, + 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, + 3677, 3678, 4244, 3679, 3680, 3681, 3682, 3683, 3684, 3685, + 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, + 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, + 3706, 3707, 4245, 3708, 3709, 3710, 3711, 3712, 3713, 3714, + 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, + 3725, 3726, 3727, 3728, 3729, 3730, 3731, 4246, 3732, 3733, + 4247, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, + 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, + 3753, 3754, 3755, 3756, 4248, 4249, 4250, 3757, 3758, 3759, + 3760, 3761, 3762, 3763, 3764, 3765, 0, 3767, 3768, 3769, + 3770, 3771, 3772, 3773, 3774, 3775, 3776, 4251, 4252, 3778, + 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 177, + 178, 179, 0, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 4253, 209, 4254, 4255, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 0, 4256, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 4257, 262, 4258, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 4259, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 4260, 308, 309, 310, 0, 311, + 312, 313, 0, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 4261, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 0, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 4262, 4263, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 0, 4264, 4265, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 0, 4266, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 4267, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 0, 510, + 511, 512, 513, 514, 0, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 4268, 558, 559, + 4269, 561, 562, 4270, 564, 565, 566, 567, 568, 569, + 570, 4271, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 0, 4272, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 0, 599, + 600, 601, 602, 0, 603, 604, 605, 4273, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3541, 3542, 3543, 3544, 3545, 3546, + 3547, 3548, 3549, 3550, 3551, 4228, 4229, 3553, 3554, 3555, + 4230, 4231, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, + 4232, 3565, 3566, 0, 3567, 3568, 3569, 3570, 3571, 3572, + 3573, 3574, 3575, 3576, 3577, 0, 3578, 3579, 3580, 3581, + 3582, 3583, 3584, 3585, 3586, 4233, 3588, 3589, 3590, 3591, + 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 4234, 3601, + 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, + 3612, 3613, 3614, 4235, 3616, 0, 3617, 3618, 3619, 3620, + 3621, 0, 0, 3622, 3623, 3624, 3625, 3626, 3627, 3628, + 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 4236, + 3639, 4237, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, + 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, + 4238, 4239, 4240, 3659, 3660, 3661, 3662, 3663, 3664, 3665, + 4241, 4242, 4243, 3666, 3667, 3668, 3669, 3670, 3671, 3672, + 3673, 3674, 3675, 3676, 3677, 3678, 4244, 3679, 3680, 3681, + 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, + 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, + 3702, 3703, 3704, 3705, 3706, 3707, 4245, 3708, 3709, 3710, + 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, + 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, + 3731, 4246, 3732, 3733, 4247, 3734, 3735, 3736, 3737, 3738, + 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, + 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 4248, 4249, + 4250, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, + 0, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, + 3776, 4251, 4252, 3778, 3779, 3780, 3781, 3782, 3783, 3784, + 3785, 3786, 3787, 177, 178, 179, 0, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 4253, 209, 4254, 4255, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 0, 4256, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 4257, + 262, 4258, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 4259, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 4260, 308, + 309, 310, 0, 311, 312, 313, 0, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 4261, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 0, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 4262, + 4263, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 0, 4264, 4265, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 0, 4266, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 5588, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 0, 510, 511, 512, 513, 514, 0, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 4268, 558, 559, 4269, 561, 562, 4270, 564, 565, + 566, 567, 568, 569, 570, 5589, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 0, 4272, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 0, 599, 600, 601, 602, 0, 603, 604, + 605, 4273, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3541, 3542, + 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 4228, + 4229, 3553, 3554, 3555, 4230, 4231, 3556, 3557, 3558, 3559, + 3560, 3561, 3562, 3563, 4232, 3565, 3566, 0, 3567, 3568, + 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 0, + 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 4233, + 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, + 3598, 3599, 4234, 3601, 3602, 3603, 3604, 3605, 3606, 3607, + 3608, 3609, 3610, 3611, 3612, 3613, 3614, 4235, 3616, 0, + 3617, 3618, 3619, 3620, 3621, 0, 0, 3622, 3623, 3624, + 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, + 3635, 3636, 3637, 4236, 3639, 4237, 3641, 3642, 3643, 3644, + 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, + 3655, 3656, 3657, 3658, 4238, 4239, 4240, 3659, 3660, 3661, + 3662, 3663, 3664, 3665, 4241, 4242, 4243, 3666, 3667, 3668, + 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, + 4244, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, + 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, + 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, + 4245, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, + 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, + 3727, 3728, 3729, 3730, 3731, 4246, 3732, 3733, 4247, 3734, + 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, + 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, + 3755, 3756, 4248, 4249, 4250, 3757, 3758, 3759, 3760, 3761, + 3762, 3763, 3764, 3765, 0, 3767, 3768, 3769, 3770, 3771, + 3772, 3773, 3774, 3775, 3776, 4251, 4252, 3778, 3779, 3780, + 3781, 3782, 3783, 3784, 3785, 3786, 3787, 177, 178, 179, + 0, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 4253, + 209, 4254, 4255, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 0, 4256, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 4257, 262, 4258, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 4259, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 4260, 308, 309, 310, 0, 311, 312, 313, + 0, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 4261, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 0, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 4262, 4263, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 0, + 4264, 4265, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 0, 4266, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 0, 510, 511, 512, + 513, 514, 0, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 4268, 558, 559, 4269, 561, + 562, 4270, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 0, 4272, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 0, 599, 600, 601, + 602, 0, 603, 604, 605, 4273, 175, 176, 790, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 858, 859, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 860, 0, 0, + 0, 861, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, + 0, 0, 0, 0, 0, 0, 0, 863, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 865, + 0, 0, 0, 0, 866, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 867, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 868, 0, 0, 0, 869, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 870, 0, 0, 0, 871, + 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 873, 0, 0, 0, 0, 0, 0, 0, 874, + 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 876, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 877, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 878, 291, 292, + 293, 294, 879, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 880, 881, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 882, 457, 458, + 459, 883, 461, 462, 463, 464, 465, 884, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 885, 478, + 479, 480, 481, 482, 886, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 887, 515, 516, 888, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 889, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 790, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 695, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1154, 859, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 860, 0, 0, 0, 861, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, + 0, 863, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 865, 0, 0, 0, 0, 866, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, + 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, + 0, 0, 0, 871, 872, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, + 0, 0, 0, 874, 875, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 1155, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 876, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 877, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 878, 291, 292, 293, 294, 879, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 880, 881, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 882, 457, 458, 459, 1156, 461, 462, 463, 464, + 465, 884, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 885, 478, 479, 480, 481, 482, 886, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 887, + 515, 516, 888, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 889, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 0, 0, 0, 2247, + 2248, 4088, 0, 4089, 0, 4090, 695, 4091, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5328, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 2247, 2248, 4088, 0, 4089, 0, 4090, + 695, 4091, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6067, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 0, 0, 0, 2247, 2248, 4088, + 0, 4089, 0, 4090, 695, 4091, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 790, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 861, 1415, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 790, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 695, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1803, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 0, 0, 1308, 0, + 0, 1309, 1310, 0, 0, 0, 1311, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 695, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1789, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 790, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1415, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 790, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 695, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1838, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 790, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 695, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 861, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 790, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 695, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3497, 3498, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 0, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 3499, 3500, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 3501, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 3502, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 790, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1788, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5332, 0, 0, 5333, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5334, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, + 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 790, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 695, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1545, 0, 0, 0, + 0, 0, 0, 1546, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 1547, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1466, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 1573, 1574, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1575, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 1573, 1574, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1798, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 1573, 1574, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2519, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 2520, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2531, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 1573, 1574, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4483, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4905, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5412, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 702, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 780, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 1573, 1574, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 1951, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2536, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 3243, 307, 308, 309, 310, + 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 0, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 3244, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 0, 603, 604, 605, 606, + 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 2887, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 0, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 311, 312, 313, 2888, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 0, 599, 600, 601, 602, 0, + 603, 604, 605, 606, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 695, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3127, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 3128, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, + 312, 313, 3129, 315, 316, 317, 318, 0, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 0, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 0, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 3130, 599, + 600, 601, 602, 0, 603, 604, 605, 606, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 178, 179, 0, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 0, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 0, 0, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 3501, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 3502, 599, 600, 601, 602, 0, 603, 604, + 605, 606, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 3128, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 0, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 3129, 315, 316, 317, 318, 0, 320, 321, 322, 323, + 324, 0, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 0, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 0, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 3130, 599, 600, 601, + 602, 0, 603, 604, 605, 606, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -3620, -3620, -3620, 0, 0, 0, 0, 0, 0, 909, + 0, 0, 0, 14, 0, 0, 910, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 911, 0, 0, 0, 0, 0, 0, 0, 912, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 0, 0, 0, 913, 914, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 177, 178, 179, 915, 181, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 0, 197, 198, 199, 200, 201, 202, 203, 204, 0, + 916, 0, 0, 208, 209, 210, 211, 212, 0, 0, + 215, 216, 217, 218, 0, 0, 0, 222, 223, 224, + 225, 226, 917, 228, 229, 230, 231, 0, 0, 0, + 0, 0, 0, 237, 0, 239, 0, 241, 242, 0, + 244, 245, 246, 247, 248, 249, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 0, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 280, -3620, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 0, 0, 296, 0, 918, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 0, 0, 0, + 0, 0, 312, 313, 919, 315, 316, 317, 0, 319, + 320, 0, 322, 323, 0, 0, 325, 0, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 0, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 0, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 920, 0, 0, 434, 0, 436, 437, 0, + 439, 440, 441, 442, 0, 444, 445, 446, 447, 0, + 0, 0, 0, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 479, 0, 481, 482, 483, 0, 485, 486, 0, 488, + 489, 490, 491, 492, 493, 0, 495, 496, 497, 498, + 499, 500, 501, 0, 503, 504, 505, 0, 507, 508, + 509, 510, 0, 512, 513, 0, 0, 516, 0, 0, + 519, 520, 521, 0, 523, 0, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 0, 534, 535, 0, 537, + 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 0, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 0, 570, 571, 572, 0, 574, 575, 576, 577, + 175, 176, 580, 581, 0, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 0, 0, 600, 601, 0, 0, 603, 0, 605, 606, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -3621, 0, 0, 0, 0, + 0, 0, 0, 909, 0, 0, 0, 14, 0, 0, + 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, + 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, + 0, 913, 914, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -3621, 0, + 41, 0, 0, 0, 0, 177, 178, 179, 915, 181, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 0, 197, 198, 199, 200, 201, + 202, 203, 204, 0, 916, 0, 0, 208, 209, 210, + 211, 212, 0, 0, 215, 216, 217, 218, 0, 0, + 0, 222, 223, 224, 225, 226, 917, 228, 229, 230, + 231, 0, 0, 0, 0, 0, 0, 237, 0, 239, + 0, 241, 242, 0, 244, 245, 246, 247, 248, 249, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 0, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 280, -3621, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 0, 0, 0, 296, 0, 918, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 0, 0, 0, 0, 0, 312, 313, 919, 315, + 316, 317, 0, 319, 320, 0, 322, 323, 0, 0, + 325, 0, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 0, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 0, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 920, 0, 0, 434, + 0, 436, 437, 0, 439, 440, 441, 442, 0, 444, + 445, 446, 447, 0, 0, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 479, 0, 481, 482, 483, 0, + 485, 486, 0, 488, 489, 490, 491, 492, 493, 0, + 495, 496, 497, 498, 499, 500, 501, 0, 503, 504, + 505, 0, 507, 508, 509, 510, 0, 512, 513, 0, + 0, 516, 0, 0, 519, 520, 521, 0, 523, 0, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 0, + 534, 535, 0, 537, 0, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 0, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 0, 570, 571, 572, 0, + 574, 575, 576, 577, 175, 176, 580, 581, 0, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 0, 0, 600, 601, 0, 0, + 603, 0, 605, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 909, 0, 0, + 0, 14, 0, 0, 910, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 911, + 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 0, 0, 0, 913, 914, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 0, 0, 0, 177, + 178, 179, 915, 181, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 0, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 916, 0, + 0, 208, 209, 210, 211, 212, 0, 0, 215, 216, + 217, 218, 0, 0, 0, 222, 223, 224, 225, 226, + 917, 228, 229, 230, 231, 0, 0, 0, 0, 0, + 0, 237, 0, 239, 0, 241, 242, 0, 244, 245, + 246, 247, 248, 249, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 0, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 280, 1557, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 0, 0, + 0, 296, 0, 918, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 0, 0, 0, 0, 0, + 312, 313, 919, 315, 316, 317, 0, 319, 320, 0, + 322, 323, 0, 0, 325, 0, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 0, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 0, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 0, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 920, 0, 0, 434, 0, 436, 437, 0, 439, 440, + 441, 442, 0, 444, 445, 446, 447, 0, 0, 0, + 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 479, 0, + 481, 482, 483, 0, 485, 486, 0, 488, 489, 490, + 491, 492, 493, 0, 495, 496, 497, 498, 499, 500, + 501, 0, 503, 504, 505, 0, 507, 508, 509, 510, + 0, 512, 513, 0, 0, 516, 0, 0, 519, 520, + 521, 0, 523, 0, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 0, 534, 535, 0, 537, 0, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 0, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 0, + 570, 571, 572, 0, 574, 575, 576, 577, 175, 176, + 580, 581, 0, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 0, 0, + 600, 601, 0, 0, 603, 0, 605, 606, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 909, 0, 0, 0, 14, 0, 0, 910, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, + 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 913, + 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, + 0, 0, 0, 177, 178, 179, 915, 181, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 0, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 916, 0, 0, 208, 209, 210, 211, 212, + 0, 0, 215, 216, 217, 218, 0, 0, 0, 222, + 223, 224, 225, 226, 917, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 0, 237, 0, 239, 0, 241, + 242, 0, 244, 245, 246, 247, 248, 249, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 0, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 280, + 3470, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 0, 0, 0, 296, 0, 918, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 0, + 0, 0, 0, 0, 312, 313, 919, 315, 316, 317, + 0, 319, 320, 0, 322, 323, 0, 0, 325, 0, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 0, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 0, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 0, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 920, 0, 0, 434, 0, 436, + 437, 0, 439, 440, 441, 442, 0, 444, 445, 446, + 447, 0, 0, 0, 0, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 479, 0, 481, 482, 483, 0, 485, 486, + 0, 488, 489, 490, 491, 492, 493, 0, 495, 496, + 497, 498, 499, 500, 501, 0, 503, 504, 505, 0, + 507, 508, 509, 510, 0, 512, 513, 0, 0, 516, + 0, 0, 519, 520, 521, 0, 523, 0, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 0, 534, 535, + 0, 537, 0, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 0, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 0, 570, 571, 572, 0, 574, 575, + 576, 577, 175, 176, 580, 581, 0, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 0, 0, 600, 601, 0, 0, 603, 0, + 605, 606, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 909, 0, 0, 0, 14, + 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, + 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 913, 914, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 177, 178, 179, + 915, 181, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 0, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 916, 0, 0, 208, + 209, 210, 211, 212, 0, 0, 215, 216, 217, 218, + 0, 0, 0, 222, 223, 224, 225, 226, 917, 228, + 229, 230, 231, 0, 0, 0, 0, 0, 0, 237, + 0, 239, 0, 241, 242, 0, 244, 245, 246, 247, + 248, 249, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 0, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 280, 3522, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 0, 0, 0, 296, + 0, 918, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 0, 0, 0, 0, 0, 312, 313, + 919, 315, 316, 317, 0, 319, 320, 0, 322, 323, + 0, 0, 325, 0, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 0, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 0, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 0, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 920, 0, + 0, 434, 0, 436, 437, 0, 439, 440, 441, 442, + 0, 444, 445, 446, 447, 0, 0, 0, 0, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 479, 0, 481, 482, + 483, 0, 485, 486, 0, 488, 489, 490, 491, 492, + 493, 0, 495, 496, 497, 498, 499, 500, 501, 0, + 503, 504, 505, 0, 507, 508, 509, 510, 0, 512, + 513, 0, 0, 516, 0, 0, 519, 520, 521, 0, + 523, 0, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 0, 534, 535, 0, 537, 0, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 0, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 0, 570, 571, + 572, 0, 574, 575, 576, 577, 175, 176, 580, 581, + 0, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 0, 0, 600, 601, + 0, 0, 603, 0, 605, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 909, + 0, 0, 0, 14, 0, 0, 910, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 911, 0, 0, 0, 0, 0, 0, 0, 912, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 0, 0, 0, 913, 914, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 177, 178, 179, 915, 181, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 0, 197, 198, 199, 200, 201, 202, 203, 204, 0, + 916, 0, 0, 208, 209, 210, 211, 212, 0, 0, + 215, 216, 217, 218, 0, 0, 0, 222, 223, 224, + 225, 226, 917, 228, 229, 230, 231, 0, 0, 0, + 0, 0, 0, 237, 0, 239, 0, 241, 242, 0, + 244, 245, 246, 247, 248, 249, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 0, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 280, 3983, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 0, 0, 296, 0, 918, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 0, 0, 0, + 0, 0, 312, 313, 919, 315, 316, 317, 0, 319, + 320, 0, 322, 323, 0, 0, 325, 0, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 0, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 0, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 920, 0, 0, 434, 0, 436, 437, 0, + 439, 440, 441, 442, 0, 444, 445, 446, 447, 0, + 0, 0, 0, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 479, 0, 481, 482, 483, 0, 485, 486, 0, 488, + 489, 490, 491, 492, 493, 0, 495, 496, 497, 498, + 499, 500, 501, 0, 503, 504, 505, 0, 507, 508, + 509, 510, 0, 512, 513, 0, 0, 516, 0, 0, + 519, 520, 521, 0, 523, 0, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 0, 534, 535, 0, 537, + 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 0, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 0, 570, 571, 572, 0, 574, 575, 576, 577, + 175, 176, 580, 581, 0, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 0, 0, 600, 601, 0, 0, 603, 0, 605, 606, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 909, 0, 0, 0, 14, 0, 0, + 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, + 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, + 0, 913, 914, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 0, 177, 178, 179, 915, 181, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 0, 197, 198, 199, 200, 201, + 202, 203, 204, 0, 916, 0, 0, 208, 209, 210, + 211, 212, 0, 0, 215, 216, 217, 218, 0, 0, + 0, 222, 223, 224, 225, 226, 917, 228, 229, 230, + 231, 0, 0, 0, 0, 0, 0, 237, 0, 239, + 0, 241, 242, 0, 244, 245, 246, 247, 248, 249, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 0, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 280, 3986, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 0, 0, 0, 296, 0, 918, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 0, 0, 0, 0, 0, 312, 313, 919, 315, + 316, 317, 0, 319, 320, 0, 322, 323, 0, 0, + 325, 0, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 0, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 0, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 920, 0, 0, 434, + 0, 436, 437, 0, 439, 440, 441, 442, 0, 444, + 445, 446, 447, 0, 0, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 479, 0, 481, 482, 483, 0, + 485, 486, 0, 488, 489, 490, 491, 492, 493, 0, + 495, 496, 497, 498, 499, 500, 501, 0, 503, 504, + 505, 0, 507, 508, 509, 510, 0, 512, 513, 0, + 0, 516, 0, 0, 519, 520, 521, 0, 523, 0, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 0, + 534, 535, 0, 537, 0, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 0, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 0, 570, 571, 572, 0, + 574, 575, 576, 577, 175, 176, 580, 581, 0, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 0, 0, 600, 601, 0, 0, + 603, 0, 605, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 909, 0, 0, + 0, 14, 0, 0, 910, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 911, + 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 0, 0, 0, 913, 914, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 0, 0, 0, 177, + 178, 179, 915, 181, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 0, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 916, 0, + 0, 208, 209, 210, 211, 212, 0, 0, 215, 216, + 217, 218, 0, 0, 0, 222, 223, 224, 225, 226, + 917, 228, 229, 230, 231, 0, 0, 0, 0, 0, + 0, 237, 0, 239, 0, 241, 242, 0, 244, 245, + 246, 247, 248, 249, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 0, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 280, 4298, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 0, 0, + 0, 296, 0, 918, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 0, 0, 0, 0, 0, + 312, 313, 919, 315, 316, 317, 0, 319, 320, 0, + 322, 323, 0, 0, 325, 0, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 0, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 0, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 0, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 920, 0, 0, 434, 0, 436, 437, 0, 439, 440, + 441, 442, 0, 444, 445, 446, 447, 0, 0, 0, + 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 479, 0, + 481, 482, 483, 0, 485, 486, 0, 488, 489, 490, + 491, 492, 493, 0, 495, 496, 497, 498, 499, 500, + 501, 0, 503, 504, 505, 0, 507, 508, 509, 510, + 0, 512, 513, 0, 0, 516, 0, 0, 519, 520, + 521, 0, 523, 0, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 0, 534, 535, 0, 537, 0, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 0, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 0, + 570, 571, 572, 0, 574, 575, 576, 577, 175, 176, + 580, 581, 0, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 0, 0, + 600, 601, 0, 0, 603, 0, 605, 606, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 909, 0, 0, 0, 14, 0, 0, 910, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, + 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 913, + 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, + 0, 0, 0, 177, 178, 179, 915, 181, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 0, 197, 198, 199, 200, 201, 202, 203, + 204, 0, 916, 0, 0, 208, 209, 210, 211, 212, + 0, 0, 215, 216, 217, 218, 0, 0, 0, 222, + 223, 224, 225, 226, 917, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 0, 237, 0, 239, 0, 241, + 242, 0, 244, 245, 246, 247, 248, 249, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 0, 266, 267, 268, 0, 269, 270, + 271, 272, 273, 274, 275, 0, 277, 278, 279, 280, + 0, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 0, 0, 0, 296, 0, 918, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 0, + 0, 0, 0, 0, 312, 313, 919, 315, 316, 317, + 0, 319, 320, 0, 322, 323, 0, 0, 325, 0, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 0, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 0, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 0, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 920, 0, 0, 434, 0, 436, + 437, 0, 439, 440, 441, 442, 0, 444, 445, 446, + 447, 0, 0, 0, 0, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 0, 479, 0, 481, 482, 483, 0, 485, 486, + 0, 488, 489, 490, 491, 492, 493, 0, 495, 496, + 497, 498, 499, 500, 501, 0, 503, 504, 505, 0, + 507, 508, 509, 510, 0, 512, 513, 0, 0, 516, + 0, 0, 519, 520, 521, 0, 523, 0, 525, 526, + 527, 528, 0, 529, 530, 531, 532, 0, 534, 535, + 0, 537, 0, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 0, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 0, 570, 571, 572, 0, 574, 575, + 576, 577, 175, 176, 580, 581, 0, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 0, 0, 600, 601, 0, 0, 603, 0, + 605, 606, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 909, 0, 0, 0, 14, + 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, + 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 913, 914, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 177, 178, 179, + 915, 181, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 0, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 916, 0, 0, 208, + 209, 210, 211, 212, 0, 0, 215, 216, 217, 218, + 0, 0, 0, 222, 223, 224, 225, 226, 917, 228, + 229, 230, 231, 0, 0, 0, 0, 0, 0, 237, + 0, 239, 0, 241, 242, 0, 244, 245, 246, 247, + 248, 249, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 0, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 280, 0, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 0, 0, 0, 296, + 0, 918, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 0, 0, 0, 0, 0, 312, 313, + 919, 315, 316, 317, 0, 319, 320, 0, 322, 323, + 0, 0, 325, 0, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 0, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 0, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 0, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 920, 0, + 0, 434, 0, 436, 437, 0, 439, 440, 441, 442, + 0, 444, 445, 446, 447, 0, 0, 0, 0, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 479, 0, 481, 482, + 483, 0, 485, 486, 0, 488, 489, 490, 491, 492, + 493, 0, 495, 496, 497, 498, 499, 500, 501, 0, + 503, 504, 505, 0, 507, 508, 509, 510, 0, 512, + 513, 0, 0, 516, 0, 0, 519, 520, 521, 0, + 523, 0, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 0, 534, 535, 0, 537, 0, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 0, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 0, 570, 571, + 572, 0, 574, 575, 576, 577, 175, 176, 580, 1773, + 0, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 0, 0, 600, 601, + 0, 0, 603, 0, 605, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 0, 0, 0, 913, 914, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 177, 178, 179, 915, 181, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 0, 197, 198, 199, 200, 201, 202, 203, 204, 0, + 916, 0, 0, 208, 209, 210, 211, 212, 0, 0, + 215, 216, 217, 218, 0, 0, 0, 222, 223, 224, + 225, 226, 0, 228, 229, 230, 231, 0, 0, 0, + 0, 0, 0, 237, 0, 239, 0, 241, 242, 0, + 244, 245, 246, 247, 248, 249, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 0, 266, 267, 268, 0, 269, 270, 271, 272, + 273, 274, 275, 0, 277, 278, 279, 280, 0, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 0, 0, 296, 0, 0, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 0, 0, 0, + 0, 0, 312, 313, 919, 315, 316, 317, 0, 319, + 320, 0, 322, 323, 175, 176, 325, 0, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 0, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 0, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 0, 0, 0, 434, 0, 436, 437, 0, + 439, 440, 441, 442, 0, 444, 445, 446, 447, 0, + 0, 0, 0, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, + 479, 0, 481, 482, 483, 0, 485, 486, 0, 488, + 489, 490, 491, 492, 493, 0, 495, 496, 497, 498, + 499, 500, 501, 0, 503, 504, 505, 0, 507, 508, + 509, 510, 0, 512, 513, 0, 0, 516, 0, 0, + 519, 520, 521, 0, 523, 0, 525, 526, 527, 528, + 0, 529, 530, 531, 532, 0, 534, 535, 0, 537, + 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 0, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 0, 570, 571, 572, 0, 574, 575, 576, 577, + 0, 0, 580, 581, 0, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 0, 0, 600, 601, 0, 0, 603, 0, 605, 606, + 0, 0, 1543, 0, 0, 0, 0, 0, 0, 177, + 178, 179, 915, 181, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 0, 197, + 198, 199, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 208, 209, 210, 211, 212, 0, 0, 215, 216, + 217, 218, 0, 0, 0, 222, 223, 224, 225, 226, + 0, 228, 229, 230, 231, 0, 0, 0, 0, 0, + 0, 237, 0, 239, 0, 241, 242, 0, 244, 245, + 246, 247, 248, 249, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 0, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 0, 277, 278, 279, 280, 0, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 0, 0, + 0, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 0, 0, 0, 0, 0, + 312, 313, 919, 315, 316, 317, 0, 319, 320, 0, + 322, 323, 175, 176, 325, 0, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 0, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 0, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 0, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 0, 0, 0, 434, 0, 436, 437, 0, 439, 440, + 441, 442, 0, 444, 445, 446, 447, 0, 0, 0, + 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 0, 479, 0, + 481, 482, 483, 0, 485, 486, 0, 488, 489, 490, + 491, 492, 493, 0, 495, 496, 497, 498, 499, 500, + 501, 0, 503, 504, 505, 0, 507, 508, 509, 510, + 0, 512, 513, 0, 0, 516, 0, 0, 519, 520, + 521, 0, 523, 0, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 0, 534, 535, 0, 537, 0, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 0, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 0, + 570, 571, 572, 0, 574, 575, 576, 577, 0, 0, + 580, 581, 0, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 0, 0, + 600, 601, 0, 0, 603, 0, 605, 606, 0, 0, + 1554, 0, 0, 0, 0, 0, 0, 177, 178, 179, + 915, 181, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 0, 197, 198, 199, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 208, + 209, 210, 211, 212, 0, 0, 215, 216, 217, 218, + 0, 0, 0, 222, 223, 224, 225, 226, 0, 228, + 229, 230, 231, 0, 0, 0, 0, 0, 0, 237, + 0, 239, 0, 241, 242, 0, 244, 245, 246, 247, + 248, 249, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 0, 266, 267, + 268, 0, 269, 270, 271, 272, 273, 274, 275, 0, + 277, 278, 279, 280, 0, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 0, 0, 0, 296, + 0, 0, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 0, 0, 0, 0, 0, 312, 313, + 919, 315, 316, 317, 0, 319, 320, 0, 322, 323, + 175, 176, 325, 0, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 0, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 0, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 0, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 0, 0, + 0, 434, 0, 436, 437, 0, 439, 440, 441, 442, + 0, 444, 445, 446, 447, 0, 0, 0, 0, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 0, 479, 0, 481, 482, + 483, 0, 485, 486, 0, 488, 489, 490, 491, 492, + 493, 0, 495, 496, 497, 498, 499, 500, 501, 0, + 503, 504, 505, 0, 507, 508, 509, 510, 0, 512, + 513, 0, 0, 516, 0, 0, 519, 520, 521, 0, + 523, 0, 525, 526, 527, 528, 0, 529, 530, 531, + 532, 0, 534, 535, 0, 537, 0, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 0, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 0, 570, 571, + 572, 0, 574, 575, 576, 577, 0, 0, 580, 581, + 0, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 0, 0, 600, 601, + 0, 0, 603, 0, 605, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 177, 178, 179, 915, 181, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 0, 197, 198, 199, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 208, 209, 210, + 211, 212, 0, 0, 215, 216, 217, 218, 0, 0, + 0, 222, 223, 224, 225, 226, 0, 228, 229, 230, + 231, 0, 0, 0, 0, 0, 0, 237, 0, 239, + 0, 241, 242, 0, 244, 245, 246, 247, 248, 249, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 0, 266, 267, 268, 0, + 269, 270, 271, 272, 273, 274, 275, 0, 277, 278, + 279, 280, 0, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 0, 0, 0, 296, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 0, 0, 0, 0, 0, 312, 313, 919, 315, + 316, 317, 0, 319, 320, 0, 322, 323, 0, 0, + 325, 0, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 0, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 0, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 0, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 0, 0, 0, 434, + 0, 436, 437, 0, 439, 440, 441, 442, 0, 444, + 445, 446, 447, 0, 0, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 0, 479, 0, 481, 482, 483, 0, + 485, 486, 0, 488, 489, 490, 491, 492, 493, 0, + 495, 496, 497, 498, 499, 500, 501, 0, 503, 504, + 505, 0, 507, 508, 509, 510, 0, 512, 513, 0, + 0, 516, 0, 0, 519, 520, 521, 0, 523, 0, + 525, 526, 527, 528, 0, 529, 530, 531, 532, 0, + 534, 535, 0, 537, 0, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 0, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 0, 570, 571, 572, 0, + 574, 575, 576, 577, 0, 0, 580, 581, 0, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 175, 176, 600, 601, 0, 0, + 603, 0, 605, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, + 3551, 0, 3552, 3553, 3554, 3555, 0, 0, 3556, 3557, + 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 0, + 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, + 3577, 0, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, + 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, + 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, + 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, + 3616, 0, 3617, 3618, 3619, 3620, 3621, 0, 0, 3622, + 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, + 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, + 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, + 3653, 3654, 3655, 3656, 3657, 3658, 0, 0, 0, 3659, + 3660, 3661, 3662, 3663, 3664, 3665, 0, 0, 0, 3666, + 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, + 3677, 3678, 0, 3679, 3680, 3681, 3682, 3683, 3684, 3685, + 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, + 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, + 3706, 3707, 0, 3708, 3709, 3710, 3711, 3712, 3713, 3714, + 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, + 3725, 3726, 3727, 3728, 3729, 3730, 3731, 0, 3732, 3733, + 0, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, + 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, + 3753, 3754, 3755, 3756, 0, 0, 0, 3757, 3758, 3759, + 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, + 3770, 3771, 3772, 3773, 3774, 3775, 3776, 0, 3777, 3778, + 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 177, + 178, 179, 0, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 0, + 207, 0, 209, 0, 0, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 0, 0, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 3788, 262, 3789, 264, 265, + 266, 267, 268, 0, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 0, 0, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 0, 308, 309, 310, 0, 311, + 312, 313, 0, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 0, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 0, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 0, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 0, 3790, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 0, 0, 0, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 0, 0, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 0, 510, + 511, 512, 513, 514, 3791, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 0, 558, 559, + 0, 561, 562, 3792, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 0, 3793, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 0, 599, + 600, 601, 602, 0, 603, 604, 605 +}; + +static const yytype_int16 yycheck[] = +{ + 5, 68, 22, 44, 677, 166, 676, 677, 0, 1372, + 0, 921, 1908, 2069, 0, 676, 164, 676, 1754, 174, + 1599, 26, 1240, 654, 1606, 1401, 31, 0, 676, 1767, + 2118, 36, 52, 1964, 39, 785, 1702, 3122, 58, 670, + 785, 1472, 0, 1370, 2595, 2604, 51, 1148, 2725, 2128, + 676, 1372, 57, 2914, 2518, 3469, 61, 676, 701, 3270, + 756, 3429, 850, 643, 4145, 676, 3310, 654, 32, 1521, + 1938, 156, 1409, 1409, 159, 4056, 4145, 908, 68, 910, + 911, 912, 2941, 670, 2943, 162, 1552, 918, 1884, 3346, + 2602, 3335, 1364, 3191, 674, 1636, 2924, 2925, 2785, 2940, + 741, 2944, 743, 2944, 2940, 746, 747, 2664, 2944, 643, + 1683, 1346, 1184, 1185, 1186, 3372, 3373, 1003, 123, 1305, + 3205, 1193, 971, 654, 2631, 1825, 1826, 1767, 3587, 2691, + 2214, 3334, 1705, 3261, 1932, 4033, 174, 174, 2836, 670, + 674, 1468, 2836, 133, 174, 676, 2770, 133, 4978, 1484, + 155, 156, 3402, 4667, 159, 174, 2060, 162, 163, 2770, + 621, 4145, 174, 3330, 4780, 3098, 6, 6, 5131, 1832, + 3041, 1615, 4625, 718, 4627, 133, 721, 4630, 45, 3436, + 3437, 41, 174, 4624, 174, 14, 3372, 3373, 174, 1852, + 6, 4644, 4624, 14, 1932, 2690, 2691, 3443, 4624, 1740, + 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, + 1751, 1752, 2836, 2700, 1877, 1878, 174, 30, 4582, 30, + 25, 3376, 683, 25, 6, 2836, 11, 46, 66, 1929, + 6, 41, 52, 64, 6, 6, 1085, 1086, 1087, 6, + 1150, 123, 15, 16, 6, 3361, 1219, 88, 1097, 125, + 3436, 3437, 10, 11, 3600, 117, 1242, 126, 5260, 5261, + 1446, 25, 41, 23, 24, 25, 768, 27, 1241, 29, + 3394, 31, 46, 25, 30, 2751, 2838, 30, 4436, 178, + 60, 52, 98, 2071, 235, 64, 148, 1719, 25, 46, + 30, 197, 1932, 2224, 62, 200, 237, 4980, 210, 261, + 140, 1733, 1734, 50, 1736, 1737, 197, 154, 25, 41, + 30, 377, 30, 829, 767, 125, 98, 294, 3416, 41, + 3191, 908, 25, 910, 911, 912, 3587, 41, 2116, 41, + 28, 918, 25, 66, 921, 30, 98, 4239, 4240, 41, + 41, 4243, 27, 2838, 25, 41, 141, 30, 4250, 47, + 41, 1585, 1586, 309, 4256, 25, 103, 818, 41, 41, + 1594, 23, 24, 25, 165, 27, 5281, 29, 294, 31, + 25, 381, 13, 2885, 2010, 140, 169, 908, 13, 910, + 911, 912, 309, 305, 178, 1486, 368, 918, 164, 140, + 921, 1625, 164, 1627, 234, 98, 275, 231, 4771, 237, + 2597, 42, 43, 120, 380, 98, 381, 42, 43, 1643, + 1644, 4768, 1646, 4939, 1515, 174, 1893, 98, 1652, 1653, + 221, 336, 1656, 174, 2762, 287, 366, 1893, 98, 98, + 5416, 2165, 309, 32, 39, 34, 35, 36, 30, 38, + 46, 40, 5870, 98, 5569, 313, 13, 4676, 174, 309, + 49, 80, 18, 19, 70, 294, 72, 95, 260, 420, + 53, 354, 247, 924, 100, 106, 288, 174, 56, 761, + 574, 106, 13, 583, 766, 173, 768, 52, 309, 52, + 628, 140, 630, 631, 632, 633, 66, 635, 636, 247, + 2826, 639, 640, 251, 39, 117, 289, 88, 204, 2587, + 5064, 42, 43, 383, 237, 27, 147, 29, 326, 197, + 146, 39, 633, 151, 143, 300, 3777, 70, 251, 41, + 39, 669, 140, 5728, 309, 154, 148, 53, 5530, 166, + 1982, 307, 3793, 162, 406, 307, 34, 35, 36, 106, + 38, 46, 300, 645, 572, 3416, 187, 2478, 4734, 715, + 5166, 309, 187, 152, 376, 197, 6121, 197, 1117, 188, + 376, 520, 715, 1150, 479, 106, 643, 140, 285, 752, + 52, 163, 426, 780, 197, 723, 724, 5862, 169, 32, + 50, 34, 35, 36, 4770, 38, 1145, 40, 226, 18, + 19, 1967, 6170, 174, 376, 227, 49, 674, 234, 174, + 197, 120, 201, 398, 4790, 771, 5891, 244, 4794, 4795, + 482, 247, 527, 242, 376, 6193, 234, 694, 771, 1150, + 187, 626, 32, 806, 34, 35, 36, 141, 38, 447, + 40, 708, 637, 103, 293, 6200, 6201, 642, 643, 49, + 5626, 270, 120, 224, 745, 190, 187, 5852, 407, 224, + 1346, 6079, 718, 4634, 152, 291, 382, 237, 779, 141, + 247, 771, 667, 654, 300, 287, 488, 560, 4652, 674, + 646, 190, 125, 309, 156, 779, 195, 1778, 251, 670, + 294, 3932, 3933, 688, 1434, 676, 5250, 1328, 281, 694, + 1331, 1236, 2588, 1481, 1335, 1336, 1337, 498, 3162, 152, + 407, 80, 707, 708, 668, 853, 854, 376, 467, 621, + 416, 310, 1784, 300, 470, 307, 677, 195, 1604, 747, + 293, 654, 1823, 2060, 2060, 605, 560, 1799, 294, 2926, + 807, 3293, 1581, 1582, 1620, 740, 2071, 670, 302, 679, + 356, 305, 152, 676, 538, 3443, 2223, 5273, 201, 3443, + 1266, 756, 3376, 2487, 2488, 622, 4985, 2223, 843, 844, + 845, 5886, 368, 294, 143, 3376, 285, 2002, 773, 779, + 4138, 1521, 849, 735, 4233, 154, 4235, 767, 2013, 332, + 785, 2116, 787, 162, 631, 4244, 5159, 309, 4038, 771, + 56, 201, 275, 452, 5151, 772, 771, 774, 3293, 281, + 326, 2136, 807, 356, 70, 4264, 72, 285, 573, 188, + 376, 679, 817, 3300, 5729, 3913, 695, 3304, 774, 3443, + 3905, 4518, 427, 774, 829, 707, 831, 560, 4287, 4288, + 4289, 4733, 3443, 774, 839, 799, 841, 2705, 843, 844, + 845, 846, 847, 710, 849, 2776, 4552, 774, 774, 771, + 49, 718, 570, 779, 721, 606, 1829, 310, 1831, 774, + 4762, 1834, 774, 242, 4766, 585, 1453, 585, 774, 774, + 4772, 3347, 771, 1846, 756, 916, 1849, 18, 19, 452, + 1853, 1767, 675, 774, 848, 739, 660, 851, 635, 1875, + 585, 270, 374, 694, 735, 755, 306, 774, 774, 427, + 310, 1403, 907, 734, 909, 774, 1755, 1880, 1881, 1882, + 772, 679, 917, 693, 2577, 920, 5599, 908, 4034, 910, + 911, 912, 1453, 679, 490, 623, 2112, 918, 933, 2860, + 921, 923, 520, 923, 4191, 755, 774, 923, 778, 778, + 4286, 1457, 771, 641, 1397, 755, 4192, 376, 1482, 1592, + 771, 5109, 771, 2397, 2398, 750, 761, 655, 771, 761, + 771, 4658, 778, 2751, 5966, 923, 5968, 5969, 4123, 5422, + 4231, 1487, 4233, 3485, 4235, 908, 755, 910, 911, 912, + 5421, 679, 2770, 4244, 755, 918, 771, 3920, 921, 5421, + 2422, 2423, 5073, 2425, 2426, 5421, 778, 761, 5362, 4260, + 5364, 774, 778, 4264, 5073, 4191, 778, 778, 772, 761, + 774, 778, 772, 771, 771, 1658, 778, 4141, 771, 5205, + 772, 1088, 774, 755, 761, 907, 4287, 4288, 4289, 1779, + 5993, 771, 1675, 755, 1779, 772, 3374, 774, 2826, 1735, + 13, 755, 3913, 755, 761, 683, 1932, 779, 2836, 6051, + 6052, 2847, 4313, 755, 755, 1571, 5672, 779, 761, 755, + 6062, 490, 2698, 2699, 755, 779, 332, 779, 761, 42, + 43, 2305, 755, 755, 2308, 760, 761, 779, 779, 4977, + 761, 106, 1543, 5597, 350, 1090, 774, 2188, 779, 5073, + 356, 761, 2326, 1554, 5924, 5925, 1088, 779, 1088, 1176, + 1850, 715, 3438, 2337, 5461, 1850, 761, 1184, 275, 1186, + 772, 1403, 35, 36, 1191, 381, 6118, 758, 759, 760, + 761, 762, 763, 764, 765, 760, 761, 762, 763, 764, + 765, 5360, 774, 106, 774, 771, 32, 247, 34, 35, + 36, 1811, 38, 1148, 1221, 441, 140, 5977, 777, 715, + 1811, 774, 1811, 49, 4987, 660, 755, 756, 757, 1150, + 359, 1344, 187, 1811, 755, 635, 747, 201, 309, 722, + 736, 1176, 747, 1814, 147, 224, 71, 774, 777, 1184, + 755, 1186, 755, 366, 771, 1811, 1191, 366, 1884, 4440, + 300, 2101, 1811, 760, 761, 762, 763, 764, 765, 309, + 1811, 569, 368, 708, 49, 724, 1786, 359, 275, 133, + 464, 6041, 695, 322, 187, 779, 1221, 1150, 759, 760, + 761, 762, 763, 764, 765, 275, 4097, 4098, 70, 140, + 4101, 4102, 1982, 755, 275, 376, 4107, 4108, 760, 761, + 1281, 45, 366, 774, 727, 1400, 724, 32, 779, 34, + 35, 36, 1786, 38, 1259, 1260, 152, 755, 756, 757, + 1265, 1266, 98, 174, 49, 69, 191, 394, 4139, 4975, + 441, 4770, 5458, 755, 5460, 569, 156, 1282, 333, 1346, + 1811, 428, 113, 2071, 0, 46, 1291, 1435, 487, 1366, + 760, 4790, 156, 5395, 5916, 4794, 4795, 5919, 619, 293, + 1305, 1306, 755, 756, 757, 109, 2002, 736, 3106, 126, + 606, 100, 1773, 149, 290, 56, 393, 2013, 2014, 772, + 125, 1326, 4572, 2660, 2660, 70, 125, 406, 2116, 70, + 563, 72, 3228, 150, 6, 487, 312, 5170, 224, 100, + 87, 1346, 1347, 1984, 1985, 755, 756, 757, 361, 490, + 1991, 1992, 1993, 674, 1346, 2573, 1346, 1442, 2721, 2722, + 4819, 1366, 1400, 1400, 3268, 1329, 1330, 152, 3106, 1236, + 1400, 1238, 263, 2474, 2475, 430, 1381, 1922, 1260, 5076, + 150, 1400, 4510, 1265, 612, 146, 190, 4064, 1400, 109, + 2727, 2727, 4477, 349, 2064, 774, 1401, 1402, 2719, 4076, + 2721, 2722, 2503, 482, 1949, 1482, 774, 1397, 1400, 399, + 1400, 401, 666, 2865, 1400, 441, 2751, 2303, 2849, 191, + 1425, 225, 4589, 309, 13, 4592, 224, 2499, 2969, 1434, + 1946, 224, 728, 560, 600, 606, 281, 1442, 1443, 564, + 1307, 1446, 1400, 3527, 2679, 2517, 324, 1981, 218, 2521, + 2685, 224, 1457, 42, 43, 224, 722, 352, 452, 1464, + 302, 1466, 1453, 188, 1346, 100, 3106, 501, 359, 393, + 4157, 1476, 6094, 234, 74, 306, 585, 1482, 774, 3943, + 774, 1486, 1487, 650, 4046, 4047, 247, 686, 129, 3996, + 3072, 2826, 720, 3957, 4192, 1572, 679, 3961, 4192, 4123, + 679, 2836, 291, 275, 309, 738, 5339, 520, 4593, 465, + 1515, 146, 4123, 779, 2101, 3088, 1521, 106, 2149, 4362, + 1453, 4362, 3101, 4726, 447, 310, 4362, 39, 695, 695, + 291, 251, 679, 3464, 686, 662, 2197, 3200, 2197, 300, + 1545, 1408, 54, 1425, 5646, 711, 138, 1614, 309, 2197, + 125, 4046, 4047, 2184, 3095, 679, 355, 468, 4819, 3347, + 52, 1443, 2149, 4050, 4051, 5888, 1571, 1572, 4192, 492, + 2101, 364, 5269, 2546, 499, 624, 1274, 2550, 2197, 2552, + 606, 4192, 1464, 650, 1466, 465, 2197, 1285, 3376, 2220, + 2221, 332, 533, 2566, 2780, 736, 487, 2184, 187, 234, + 636, 465, 651, 774, 499, 56, 2579, 2580, 461, 350, + 2197, 356, 247, 738, 2886, 356, 1606, 4488, 2149, 70, + 594, 72, 1614, 348, 1614, 217, 98, 564, 228, 755, + 553, 2147, 2148, 2220, 2221, 147, 560, 2098, 3082, 3083, + 381, 3073, 441, 3075, 443, 695, 499, 660, 39, 5551, + 3438, 163, 71, 2184, 695, 3443, 291, 679, 4215, 4216, + 3456, 771, 696, 54, 542, 300, 2197, 558, 4239, 4240, + 169, 1676, 4243, 596, 309, 125, 1681, 1754, 190, 4250, + 336, 453, 658, 218, 1725, 735, 1691, 485, 644, 2220, + 2221, 5388, 281, 5390, 735, 606, 5393, 1702, 755, 46, + 771, 564, 728, 5400, 5401, 124, 5205, 572, 779, 1786, + 732, 4223, 485, 5410, 704, 551, 485, 707, 230, 5416, + 479, 4978, 469, 173, 1885, 1715, 261, 499, 2424, 1715, + 1815, 1816, 531, 1818, 1819, 1820, 1821, 762, 763, 764, + 765, 587, 564, 779, 2205, 1830, 56, 625, 283, 1754, + 5277, 1756, 2213, 455, 2855, 3296, 147, 2400, 3458, 700, + 70, 2222, 72, 1848, 6087, 5598, 502, 1772, 451, 39, + 163, 451, 163, 1778, 1779, 981, 982, 983, 719, 703, + 355, 1786, 1787, 233, 5146, 758, 759, 760, 761, 762, + 763, 764, 765, 133, 1676, 686, 450, 3263, 217, 1681, + 653, 738, 294, 1808, 563, 609, 328, 606, 544, 1691, + 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, + 1811, 9, 6117, 479, 1030, 1830, 298, 299, 1989, 1990, + 329, 578, 755, 756, 757, 2496, 682, 2496, 585, 230, + 3928, 771, 1847, 1848, 591, 1850, 414, 590, 2496, 779, + 301, 302, 2059, 4951, 1931, 6150, 3435, 748, 308, 755, + 756, 757, 100, 4961, 4962, 117, 441, 1872, 443, 288, + 641, 527, 3199, 125, 169, 738, 4735, 2496, 1811, 1884, + 582, 332, 747, 524, 525, 2496, 156, 528, 529, 530, + 1772, 737, 9, 5949, 429, 1972, 148, 5953, 1765, 350, + 9, 46, 138, 2483, 1981, 356, 1983, 5709, 146, 2496, + 593, 774, 164, 593, 307, 5896, 738, 169, 665, 3246, + 190, 393, 681, 695, 667, 4239, 1931, 760, 761, 5626, + 381, 3268, 3268, 5630, 456, 1817, 2143, 125, 592, 207, + 1822, 1946, 1824, 679, 2021, 406, 1951, 217, 200, 2483, + 218, 2861, 774, 454, 5644, 4783, 531, 659, 6039, 5458, + 105, 5460, 2593, 2751, 532, 2496, 2876, 1972, 9, 6038, + 755, 756, 757, 5335, 1979, 774, 1981, 1982, 1983, 738, + 727, 722, 1987, 2679, 74, 486, 1853, 4451, 520, 2685, + 1872, 2068, 4456, 4457, 289, 5357, 468, 2002, 336, 346, + 771, 202, 1884, 3324, 2700, 2915, 2593, 275, 2013, 2014, + 771, 715, 3347, 755, 5541, 3116, 2021, 5184, 288, 5546, + 5547, 138, 332, 715, 2774, 5827, 3457, 3479, 3480, 138, + 2671, 606, 98, 2674, 124, 287, 2706, 2678, 2826, 39, + 350, 447, 389, 3144, 391, 4359, 356, 779, 2836, 5039, + 56, 141, 46, 291, 4110, 1922, 5223, 6113, 559, 46, + 5757, 3133, 2593, 2068, 70, 3300, 156, 306, 54, 3304, + 590, 4630, 5762, 605, 5771, 779, 4635, 3149, 2623, 2084, + 4951, 5071, 1949, 3979, 125, 2090, 492, 779, 3160, 3161, + 4961, 4962, 2923, 2924, 2925, 126, 3459, 17, 18, 19, + 5559, 30, 50, 3438, 104, 1987, 376, 2112, 3443, 3977, + 2101, 105, 5210, 5572, 234, 2865, 147, 318, 105, 39, + 2002, 46, 4799, 2639, 2129, 141, 2131, 217, 660, 195, + 2135, 2013, 2014, 143, 3461, 39, 771, 484, 3459, 640, + 156, 479, 2147, 2148, 154, 49, 46, 667, 5392, 13, + 54, 2847, 162, 98, 560, 103, 668, 771, 2149, 2164, + 2165, 147, 4733, 115, 116, 779, 125, 46, 2101, 758, + 759, 760, 761, 762, 763, 764, 765, 163, 42, 43, + 105, 5830, 5831, 2188, 4861, 532, 186, 2192, 456, 527, + 190, 4762, 5719, 2184, 423, 4766, 133, 2202, 2785, 565, + 566, 4772, 2084, 2208, 221, 105, 2197, 2074, 2090, 1415, + 169, 704, 56, 2218, 2219, 708, 2149, 154, 488, 831, + 3106, 5635, 3, 223, 39, 563, 105, 244, 72, 2220, + 2221, 4231, 242, 580, 49, 847, 156, 149, 4238, 54, + 5407, 4241, 106, 147, 230, 761, 2201, 199, 4248, 30, + 479, 2184, 164, 2914, 2785, 2914, 772, 761, 774, 163, + 270, 261, 336, 200, 2197, 412, 2914, 2928, 772, 2928, + 190, 722, 419, 2853, 2861, 2265, 642, 668, 133, 2265, + 2928, 2940, 2164, 2165, 374, 2944, 190, 2220, 2221, 2876, + 639, 2452, 2940, 133, 5555, 2914, 2944, 217, 5559, 3209, + 771, 5950, 2945, 2914, 3214, 5954, 3155, 771, 779, 2928, + 2192, 5572, 87, 2956, 2957, 779, 125, 2928, 2961, 2853, + 2202, 2940, 669, 187, 276, 2944, 230, 2914, 2915, 2940, + 2861, 744, 147, 2944, 563, 4123, 2923, 2924, 2925, 5210, + 73, 2928, 3552, 681, 691, 2876, 150, 696, 163, 423, + 699, 2418, 85, 2940, 3564, 164, 664, 2944, 771, 4395, + 169, 5528, 761, 4399, 2369, 673, 6043, 3117, 288, 2374, + 678, 3014, 3117, 772, 186, 190, 376, 64, 727, 4938, + 4939, 502, 5253, 2914, 2915, 2390, 735, 771, 388, 1428, + 1429, 200, 2923, 2924, 2925, 779, 3039, 2928, 264, 5389, + 738, 18, 19, 3985, 4192, 479, 2483, 6129, 6130, 2940, + 276, 223, 722, 2944, 5404, 230, 31, 771, 4777, 4778, + 5281, 36, 626, 2500, 1463, 779, 2418, 5417, 2418, 5419, + 4894, 4895, 207, 637, 379, 302, 381, 729, 305, 4998, + 771, 5000, 6164, 218, 251, 6122, 2531, 174, 779, 261, + 771, 2536, 681, 527, 342, 343, 376, 771, 779, 771, + 2545, 3893, 505, 3895, 507, 508, 2551, 779, 1380, 2474, + 2475, 1383, 1384, 418, 334, 6124, 6125, 771, 2483, 522, + 23, 6158, 2487, 2488, 27, 779, 29, 2369, 31, 563, + 378, 491, 2374, 49, 4966, 2500, 586, 294, 2503, 4971, + 275, 2506, 2507, 448, 74, 6182, 3176, 3177, 283, 738, + 138, 5678, 5723, 410, 5725, 3176, 3177, 3176, 3177, 126, + 772, 2598, 6199, 2730, 2731, 2530, 2531, 771, 3176, 3177, + 46, 2536, 420, 1695, 1696, 779, 52, 661, 54, 771, + 2545, 5218, 2749, 661, 319, 774, 2551, 779, 764, 765, + 3176, 3177, 2759, 2760, 124, 738, 275, 3176, 3177, 3347, + 560, 453, 126, 2496, 376, 3176, 3177, 772, 488, 774, + 772, 141, 774, 2578, 617, 618, 388, 772, 3788, 774, + 3790, 1296, 3792, 4479, 778, 2670, 156, 1302, 1303, 2594, + 772, 2676, 2677, 2598, 2599, 2600, 772, 141, 774, 87, + 654, 2565, 2593, 693, 3300, 2487, 2488, 681, 3304, 141, + 126, 5979, 5980, 141, 2821, 2822, 2823, 2824, 4674, 1009, + 779, 307, 3209, 2628, 3534, 726, 5837, 3214, 118, 2496, + 2635, 2708, 735, 275, 2639, 580, 772, 1027, 774, 127, + 210, 1031, 1032, 4699, 649, 3176, 3177, 217, 113, 772, + 3438, 774, 429, 141, 429, 3443, 71, 2662, 5825, 74, + 2593, 2666, 2667, 2668, 738, 2670, 261, 5924, 5925, 614, + 2675, 2676, 2677, 772, 2679, 774, 2543, 771, 3209, 491, + 2685, 456, 281, 3214, 23, 24, 2641, 2554, 27, 772, + 29, 774, 31, 45, 126, 2700, 2578, 138, 681, 2704, + 774, 147, 4722, 2708, 2709, 772, 594, 774, 772, 124, + 774, 772, 127, 774, 5273, 4715, 598, 4717, 2600, 771, + 5977, 5932, 4742, 611, 5935, 80, 141, 4727, 141, 3479, + 3480, 4751, 112, 113, 114, 576, 32, 4757, 34, 35, + 36, 156, 38, 772, 40, 774, 4746, 4767, 560, 637, + 27, 3969, 29, 49, 4774, 4775, 2623, 772, 4758, 774, + 3456, 2716, 639, 46, 668, 4431, 4217, 255, 4219, 2774, + 2637, 468, 771, 4773, 695, 2780, 2853, 2854, 5242, 5243, + 772, 772, 774, 774, 6041, 572, 2668, 275, 143, 677, + 4008, 771, 771, 2675, 2785, 210, 772, 2679, 774, 154, + 288, 727, 217, 2685, 374, 5482, 772, 162, 774, 32, + 4389, 34, 35, 36, 772, 38, 774, 40, 2700, 4898, + 771, 3922, 105, 324, 744, 4881, 49, 324, 772, 52, + 774, 507, 508, 188, 2839, 22, 2841, 197, 25, 26, + 255, 329, 2847, 30, 3503, 2850, 522, 4426, 2853, 2854, + 2855, 324, 2785, 668, 542, 3503, 152, 4192, 281, 197, + 2865, 2728, 771, 5422, 2941, 772, 2943, 774, 4195, 2736, + 2861, 728, 729, 288, 731, 650, 733, 277, 2745, 2746, + 774, 420, 4326, 4327, 3503, 2876, 3958, 242, 3960, 772, + 351, 774, 3503, 780, 758, 759, 760, 761, 762, 763, + 764, 765, 23, 24, 3976, 201, 27, 772, 29, 774, + 31, 772, 4356, 774, 117, 270, 3503, 22, 406, 778, + 25, 26, 125, 2914, 2915, 30, 342, 14, 2861, 152, + 342, 729, 2923, 2924, 2925, 4379, 2941, 772, 2943, 774, + 23, 617, 618, 2876, 27, 148, 29, 3534, 31, 2940, + 23, 24, 727, 2944, 27, 772, 29, 774, 31, 374, + 735, 164, 772, 376, 774, 2847, 169, 772, 2850, 774, + 383, 5522, 3503, 772, 257, 774, 259, 4421, 201, 771, + 771, 2914, 2915, 729, 772, 398, 774, 270, 771, 771, + 2923, 2924, 2925, 72, 772, 2928, 774, 200, 294, 772, + 3973, 774, 772, 3534, 774, 288, 772, 772, 774, 774, + 423, 3078, 37, 772, 310, 774, 586, 771, 771, 4229, + 4230, 771, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 772, 5090, 774, 32, 771, 34, 35, + 36, 4251, 38, 5099, 40, 771, 3207, 4257, 3053, 772, + 772, 774, 774, 49, 206, 772, 4266, 774, 4268, 4269, + 4270, 2928, 4272, 4273, 524, 525, 771, 771, 528, 529, + 530, 4281, 4282, 4283, 4284, 4285, 772, 771, 774, 3084, + 206, 772, 3072, 774, 287, 743, 3078, 310, 3078, 772, + 771, 774, 32, 4675, 34, 35, 36, 772, 38, 774, + 40, 87, 771, 3058, 3109, 772, 771, 774, 3113, 49, + 771, 3116, 3117, 526, 206, 772, 32, 774, 34, 35, + 36, 120, 38, 693, 40, 772, 539, 774, 772, 772, + 774, 774, 32, 49, 34, 35, 36, 771, 38, 3144, + 40, 771, 3349, 3350, 557, 3352, 3353, 4474, 636, 49, + 772, 772, 774, 774, 206, 141, 152, 771, 6243, 772, + 771, 774, 650, 772, 30, 774, 654, 3172, 771, 3174, + 3331, 586, 3164, 771, 3164, 771, 14, 771, 3164, 771, + 771, 771, 3932, 3933, 467, 3176, 3177, 3932, 3933, 771, + 771, 3164, 771, 771, 771, 771, 195, 771, 3203, 3284, + 771, 14, 87, 771, 771, 201, 3164, 779, 771, 771, + 126, 699, 152, 771, 4880, 18, 19, 771, 3209, 771, + 23, 24, 25, 3214, 27, 771, 29, 3109, 31, 771, + 771, 3113, 218, 3310, 3441, 771, 152, 771, 771, 727, + 771, 80, 771, 3176, 3177, 4097, 4098, 771, 3891, 4101, + 4102, 771, 152, 4471, 771, 4107, 4108, 3334, 3335, 771, + 771, 201, 4693, 32, 771, 34, 35, 36, 681, 38, + 774, 40, 771, 771, 497, 771, 3209, 4027, 693, 3284, + 49, 3214, 4027, 696, 3289, 201, 285, 771, 771, 771, + 771, 771, 771, 771, 70, 3300, 771, 283, 755, 3304, + 771, 201, 771, 771, 143, 3310, 576, 3384, 771, 3264, + 197, 126, 771, 3318, 310, 154, 771, 771, 80, 95, + 23, 24, 25, 162, 27, 197, 29, 771, 31, 3334, + 3335, 771, 108, 218, 771, 23, 24, 25, 771, 27, + 771, 29, 32, 31, 34, 35, 36, 123, 38, 188, + 40, 771, 771, 771, 4050, 4051, 251, 771, 197, 49, + 771, 771, 771, 771, 771, 771, 771, 4743, 771, 771, + 310, 661, 771, 774, 4750, 151, 261, 4449, 4450, 3384, + 771, 143, 679, 152, 164, 5051, 125, 670, 671, 672, + 673, 376, 154, 679, 310, 3400, 5452, 695, 667, 502, + 162, 422, 401, 242, 4192, 125, 140, 3289, 774, 415, + 310, 32, 3367, 34, 35, 36, 774, 38, 3300, 40, + 774, 574, 3304, 351, 4800, 774, 188, 125, 49, 384, + 774, 270, 201, 774, 571, 197, 690, 755, 6, 456, + 735, 4804, 456, 429, 329, 9, 774, 210, 30, 133, + 226, 3456, 147, 64, 291, 3410, 398, 3412, 3413, 755, + 756, 757, 152, 3418, 3, 45, 575, 4298, 397, 44, + 456, 3426, 735, 3478, 3479, 3480, 3431, 306, 774, 3484, + 242, 420, 53, 4804, 5222, 4557, 125, 5225, 779, 774, + 118, 779, 423, 415, 479, 635, 3363, 3364, 3365, 3366, + 695, 3368, 3369, 324, 772, 324, 324, 138, 270, 499, + 306, 201, 3503, 553, 290, 501, 126, 150, 6, 306, + 771, 406, 32, 173, 34, 35, 36, 774, 38, 17, + 40, 152, 755, 756, 757, 778, 771, 779, 46, 49, + 420, 310, 772, 3534, 429, 772, 772, 3414, 3415, 105, + 3417, 774, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 5100, + 3427, 327, 774, 3430, 52, 779, 772, 3434, 5234, 640, + 4157, 456, 557, 772, 3456, 772, 5664, 5036, 563, 5038, + 201, 125, 5041, 125, 772, 5044, 772, 4218, 5047, 5048, + 772, 771, 80, 163, 779, 771, 5055, 133, 5057, 774, + 281, 3534, 3484, 780, 150, 774, 125, 5066, 594, 72, + 774, 762, 779, 679, 762, 4825, 501, 147, 483, 4829, + 310, 444, 5518, 399, 692, 401, 4157, 125, 613, 117, + 774, 4218, 679, 428, 772, 771, 5080, 125, 771, 774, + 3, 147, 152, 774, 4716, 133, 134, 210, 354, 5705, + 636, 502, 140, 231, 502, 143, 502, 502, 351, 502, + 148, 32, 150, 34, 35, 36, 154, 38, 654, 40, + 502, 755, 774, 774, 162, 118, 164, 281, 49, 667, + 46, 169, 664, 588, 735, 154, 772, 4218, 154, 310, + 4440, 201, 772, 4336, 772, 4440, 681, 772, 772, 203, + 188, 771, 774, 4362, 64, 704, 134, 432, 707, 197, + 696, 4298, 200, 699, 4362, 779, 244, 779, 656, 411, + 473, 771, 473, 587, 772, 774, 277, 67, 774, 726, + 218, 293, 694, 774, 214, 200, 721, 126, 197, 774, + 774, 727, 771, 4362, 281, 62, 3907, 142, 150, 735, + 238, 4362, 641, 738, 242, 96, 41, 772, 5496, 755, + 756, 757, 772, 251, 4407, 650, 420, 4298, 772, 654, + 336, 772, 772, 549, 550, 4362, 772, 5708, 774, 762, + 772, 152, 270, 5714, 5715, 772, 32, 126, 34, 35, + 36, 761, 38, 771, 40, 772, 772, 772, 772, 287, + 310, 772, 774, 49, 772, 293, 294, 772, 772, 772, + 376, 696, 772, 774, 772, 755, 756, 757, 772, 307, + 32, 309, 34, 35, 36, 772, 38, 779, 40, 774, + 201, 4362, 772, 774, 774, 5414, 771, 49, 774, 755, + 756, 757, 727, 17, 18, 19, 772, 772, 772, 772, + 735, 5517, 771, 376, 39, 755, 756, 757, 774, 771, + 210, 765, 771, 368, 772, 39, 583, 755, 3873, 30, + 30, 30, 772, 774, 774, 420, 442, 129, 6, 32, + 774, 34, 35, 36, 126, 38, 779, 40, 774, 17, + 18, 19, 125, 125, 497, 779, 49, 779, 72, 774, + 423, 774, 779, 3908, 774, 774, 152, 126, 605, 772, + 772, 52, 32, 479, 34, 35, 36, 3922, 38, 3924, + 40, 251, 178, 99, 98, 774, 661, 3932, 3933, 49, + 3935, 707, 774, 3938, 3939, 5394, 3926, 46, 774, 310, + 152, 32, 725, 34, 35, 36, 774, 38, 125, 40, + 568, 4036, 4783, 154, 154, 201, 479, 742, 49, 432, + 771, 527, 548, 540, 452, 261, 261, 5508, 261, 649, + 98, 5637, 261, 261, 309, 197, 125, 771, 755, 501, + 755, 755, 156, 3988, 755, 755, 755, 756, 757, 201, + 755, 557, 774, 5369, 5370, 3985, 5372, 563, 755, 152, + 755, 755, 726, 772, 294, 774, 755, 755, 755, 755, + 755, 755, 755, 141, 755, 5946, 190, 755, 755, 755, + 4025, 195, 4027, 197, 755, 4030, 4031, 755, 755, 755, + 568, 4036, 152, 164, 557, 33, 281, 779, 324, 80, + 563, 774, 3924, 217, 281, 4050, 4051, 779, 201, 779, + 499, 4206, 4057, 774, 382, 150, 747, 5795, 772, 5131, + 778, 152, 149, 149, 310, 755, 756, 757, 3935, 779, + 772, 32, 772, 34, 35, 36, 772, 38, 772, 40, + 208, 201, 772, 5459, 774, 206, 761, 772, 49, 761, + 613, 64, 779, 779, 772, 351, 772, 774, 310, 688, + 771, 771, 143, 329, 4765, 4146, 4765, 233, 281, 281, + 201, 126, 576, 154, 288, 681, 126, 4765, 5659, 779, + 779, 162, 5485, 5486, 32, 5861, 34, 35, 36, 771, + 38, 771, 40, 485, 755, 756, 757, 265, 266, 267, + 396, 49, 224, 4025, 761, 772, 4765, 188, 4030, 4031, + 29, 772, 774, 774, 4765, 771, 197, 310, 681, 287, + 755, 755, 771, 337, 5485, 5486, 4157, 5239, 4050, 4051, + 197, 6227, 738, 774, 536, 124, 324, 197, 4765, 197, + 4135, 4136, 4137, 49, 281, 4190, 154, 154, 772, 4194, + 310, 152, 4197, 774, 398, 398, 4783, 30, 721, 30, + 30, 242, 376, 4158, 4159, 52, 4161, 381, 232, 337, + 277, 339, 771, 771, 4206, 738, 4206, 771, 133, 310, + 4206, 477, 779, 125, 4157, 238, 5805, 4218, 762, 270, + 358, 4221, 772, 576, 4765, 5611, 762, 5613, 5614, 140, + 201, 774, 6138, 463, 152, 755, 756, 757, 376, 778, + 94, 774, 4783, 294, 742, 383, 771, 771, 779, 771, + 151, 151, 772, 772, 774, 772, 29, 755, 779, 772, + 398, 772, 771, 200, 774, 64, 772, 774, 772, 772, + 408, 771, 538, 755, 772, 4218, 774, 771, 4293, 777, + 778, 126, 30, 201, 4299, 423, 4937, 30, 224, 555, + 556, 308, 772, 774, 560, 561, 562, 4298, 5887, 545, + 771, 771, 774, 224, 488, 755, 4523, 4524, 4525, 4526, + 4527, 4528, 4529, 4530, 4531, 4532, 774, 4534, 4535, 4536, + 4537, 4538, 4539, 4540, 4541, 4542, 4543, 197, 398, 4546, + 4547, 771, 5552, 294, 6010, 771, 6242, 5926, 294, 310, + 771, 5561, 480, 5563, 5564, 5565, 5566, 5567, 52, 368, + 774, 772, 490, 30, 774, 4298, 439, 201, 281, 52, + 5040, 4362, 628, 432, 244, 129, 495, 216, 381, 771, + 771, 568, 4387, 125, 755, 756, 757, 5028, 125, 29, + 71, 772, 64, 74, 249, 164, 772, 309, 526, 772, + 635, 772, 310, 774, 497, 200, 774, 64, 772, 4414, + 32, 539, 34, 35, 36, 772, 38, 165, 40, 774, + 210, 677, 4427, 4378, 4631, 772, 4431, 49, 309, 4636, + 772, 746, 440, 169, 4595, 4440, 5346, 774, 4443, 772, + 4432, 772, 771, 124, 163, 4400, 127, 4437, 411, 733, + 210, 579, 336, 411, 197, 52, 772, 585, 633, 667, + 141, 166, 633, 771, 29, 294, 294, 29, 4473, 585, + 374, 6137, 281, 64, 584, 156, 6017, 4482, 652, 210, + 210, 5142, 210, 5142, 210, 155, 696, 5146, 210, 155, + 696, 595, 376, 210, 5142, 210, 210, 210, 5146, 197, + 197, 376, 478, 126, 432, 576, 309, 4512, 197, 755, + 756, 757, 150, 4518, 305, 643, 381, 4522, 305, 568, + 98, 56, 650, 5142, 771, 229, 772, 5146, 774, 772, + 152, 5142, 772, 4610, 772, 5146, 217, 491, 772, 423, + 4545, 772, 772, 755, 756, 757, 6212, 4414, 6127, 774, + 540, 772, 605, 681, 70, 5142, 151, 772, 442, 5146, + 6226, 772, 774, 5473, 64, 774, 6232, 772, 696, 697, + 744, 676, 774, 6239, 255, 772, 4443, 4582, 396, 201, + 779, 709, 772, 4668, 49, 774, 4591, 771, 771, 771, + 646, 779, 772, 52, 64, 479, 64, 115, 64, 439, + 29, 6142, 755, 756, 757, 4610, 32, 288, 34, 35, + 36, 5142, 38, 771, 40, 5146, 771, 771, 733, 772, + 5281, 774, 5281, 49, 138, 156, 322, 733, 217, 380, + 4512, 660, 402, 5281, 5275, 755, 756, 757, 5279, 5280, + 4522, 415, 4509, 527, 309, 417, 275, 290, 312, 4726, + 778, 125, 779, 4658, 774, 755, 29, 774, 4735, 772, + 540, 438, 5281, 4668, 755, 756, 757, 774, 4673, 772, + 5281, 772, 771, 557, 772, 771, 5335, 412, 575, 563, + 156, 771, 771, 774, 156, 4675, 228, 5335, 310, 772, + 771, 52, 772, 374, 5281, 774, 104, 774, 5357, 197, + 125, 471, 32, 30, 34, 35, 36, 64, 38, 5357, + 40, 4701, 64, 64, 402, 4701, 5335, 156, 125, 49, + 125, 4726, 774, 309, 5335, 772, 152, 576, 774, 29, + 4735, 454, 772, 772, 772, 641, 593, 4944, 5357, 593, + 433, 4608, 5652, 771, 779, 357, 5357, 294, 5335, 4956, + 5281, 71, 771, 779, 32, 4760, 34, 35, 36, 5346, + 38, 568, 40, 779, 118, 535, 771, 537, 779, 771, + 5357, 49, 118, 543, 4765, 201, 281, 281, 779, 779, + 779, 275, 779, 779, 779, 779, 779, 5859, 779, 772, + 779, 779, 4783, 676, 755, 756, 757, 681, 576, 71, + 71, 156, 779, 49, 5335, 687, 772, 702, 29, 774, + 774, 771, 17, 774, 64, 5346, 772, 64, 568, 771, + 6196, 32, 152, 34, 35, 36, 5357, 38, 771, 40, + 98, 98, 4765, 421, 604, 576, 576, 291, 49, 641, + 771, 411, 411, 423, 774, 4922, 771, 755, 756, 757, + 4783, 772, 772, 176, 738, 771, 693, 771, 195, 156, + 4865, 771, 733, 156, 291, 98, 774, 330, 52, 150, + 5942, 201, 779, 771, 152, 4880, 688, 771, 648, 581, + 772, 4958, 771, 197, 310, 771, 5473, 419, 192, 4879, + 774, 729, 779, 4879, 125, 5043, 415, 5538, 772, 771, + 169, 329, 577, 772, 771, 586, 4911, 473, 772, 771, + 244, 779, 323, 774, 772, 774, 772, 4922, 197, 772, + 4925, 5993, 4927, 201, 197, 111, 64, 772, 291, 100, + 641, 140, 32, 29, 34, 35, 36, 4942, 38, 4980, + 40, 152, 5473, 251, 771, 3164, 3432, 2611, 774, 49, + 5094, 5098, 3280, 4958, 5096, 1238, 5713, 5351, 4119, 5742, + 5880, 6083, 754, 1780, 1420, 4560, 5170, 4041, 5142, 5463, + 740, 5588, 5480, 4978, 4979, 5672, 4780, 1766, 2632, 3996, + 310, 751, 4987, 3527, 3474, 2099, 822, 4298, 2219, 2221, + 201, 4946, 4947, 4948, 4949, 2220, 2077, 4952, 4953, 5587, + 5586, 5327, 4957, 4657, 1462, 4960, 2136, 4145, 4963, 5408, + 4423, 4966, 693, 5227, 4865, 4970, 4971, 5037, 6090, 4427, + 5914, 2460, 5027, 5508, 6012, 5231, 6142, 6103, 5701, 6144, + 5050, 5818, 310, 5035, 5039, 2727, 5735, 1409, 6032, 4652, + 5060, 5076, 5269, 4658, 5049, 5385, 5051, 5067, 4936, 5069, + 5070, 6130, 152, 5058, 5059, 5981, 5992, 5891, 4359, 5064, + 4942, 4239, 4286, 5995, 5907, 5652, 5071, 5628, 4724, 4736, + 5729, 5076, 32, 4396, 34, 35, 36, 3877, 38, 4399, + 40, 5729, 4391, 6148, 88, 88, 5091, 4954, 4955, 49, + 6124, 5720, 6125, 3272, 5938, 5954, 5950, 4964, 4750, 310, + 5381, 201, 5379, 4657, 5073, 1530, 4028, 1439, 5113, 1961, + 5729, 4978, 3260, 5776, 955, 3255, 5905, 2780, 5729, 3109, + 5627, 5652, 4989, 2600, 2115, 5166, 3484, 17, 18, 19, + 2885, 4224, 133, 755, 756, 757, 1397, 3072, 3328, 5094, + 760, 5096, 5729, 5098, 3204, 5818, 4698, 3120, 1173, 4414, + 1348, 5142, 774, 3907, 1756, 5146, 1384, 3013, 5745, 3009, + 1610, 5166, 1003, 6235, 1699, 5170, 5862, 3818, 4801, 1620, + 1588, 5367, 5002, 2014, 2009, 5884, 5058, 1346, 1346, 1346, + 70, 1346, 72, 32, 1346, 34, 35, 36, 4476, 38, + 4911, 40, 152, 5885, 2004, 5891, 1594, 2030, 5729, 2714, + 49, 3900, 4591, 4590, 3320, 3898, 5222, 5637, 98, 5142, + 310, 5795, 4898, 1376, 5745, 5218, 3324, 32, 5085, 34, + 35, 36, 5246, 38, 5229, 40, 766, 106, 4595, 5234, + 5235, 2839, 2708, 88, 49, 671, 2186, 5907, 1404, 2878, + 4221, 201, 4437, 1152, 5517, 5250, 3360, 4473, 4475, 4917, + 1091, 141, 5257, 6137, 839, 5260, 5261, 840, 2129, 2574, + 5265, 5216, 677, 1839, 5269, 2575, 3198, 1400, 677, 123, + 2626, 5583, 5277, 5253, 4227, 1535, 1950, 5282, 6140, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 5281, 5007, 6177, 5376, 6232, 6239, 5992, 959, 5234, 2928, + 2594, 3176, 2875, 152, 3177, 676, 3178, 2225, 2509, 676, + 3173, 3169, 54, 3944, 3168, 5392, 1981, 4610, 208, 6229, + 4134, 2202, 1154, 1780, 674, 2774, 3116, 1523, 1523, 755, + 756, 757, 3275, 4704, 5339, 5449, 4146, 152, 714, 1292, + 112, 5382, 88, 5384, 5335, 88, 772, 1188, 5281, 88, + 310, 4990, 201, 3528, 2222, 5346, 654, 5362, 656, 5364, + 923, 4218, 5592, 5383, 5359, 5745, 5357, -1, -1, -1, + -1, -1, 670, -1, -1, 265, 266, 267, 120, 677, + -1, -1, -1, 5388, 5389, 5390, 201, 5392, 5393, -1, + 5395, -1, -1, -1, -1, 5400, 5401, 287, -1, 5404, + -1, -1, -1, 701, 5409, 5410, -1, -1, -1, -1, + -1, 5416, 5417, 5346, 5419, -1, -1, 5284, -1, -1, + -1, 5426, -1, -1, -1, 755, 756, 757, -1, -1, + -1, -1, -1, 5300, 1275, 5596, -1, -1, -1, -1, + -1, -1, -1, -1, 774, -1, -1, 337, 5453, 339, + -1, -1, -1, 195, -1, -1, -1, -1, 5463, -1, + -1, 310, 5467, -1, -1, -1, 356, -1, 358, -1, + -1, 6144, -1, -1, -1, -1, -1, 755, 756, 757, + -1, 32, 5473, 34, 35, 36, 376, 38, -1, 40, + -1, -1, -1, 383, -1, 310, 774, -1, 49, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, + -1, -1, 5517, -1, -1, -1, -1, -1, 408, -1, + -1, -1, 820, -1, -1, 5530, -1, -1, -1, 5534, + -1, 1372, -1, 423, -1, -1, 5541, 5542, -1, -1, + 5473, 5546, 5547, 285, 755, 756, 757, -1, 32, -1, + 34, 35, 36, -1, 38, -1, 40, -1, 5599, -1, + -1, -1, -1, 774, -1, 49, -1, -1, -1, -1, + -1, 5453, -1, -1, -1, -1, -1, -1, 5583, -1, + -1, -1, -1, -1, -1, -1, -1, 5592, -1, -1, + 480, -1, -1, 5598, -1, -1, 5586, -1, -1, -1, + 490, 152, -1, 5810, 5811, -1, 5813, 5814, 5815, 5816, + 908, -1, 910, 911, 912, -1, -1, -1, -1, -1, + 918, 5626, -1, 921, -1, 5630, -1, 5632, -1, -1, + -1, 5672, 5637, -1, -1, -1, 526, -1, -1, -1, + -1, 5646, 6229, -1, -1, -1, -1, -1, -1, 539, + 201, 393, 5657, 5658, -1, 755, 756, 757, -1, 401, + 5542, 5652, -1, 91, 92, 93, 94, 5672, 152, -1, + -1, -1, -1, 971, 774, -1, -1, 975, -1, -1, + -1, -1, -1, 1524, -1, -1, -1, 5728, 5693, 579, + -1, 5732, -1, -1, -1, 585, -1, 5702, 6229, -1, + -1, 999, -1, -1, 5709, -1, -1, 135, 136, 137, + 1008, -1, 5717, 5920, 5719, -1, 5923, 201, -1, 5652, + -1, -1, -1, -1, 5931, -1, -1, 5934, 5733, -1, + -1, -1, -1, -1, 5739, -1, -1, -1, 5729, -1, + -1, 32, -1, 34, 35, 36, -1, 38, 5768, 40, + -1, -1, 5757, 643, 5745, -1, 184, 185, 49, 310, + 650, -1, -1, 1604, -1, 5770, 5771, 5772, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1619, 1620, + -1, -1, -1, -1, 5861, -1, 5791, 1085, 1086, 1087, + 1088, 681, -1, -1, -1, 755, 756, 757, -1, 1097, + -1, -1, -1, -1, -1, -1, 696, 697, -1, -1, + -1, 5852, 5745, -1, 774, -1, -1, -1, 246, 709, + -1, -1, 5827, -1, -1, -1, 310, 5832, -1, 5870, + -1, -1, -1, 5838, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5927, 32, 1150, 34, 35, 36, 5861, 38, -1, 40, + -1, 152, -1, -1, -1, -1, -1, -1, 49, -1, + -1, -1, 5877, -1, 5879, -1, -1, -1, -1, 5884, + 5885, -1, -1, 311, 774, -1, -1, -1, -1, -1, + 5772, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5905, -1, -1, -1, -1, -1, 755, 756, 757, 5914, + 201, -1, -1, -1, 5981, -1, -1, -1, -1, 1760, + -1, 6082, 5927, -1, -1, 774, 1767, -1, -1, -1, + -1, 32, -1, 34, 35, 36, -1, 38, -1, 40, + 755, 756, 757, -1, -1, -1, -1, -1, 49, -1, + -1, -1, -1, 5958, 5995, 6032, -1, -1, -1, 774, + -1, 5966, 704, 5968, 5969, 707, -1, -1, -1, 1810, + -1, 152, 5977, 1271, 402, 717, 1274, -1, -1, -1, + -1, 5848, -1, -1, -1, -1, -1, -1, -1, 5981, + -1, 5981, 5997, -1, -1, -1, 32, 5879, 34, 35, + 36, -1, 38, -1, 40, 6010, -1, -1, -1, -1, + -1, -1, -1, 49, -1, -1, -1, -1, -1, 310, + 201, -1, -1, -1, 6101, -1, -1, 6032, -1, -1, + -1, -1, -1, -1, -1, -1, 6041, -1, 6079, -1, + -1, -1, -1, 471, -1, -1, 6051, 6052, -1, -1, + 6055, 152, -1, -1, 5921, 5922, -1, 6062, -1, -1, + -1, -1, -1, -1, -1, -1, 5933, -1, -1, -1, + 32, -1, 34, 35, 36, 6080, 38, -1, 40, 6240, + 6035, -1, -1, -1, -1, -1, -1, 49, 6129, 6130, + -1, 1932, -1, -1, -1, -1, 6101, -1, -1, -1, + 201, -1, -1, -1, -1, -1, -1, 535, -1, 537, + 5977, -1, -1, 6118, -1, 543, 152, -1, -1, -1, + -1, -1, -1, 6164, -1, -1, -1, -1, 6133, 310, + -1, -1, 6137, -1, 32, -1, 34, 35, 36, 6216, + 38, -1, 40, -1, 6221, -1, -1, -1, -1, 1447, + -1, 49, -1, -1, 6021, 1453, -1, 6024, -1, -1, + -1, -1, -1, -1, -1, 201, -1, -1, -1, -1, + -1, -1, -1, -1, 6041, -1, 604, 32, -1, 34, + 35, 36, -1, 38, -1, 40, -1, -1, -1, -1, + 152, 2032, -1, -1, 49, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 755, 756, 757, 6212, -1, 310, + -1, 6216, -1, -1, -1, -1, 6221, -1, -1, -1, + 648, 6226, -1, 774, -1, -1, -1, 6232, -1, -1, + -1, -1, -1, -1, 6239, 1533, -1, 1535, 6229, 201, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 152, -1, -1, -1, 32, -1, + 34, 35, 36, -1, 38, -1, 40, -1, -1, -1, + -1, 755, 756, 757, 310, 49, -1, -1, -1, -1, + -1, -1, -1, 1581, 1582, -1, -1, -1, -1, 1587, + 774, -1, -1, 1591, 1592, 1593, 6229, 152, -1, -1, + -1, -1, -1, 201, 1602, 1603, -1, -1, -1, -1, + 1608, -1, 740, -1, 1612, 1613, 1614, -1, 1616, 1617, + 1618, -1, -1, 751, -1, -1, -1, -1, 1626, -1, + 1628, -1, -1, 1631, 1632, 1633, 1634, -1, 1636, -1, + 1638, 1639, 1640, -1, -1, -1, 201, 1645, 310, -1, + 1648, -1, -1, -1, -1, -1, 1654, 1655, -1, 1657, + 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, -1, + 1668, 1669, 1670, 1671, 1672, -1, 1674, 1675, 152, 1677, + 1678, 1679, -1, -1, 1682, 1683, 1684, 2228, 1686, 1687, + 1688, -1, 1690, -1, 1692, -1, 1694, -1, -1, -1, + 1698, 1699, 1700, -1, -1, 1703, 1704, 1705, 1706, 1707, + -1, 1709, 310, -1, -1, -1, -1, -1, 1716, -1, + 32, 1719, 34, 35, 36, -1, 38, 201, 40, 1727, + -1, -1, -1, 1731, 1732, 1733, 1734, 49, 1736, 1737, + -1, -1, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, + 1748, 1749, 1750, 1751, 1752, 310, -1, 1755, -1, -1, + -1, -1, 2303, 2304, 755, 756, 757, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 774, -1, -1, -1, -1, -1, 32, + -1, 34, 35, 36, 1792, 38, -1, 40, -1, -1, + -1, -1, 6, -1, -1, -1, 49, -1, -1, -1, + -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 310, -1, -1, -1, + 152, 45, -1, 47, 48, -1, -1, -1, 2389, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2403, -1, -1, 69, -1, 71, -1, -1, + -1, -1, -1, 77, 755, 756, 757, -1, -1, -1, + -1, 1879, 32, -1, 34, 35, 36, -1, 38, 201, + 40, -1, -1, 774, 98, -1, -1, -1, -1, 49, + -1, -1, -1, -1, -1, 109, -1, -1, 1906, 152, + 1908, -1, -1, -1, -1, -1, -1, 32, -1, 34, + 35, 36, -1, 38, -1, 40, -1, -1, -1, -1, + -1, -1, -1, -1, 49, -1, -1, 141, -1, -1, + -1, -1, -1, -1, -1, 1943, -1, -1, -1, -1, + -1, 2492, -1, -1, 755, 756, 757, -1, 201, -1, + -1, -1, -1, -1, -1, 169, -1, -1, 2509, -1, + -1, -1, 32, 774, 34, 35, 36, -1, 38, -1, + 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, + -1, -1, -1, -1, 198, -1, 200, 32, 310, 34, + 35, 36, 152, 38, 208, 40, 210, -1, -1, -1, + -1, -1, -1, -1, 49, -1, -1, -1, -1, 755, + 756, 757, -1, -1, -1, -1, -1, -1, 232, 2027, + -1, -1, -1, -1, -1, -1, -1, 152, 774, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 201, -1, -1, 2595, -1, -1, -1, -1, -1, + -1, 265, 266, 267, -1, -1, -1, 310, 32, -1, + 34, 35, 36, -1, 38, -1, 40, -1, -1, -1, + -1, -1, -1, 287, -1, 49, 201, -1, -1, -1, + 2631, 2632, 152, 755, 756, 757, -1, -1, 32, -1, + 34, 35, 36, 2101, 38, 32, 40, 34, 35, 36, + -1, 38, 774, 40, -1, 49, -1, 152, -1, -1, + -1, -1, 49, -1, -1, 329, -1, -1, -1, -1, + -1, -1, -1, 337, -1, 339, 32, -1, 34, 35, + 36, 201, 38, -1, 40, -1, -1, -1, -1, -1, + -1, 2149, -1, 49, 358, -1, 52, 755, 756, 757, + 310, 365, -1, -1, -1, -1, 201, -1, -1, -1, + -1, -1, 376, -1, -1, -1, 774, -1, 2719, 383, + 2721, 2722, 2723, -1, -1, -1, 2184, -1, 152, 2187, + -1, -1, -1, -1, 398, 310, -1, -1, -1, 2197, + 755, 756, 757, -1, 408, -1, -1, -1, 412, 413, + -1, -1, -1, -1, -1, 419, -1, 772, 152, 423, + -1, -1, 2220, 2221, -1, 152, -1, 431, -1, -1, + 32, 2229, 34, 35, 36, -1, 38, 201, 40, 2237, + 2238, -1, -1, -1, -1, -1, -1, 49, 452, -1, + 310, -1, -1, -1, -1, -1, 152, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 201, -1, -1, + -1, -1, 476, -1, 201, 310, 480, -1, -1, -1, + -1, 755, 756, 757, -1, -1, 490, -1, -1, -1, + -1, -1, -1, -1, 2292, -1, -1, -1, -1, -1, + 774, -1, -1, -1, -1, 201, -1, -1, -1, -1, + 32, -1, 34, 35, 36, -1, 38, -1, 40, -1, + -1, -1, 526, -1, -1, -1, -1, 49, -1, -1, + 2328, 2329, 2330, -1, 2875, 539, -1, 541, -1, -1, + -1, 32, -1, 34, 35, 36, 310, 38, -1, 40, + 152, -1, -1, -1, -1, -1, -1, -1, 49, -1, + 32, -1, 34, 35, 36, -1, 38, -1, 40, -1, + -1, -1, -1, -1, -1, 579, 310, 49, -1, -1, + -1, 585, -1, 310, 32, -1, 34, 35, 36, -1, + 38, -1, 40, -1, -1, -1, -1, -1, -1, 201, + -1, 49, 2400, -1, -1, -1, 610, -1, -1, -1, + -1, -1, -1, -1, 310, -1, -1, 621, 622, 623, + 2418, 5, 6, -1, 2422, 2423, -1, 2425, 2426, -1, + 152, -1, -1, -1, -1, -1, 2434, -1, 2436, 643, + -1, -1, -1, 755, 756, 757, 650, -1, -1, -1, + -1, 32, -1, 34, 35, 36, -1, 38, -1, 40, + -1, 152, 774, 47, 48, -1, 2464, -1, 49, -1, + -1, -1, -1, -1, -1, -1, -1, 681, -1, 201, + 152, 65, -1, 67, -1, 69, -1, 71, -1, -1, + -1, -1, 696, 697, 2492, 79, -1, -1, 2496, -1, + -1, -1, -1, -1, 152, 709, -1, 2505, 310, 713, + 201, -1, 755, 756, 757, -1, 100, -1, 102, 103, + 2518, -1, -1, -1, -1, 109, -1, -1, -1, 201, + -1, 774, -1, -1, 32, -1, 34, 35, 36, -1, + 38, 125, 40, -1, -1, 129, 2544, -1, 3089, -1, + -1, 49, -1, 201, 138, -1, -1, -1, -1, 353, + -1, -1, 146, -1, -1, 3106, 360, -1, -1, -1, + -1, 152, -1, 157, 778, -1, -1, -1, -1, -1, + -1, 375, -1, 167, -1, 169, -1, -1, 310, 173, + 2588, 385, 386, 387, -1, 2593, -1, -1, -1, -1, + -1, 395, -1, -1, -1, 755, 756, 757, -1, -1, + -1, -1, -1, -1, 198, -1, -1, -1, -1, 310, + 201, -1, -1, -1, 774, 209, 210, -1, 2626, -1, + -1, -1, -1, -1, -1, 219, 220, 3178, 310, -1, + 755, 756, 757, -1, -1, -1, -1, 231, 232, 233, + 234, -1, 236, -1, 152, -1, -1, 241, -1, 774, + -1, -1, 310, 247, -1, -1, -1, 251, 252, 253, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, -1, 32, -1, 34, 35, 36, -1, 38, -1, + 40, -1, -1, -1, -1, 755, 756, 757, -1, 49, + -1, -1, -1, 201, -1, 289, -1, 291, -1, 293, + -1, -1, -1, 2711, 774, -1, 300, -1, -1, -1, + 755, 756, 757, -1, 308, 309, -1, 2725, -1, 310, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 774, + 534, -1, 32, -1, 34, 35, 36, -1, 38, -1, + 40, -1, 546, -1, -1, -1, -1, 341, 342, 49, + 344, -1, -1, -1, -1, -1, -1, 351, -1, 120, + -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, + -1, -1, -1, 3324, -1, -1, 2784, 2785, -1, -1, + -1, 755, 756, 757, 378, -1, -1, -1, -1, -1, + -1, 32, 152, 34, 35, 36, -1, 38, -1, 40, + 774, -1, 310, -1, -1, -1, -1, -1, 49, 403, + -1, 755, 756, 757, -1, -1, -1, -1, 755, 756, + 757, 415, -1, -1, -1, -1, -1, -1, 632, -1, + 774, -1, -1, -1, 195, -1, -1, 774, -1, -1, + 434, 201, -1, 647, -1, -1, -1, -1, -1, 755, + 756, 757, 152, 2861, -1, 449, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 460, -1, 2876, 463, + -1, -1, 466, -1, -1, -1, -1, -1, -1, -1, + 684, -1, -1, -1, -1, -1, -1, 481, -1, -1, + -1, -1, -1, -1, 698, -1, -1, -1, -1, -1, + -1, 201, -1, -1, -1, -1, 2914, 2915, 3459, -1, + -1, 152, -1, -1, -1, 2923, 2924, 2925, -1, -1, + 2928, 2929, -1, -1, 285, 2933, -1, -1, 2936, -1, + -1, -1, 2940, -1, -1, -1, 2944, 2945, -1, -1, + -1, -1, -1, 755, 756, 757, 2954, -1, 2956, 2957, + 310, 2959, 2960, 2961, 2962, -1, 2964, -1, 2966, 2967, + 201, 2969, 774, -1, -1, -1, -1, -1, -1, 2977, + 2978, -1, -1, -1, 2982, 2983, 2984, 2985, -1, -1, + 2988, 2989, -1, -1, 2992, -1, 2994, -1, 2996, -1, + 2998, -1, -1, -1, 3002, -1, -1, -1, -1, -1, + 594, 3009, -1, 3011, -1, 3013, 3014, 3015, -1, 3017, + 310, -1, 3020, 3021, 3022, 3023, -1, -1, 3026, -1, + -1, -1, -1, 755, 756, 757, -1, -1, -1, 623, + -1, 3039, 393, 627, 3042, -1, 3044, 3045, 3046, -1, + 401, 3049, 774, 637, -1, -1, -1, 3055, -1, -1, + -1, 645, -1, -1, 755, 756, 757, -1, -1, -1, + -1, -1, -1, 657, 5, 3073, -1, 3075, -1, 310, + 3078, 772, -1, 755, 756, 757, -1, -1, 353, -1, + 3088, -1, 3090, 677, -1, 360, 680, 3095, -1, -1, + 772, -1, -1, -1, -1, -1, -1, 755, 756, 757, + 375, -1, -1, -1, -1, -1, 47, 48, -1, -1, + 385, 386, 387, -1, 772, -1, -1, -1, -1, 713, + 395, -1, -1, -1, 65, -1, 67, -1, 69, 723, + 71, -1, -1, -1, -1, 3143, -1, -1, 79, -1, + -1, -1, -1, -1, -1, -1, -1, 3155, -1, -1, + -1, -1, -1, -1, 3162, 749, -1, -1, -1, 100, + -1, 102, 103, -1, 755, 756, 757, -1, 109, -1, + -1, -1, -1, -1, -1, -1, -1, 771, -1, -1, + -1, 772, -1, -1, 125, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, + 3208, 3209, -1, -1, -1, 146, 3214, 32, -1, 34, + 35, 36, -1, 38, -1, 40, 157, -1, -1, 32, + 3228, 34, 35, 36, 49, 38, 167, 40, 169, -1, + -1, -1, 173, -1, -1, -1, 49, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 755, 756, 757, + 32, -1, 34, 35, 36, -1, 38, 198, 40, 534, + -1, -1, -1, -1, 772, -1, -1, 49, 209, 210, + -1, 546, -1, -1, -1, -1, -1, -1, 219, 220, + -1, -1, -1, -1, -1, -1, -1, -1, 3296, -1, + 231, 232, 233, 234, -1, 236, -1, -1, -1, -1, + 241, -1, -1, -1, -1, -1, 247, -1, -1, 3317, + 251, 252, 253, -1, 32, -1, 34, 35, 36, -1, + 38, 3872, 40, -1, -1, -1, -1, 152, -1, -1, + -1, 49, -1, -1, -1, -1, -1, -1, 3346, 152, + -1, -1, -1, 704, -1, -1, 707, -1, 289, -1, + 291, -1, 293, -1, -1, -1, 717, -1, -1, 300, + -1, -1, -1, -1, 3372, 3373, -1, 308, 309, -1, + 152, -1, 647, -1, -1, -1, 201, -1, -1, -1, + -1, 32, -1, 34, 35, 36, 3937, 38, 201, 40, + -1, -1, -1, -1, -1, 755, 756, 757, 49, -1, + 341, 342, -1, 344, -1, -1, -1, -1, -1, 684, + 351, -1, 772, -1, -1, -1, -1, 358, -1, 201, + -1, -1, -1, 698, -1, -1, -1, -1, 3436, 3437, + -1, -1, -1, -1, 152, -1, 32, 378, 34, 35, + 36, -1, 38, -1, 40, 3996, 32, 5, 34, 35, + 36, -1, 38, 49, 40, 755, 756, 757, -1, -1, + -1, -1, 403, 49, -1, 3473, -1, -1, -1, -1, + -1, -1, 772, -1, 415, -1, -1, -1, -1, -1, + -1, -1, -1, 201, -1, 310, -1, -1, -1, 47, + 48, -1, -1, 434, -1, 3503, -1, 310, -1, -1, + -1, 152, -1, -1, -1, -1, -1, 65, 449, -1, + -1, 69, -1, 71, 755, 756, 757, 3525, -1, 460, + -1, 79, 463, -1, -1, 466, 3534, -1, 310, 3537, + -1, 772, 3540, -1, -1, -1, -1, -1, -1, -1, + 481, -1, 100, -1, 102, 103, -1, -1, -1, -1, + 201, 109, -1, -1, -1, -1, 152, 32, -1, 34, + 35, 36, -1, 38, -1, 40, 152, -1, -1, -1, + -1, 129, -1, -1, 49, -1, -1, 32, -1, 34, + 35, 36, -1, 38, -1, 40, -1, 32, 146, 34, + 35, 36, 310, 38, 49, 40, -1, -1, -1, 157, + -1, -1, -1, -1, 49, 201, -1, -1, -1, 167, + -1, 169, -1, -1, -1, 201, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, 34, 35, 36, + -1, 38, -1, 40, -1, -1, -1, -1, -1, -1, + 198, -1, 49, -1, -1, -1, -1, -1, -1, -1, + -1, 209, 210, 594, -1, -1, -1, -1, -1, 310, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 231, 232, -1, 234, 152, 236, -1, + -1, -1, 623, 241, -1, -1, 627, -1, -1, 247, + -1, -1, -1, 251, 252, 253, 637, 152, -1, -1, + -1, -1, -1, -1, 645, -1, -1, 152, -1, -1, + -1, -1, -1, -1, 310, -1, 657, -1, -1, -1, + -1, -1, -1, -1, 310, -1, 201, -1, -1, -1, + -1, 289, -1, 291, -1, 293, 677, -1, -1, 680, + -1, -1, 300, -1, -1, 152, 201, -1, -1, -1, + -1, 309, -1, -1, -1, -1, 201, 32, -1, 34, + 35, 36, -1, 38, -1, 40, -1, -1, -1, -1, + -1, -1, 713, -1, 49, -1, -1, -1, -1, -1, + -1, -1, 723, 341, -1, -1, 344, -1, -1, -1, + -1, -1, -1, 351, 201, 32, -1, 34, 35, 36, + 358, 38, -1, 40, -1, -1, 3814, 3815, 749, -1, + -1, 3819, 49, -1, -1, -1, -1, -1, -1, -1, + 378, -1, -1, -1, -1, 32, -1, 34, 35, 36, + 771, 38, 3840, 40, 3842, 310, 3844, -1, 3846, -1, + -1, -1, 49, -1, -1, 403, 32, -1, 34, 35, + 36, -1, 38, -1, 40, 310, -1, 415, 3866, -1, + -1, -1, -1, 49, 32, 310, 34, 35, 36, -1, + 38, -1, 40, -1, -1, -1, 434, 152, 3886, 3887, + -1, 49, -1, 3891, -1, 3893, -1, 3895, -1, -1, + -1, 449, 3900, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 460, 310, 3912, 463, -1, -1, 466, -1, + -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, + -1, -1, -1, 481, -1, -1, 201, -1, -1, -1, + 755, 756, 757, -1, -1, 3943, -1, -1, -1, -1, + -1, -1, 755, 756, 757, 152, -1, 772, -1, 3957, + -1, -1, -1, 3961, -1, -1, -1, -1, -1, 772, + -1, -1, -1, -1, 201, -1, 152, -1, -1, -1, + -1, 3979, -1, 755, 756, 757, -1, -1, -1, -1, + -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, + 772, -1, -1, 32, 201, 34, 35, 36, -1, 38, + -1, 40, -1, -1, -1, 32, -1, 34, 35, 36, + 49, 38, -1, 40, -1, 201, -1, -1, -1, -1, + -1, -1, 49, -1, 4032, 4033, 32, -1, 34, 35, + 36, -1, 38, 201, 40, 310, 594, 755, 756, 757, + -1, -1, -1, 49, -1, -1, 4054, -1, -1, -1, + -1, -1, -1, -1, 772, 32, 4064, 34, 35, 36, + -1, 38, -1, 40, -1, 623, -1, -1, 4076, 627, + 4078, -1, 49, 310, 32, -1, 34, 35, 36, 637, + 38, -1, 40, -1, -1, -1, -1, 645, -1, -1, + -1, 49, 32, -1, 34, 35, 36, -1, 38, 657, + 40, -1, -1, 310, 755, 756, 757, -1, -1, 49, + -1, -1, -1, 152, -1, -1, -1, -1, -1, 677, + -1, 772, 680, -1, 310, 152, 32, -1, 34, 35, + 36, -1, 38, -1, 40, -1, -1, 4145, -1, -1, + -1, -1, 310, 49, -1, -1, 152, -1, -1, 4157, + 32, -1, 34, 35, 36, 713, 38, -1, 40, 755, + 756, 757, 201, -1, -1, 723, -1, 49, -1, 755, + 756, 757, -1, -1, 201, 152, 772, -1, -1, -1, + -1, -1, -1, 4191, -1, -1, 772, -1, -1, -1, + -1, 749, -1, -1, 152, 201, -1, -1, 32, -1, + 34, 35, 36, -1, 38, -1, 40, -1, -1, -1, + 4218, -1, 152, 771, -1, 49, -1, 32, -1, 34, + 35, 36, -1, 38, 201, 40, -1, -1, -1, -1, + -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, + -1, -1, -1, 201, -1, -1, 152, -1, -1, -1, + -1, -1, 32, 4804, 34, 35, 36, -1, 38, -1, + 40, 201, -1, -1, -1, -1, -1, -1, -1, 49, + 152, 310, -1, -1, -1, -1, -1, -1, -1, -1, + 755, 756, 757, 310, -1, -1, -1, -1, -1, -1, + 4298, -1, -1, -1, -1, 201, -1, 772, -1, -1, + 755, 756, 757, -1, 310, -1, -1, -1, -1, -1, + 755, 756, 757, -1, -1, -1, -1, 772, 152, 201, + -1, -1, -1, -1, -1, 4333, 4334, 772, 4336, -1, + -1, -1, -1, 310, -1, 4886, -1, 152, -1, 4347, + -1, 4349, -1, -1, 4352, -1, -1, -1, 755, 756, + 757, -1, 310, -1, 4362, -1, 4364, -1, 4366, -1, + 4368, -1, 4370, -1, -1, 772, -1, 201, -1, -1, + 310, -1, 152, -1, 4382, 4383, 32, -1, 34, 35, + 36, -1, 38, -1, 40, -1, 201, -1, -1, -1, + -1, -1, -1, 49, -1, 656, -1, -1, -1, 4407, + -1, -1, -1, 32, 310, 34, 35, 36, -1, 38, + -1, 40, -1, -1, -1, -1, -1, 17, 18, 19, + 49, 201, -1, -1, -1, -1, -1, 32, 310, 34, + 35, 36, -1, 38, -1, 40, -1, -1, -1, 39, + 701, -1, -1, 4451, 49, -1, -1, -1, 4456, 4457, + -1, -1, 52, 32, -1, 34, 35, 36, -1, 38, + -1, 40, -1, -1, -1, -1, -1, 4475, -1, -1, + 49, 4479, 72, -1, -1, -1, 310, -1, -1, -1, + 755, 756, 757, 32, -1, 34, 35, 36, -1, 38, + -1, 40, -1, -1, -1, 310, 152, 772, 98, -1, + 49, -1, -1, -1, 32, -1, 34, 35, 36, -1, + 38, -1, 40, -1, -1, -1, -1, -1, 755, 756, + 757, 49, -1, 152, -1, -1, -1, -1, -1, -1, + 310, -1, -1, -1, -1, 772, -1, -1, -1, -1, + -1, -1, -1, -1, 4552, 201, -1, 152, 755, 756, + 757, -1, -1, -1, -1, -1, 156, -1, -1, 820, + -1, -1, -1, -1, -1, 772, -1, -1, -1, 755, + 756, 757, 201, 152, -1, -1, -1, 32, -1, 34, + 35, 36, -1, 38, -1, 40, 772, 755, 756, 757, + 190, -1, -1, -1, 49, 195, 201, 197, -1, -1, + -1, -1, -1, 152, 772, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, + -1, -1, 201, -1, 152, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, + -1, 34, 35, 36, 4652, 38, -1, 40, -1, -1, + -1, -1, 201, -1, 310, -1, 49, 4665, 4666, -1, + -1, -1, -1, -1, -1, -1, 32, -1, 34, 35, + 36, -1, 38, 201, 40, -1, -1, -1, -1, -1, + -1, 310, -1, 49, -1, -1, -1, -1, 288, -1, + -1, -1, -1, -1, 955, -1, -1, 152, -1, -1, + -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, + 971, -1, -1, -1, 975, -1, 755, 756, 757, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 755, 756, + 757, 310, -1, 772, -1, -1, -1, 337, 999, -1, + -1, -1, 1003, -1, -1, 772, 201, 1008, -1, 755, + 756, 757, -1, -1, -1, -1, -1, 4765, -1, 152, + -1, 310, -1, -1, -1, -1, 772, -1, -1, -1, + -1, -1, -1, -1, -1, 4783, 376, -1, 755, 756, + 757, -1, 310, -1, -1, -1, 152, -1, -1, -1, + -1, 4799, -1, -1, -1, 772, -1, 755, 756, 757, + -1, -1, -1, -1, -1, -1, -1, -1, 201, -1, + -1, -1, -1, -1, 772, 755, 756, 757, -1, -1, + -1, -1, -1, -1, 1085, 1086, 1087, 1088, -1, -1, + 1091, -1, 772, -1, -1, 201, 1097, -1, -1, 32, + -1, 34, 35, 36, -1, 38, -1, 40, -1, 755, + 756, 757, -1, 4861, -1, 310, 49, -1, 458, 32, + -1, 34, 35, 36, -1, 38, 772, 40, -1, -1, + -1, -1, -1, 755, 756, 757, 49, 32, -1, 34, + 35, 36, -1, 38, 277, 40, 4894, 4895, 488, -1, + 772, -1, -1, -1, 49, -1, -1, 32, -1, 34, + 35, 36, -1, 38, -1, 40, -1, -1, -1, 4917, + -1, -1, -1, -1, 49, -1, -1, 310, -1, -1, + -1, 755, 756, 757, -1, -1, -1, 1188, -1, -1, + -1, -1, -1, -1, 5485, 5486, -1, -1, 772, -1, + 755, 756, 757, 32, 310, 34, 35, 36, -1, 38, + -1, 40, -1, -1, -1, -1, -1, 772, -1, 152, + 49, -1, -1, -1, -1, -1, -1, 4975, -1, 4977, + -1, 5522, -1, -1, -1, 755, 756, 757, -1, 152, + -1, -1, -1, -1, 4992, -1, 4994, 32, -1, 34, + 35, 36, 772, 38, -1, 40, -1, 152, -1, -1, + -1, -1, -1, -1, 49, -1, -1, -1, 201, -1, + 1271, -1, -1, -1, 1275, -1, 32, 152, 34, 35, + 36, -1, 38, -1, 40, -1, -1, -1, 201, -1, + -1, -1, -1, 49, 32, -1, 34, 35, 36, -1, + 38, -1, 40, -1, -1, -1, 201, -1, -1, -1, + -1, 49, 652, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 152, -1, 5073, 201, 32, -1, 34, + 35, 36, -1, 38, -1, 40, -1, -1, -1, -1, + -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, + -1, -1, 5100, -1, -1, -1, -1, -1, -1, 755, + 756, 757, -1, -1, -1, -1, -1, 152, -1, -1, + 126, 1372, 201, -1, -1, -1, 772, 310, -1, -1, + -1, -1, -1, -1, -1, -1, 755, 756, 757, -1, + -1, -1, -1, -1, 5142, -1, 152, 310, 5146, 5147, + -1, -1, -1, 772, 744, -1, -1, -1, -1, -1, + 755, 756, 757, -1, 152, 310, 201, -1, -1, -1, + -1, 126, -1, -1, -1, -1, -1, 772, -1, -1, + -1, -1, -1, -1, -1, 310, 755, 756, 757, -1, + -1, -1, -1, 5191, -1, 201, 1447, 152, -1, -1, + -1, -1, -1, 772, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 201, -1, -1, 755, 756, 757, -1, + 5218, -1, -1, -1, 32, -1, 34, 35, 36, -1, + 38, 310, 40, 772, -1, -1, -1, 755, 756, 757, + -1, 49, -1, -1, 5242, 5243, 201, -1, -1, -1, + -1, -1, -1, -1, 772, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1524, -1, 310, -1, -1, -1, -1, + -1, -1, 1533, 5281, 1535, -1, -1, -1, -1, 277, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, + 755, 756, 757, -1, -1, -1, -1, -1, 126, -1, + -1, -1, 310, -1, -1, -1, -1, 772, -1, -1, + 1581, 1582, -1, -1, -1, -1, 1587, 5335, -1, -1, + 1591, 1592, 1593, -1, 152, -1, -1, -1, 5346, -1, + -1, 1602, 1603, 1604, -1, 310, -1, 1608, -1, 5357, + -1, 1612, 1613, 1614, -1, 1616, 1617, 1618, 1619, 1620, + -1, -1, 755, 756, 757, 1626, -1, 1628, -1, -1, + 1631, 1632, 1633, 1634, -1, 1636, -1, 1638, 1639, 1640, + -1, -1, -1, 201, 1645, -1, -1, 1648, -1, 755, + 756, 757, -1, 1654, 1655, -1, 1657, 1658, 1659, 1660, + 1661, 1662, 1663, 1664, 1665, 1666, 772, 1668, 1669, 1670, + 1671, 1672, -1, 1674, 1675, -1, 1677, 1678, 1679, -1, + -1, 1682, 1683, 1684, -1, 1686, 1687, 1688, -1, 1690, + -1, 1692, -1, 1694, -1, -1, -1, 1698, 1699, 1700, + -1, -1, 1703, 1704, 1705, 1706, 1707, -1, 1709, -1, + -1, -1, -1, -1, -1, 1716, -1, -1, 1719, -1, + -1, -1, -1, -1, -1, 5473, 1727, -1, -1, -1, + 1731, 1732, 1733, 1734, 5482, 1736, 1737, -1, -1, 1740, + 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, + 1751, 1752, 310, -1, 1755, -1, -1, -1, -1, 1760, + 5508, -1, -1, -1, -1, -1, 1767, -1, -1, -1, + 5518, -1, -1, 17, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5537, + 32, 1792, 34, 35, 36, 39, 38, -1, 40, -1, + 32, -1, 34, 35, 36, -1, 38, 49, 40, 1810, + 32, -1, 34, 35, 36, -1, 38, 49, 40, -1, + 52, -1, 755, 756, 757, -1, -1, 49, 72, 32, + -1, 34, 35, 36, -1, 38, -1, 40, -1, 772, + -1, -1, 755, 756, 757, -1, 49, -1, -1, 52, + -1, -1, -1, -1, 98, -1, -1, -1, -1, 772, + 755, 756, 757, -1, -1, -1, -1, -1, -1, 91, + 92, 93, 94, -1, -1, -1, -1, 772, 1879, -1, + 755, 756, 757, -1, 126, 32, -1, 34, 35, 36, + -1, 38, -1, 40, -1, -1, -1, 772, -1, -1, + -1, -1, 49, -1, 5652, 1906, -1, 1908, -1, -1, + 152, 5659, 156, 135, 136, 137, -1, -1, -1, -1, + 152, -1, -1, -1, -1, -1, 755, 756, 757, -1, + 152, 1932, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1943, 772, -1, -1, 190, -1, -1, 152, + -1, 195, -1, 197, -1, -1, -1, -1, -1, 201, + -1, -1, 184, 185, -1, -1, -1, -1, -1, 201, + 755, 756, 757, 217, -1, -1, -1, -1, -1, 201, + 5728, 5729, -1, -1, 5732, -1, -1, 772, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5745, 201, 755, + 756, 757, -1, -1, -1, 152, -1, -1, -1, 18, + 19, -1, -1, -1, -1, -1, -1, 755, 756, 757, + -1, -1, -1, -1, 246, -1, 2027, -1, -1, 5777, + -1, 2032, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 288, -1, -1, 56, -1, -1, + 755, 756, 757, -1, 201, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 310, -1, + -1, -1, -1, -1, -1, -1, 5824, -1, 310, -1, + -1, -1, 5830, 5831, -1, -1, -1, -1, 310, 311, + -1, -1, -1, 337, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5852, -1, -1, 310, -1, -1, + -1, -1, -1, -1, 5862, -1, -1, -1, -1, -1, + -1, -1, 5870, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 376, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5891, -1, -1, -1, -1, -1, -1, + -1, -1, 5900, 18, 19, -1, -1, -1, -1, -1, + -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 402, -1, -1, -1, -1, -1, 2187, -1, -1, -1, + 5938, 56, -1, -1, -1, -1, -1, 755, 756, 757, + -1, -1, 5950, -1, -1, -1, 5954, -1, -1, -1, + -1, -1, -1, 10, -1, 12, 17, 18, 19, -1, + 17, 18, 19, -1, -1, -1, -1, 2228, 2229, -1, + -1, -1, -1, 5981, -1, -1, 2237, 2238, -1, -1, + -1, -1, -1, -1, 488, -1, -1, 5995, -1, 471, + -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 275, -1, -1, 6017, + -1, -1, -1, 70, -1, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2292, -1, -1, -1, 6043, 6044, 98, -1, -1, + -1, 98, 2303, 2304, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 535, -1, 537, -1, -1, -1, -1, + -1, 543, -1, -1, -1, -1, -1, 2328, 2329, 2330, + -1, 6079, -1, -1, -1, -1, -1, -1, -1, -1, + 141, -1, -1, -1, 141, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, + -1, -1, -1, -1, 6122, -1, 6124, 6125, -1, -1, + -1, -1, 604, -1, -1, -1, -1, -1, 2389, -1, + 6138, -1, -1, -1, 6142, -1, -1, -1, 263, 2400, + 409, -1, 2403, -1, -1, -1, -1, 208, 652, -1, + 6158, 208, -1, -1, 423, -1, 425, 2418, -1, -1, + -1, 2422, 2423, -1, 2425, 2426, 648, -1, -1, -1, + -1, -1, -1, 2434, 6182, 2436, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 457, -1, + -1, 6199, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 470, -1, 2464, 265, 266, 267, -1, 265, 266, + 267, -1, -1, -1, -1, -1, -1, -1, 656, -1, + -1, 6229, -1, -1, -1, -1, 287, -1, -1, -1, + 287, 2492, -1, 502, 6242, -1, -1, -1, -1, -1, + 744, -1, -1, -1, 2505, -1, -1, -1, 2509, -1, + -1, 520, -1, 755, 756, 757, -1, 2518, 740, -1, + -1, -1, -1, 755, 756, 757, -1, -1, -1, 751, + -1, -1, -1, 755, 756, 757, 337, -1, 339, -1, + 337, -1, 339, 2544, 409, -1, -1, -1, -1, -1, + -1, -1, 755, 756, 757, -1, -1, 358, 423, 356, + 425, 358, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 376, -1, -1, -1, 376, + -1, -1, 383, -1, -1, -1, 383, 2588, -1, 598, + -1, -1, 457, -1, 2595, -1, 605, 398, -1, -1, + -1, 398, -1, -1, -1, 470, 615, 408, 755, 756, + 757, 408, -1, -1, -1, -1, -1, -1, -1, -1, + 629, -1, 423, -1, -1, -1, 423, -1, -1, -1, + 2631, 2632, -1, -1, -1, -1, -1, 502, -1, -1, + -1, -1, 820, -1, -1, -1, -1, -1, -1, -1, + -1, 660, -1, -1, 663, 520, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 679, -1, -1, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, 480, -1, -1, 695, -1, -1, 490, + -1, -1, -1, 490, -1, -1, -1, -1, -1, -1, + -1, 710, -1, -1, -1, -1, -1, -1, -1, -1, + 2711, -1, -1, -1, -1, -1, -1, -1, 2719, -1, + 2721, 2722, 2723, -1, 2725, 526, -1, -1, -1, 526, + -1, -1, -1, 598, 47, -1, -1, -1, 539, -1, + 605, -1, 539, -1, -1, -1, -1, -1, -1, -1, + 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 629, -1, 79, -1, -1, -1, + -1, -1, -1, 107, -1, -1, -1, -1, 579, -1, + -1, -1, 579, 2784, 585, -1, -1, 100, 585, -1, + -1, -1, -1, -1, -1, 660, 109, 975, 663, -1, + -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, + -1, -1, -1, -1, 679, -1, 129, -1, -1, -1, + -1, 999, -1, -1, -1, -1, -1, -1, 141, -1, + 1008, -1, -1, 146, -1, -1, -1, -1, -1, -1, + -1, 175, 643, -1, -1, 710, 643, -1, -1, 650, + -1, -1, -1, 650, -1, -1, 169, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2875, -1, -1, -1, -1, -1, + 681, -1, -1, -1, 681, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 696, 697, -1, -1, 696, + 697, -1, -1, -1, -1, -1, -1, -1, 709, -1, + 1088, 224, 709, -1, -1, 228, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2929, -1, + -1, -1, 2933, -1, 247, 2936, -1, -1, 251, 252, + -1, -1, -1, -1, 2945, -1, -1, -1, -1, -1, + -1, -1, -1, 2954, -1, 2956, 2957, -1, 2959, 2960, + 2961, 2962, -1, 2964, -1, 2966, 2967, -1, 2969, -1, + 283, -1, -1, -1, -1, -1, 2977, 2978, 291, 292, + -1, 2982, 2983, 2984, 2985, -1, -1, 2988, 2989, -1, + -1, 2992, -1, 2994, -1, 2996, -1, 2998, -1, -1, + -1, 3002, -1, -1, -1, -1, -1, -1, 3009, -1, + 3011, -1, 3013, 3014, 3015, -1, 3017, -1, -1, 3020, + 3021, 3022, 3023, -1, -1, 3026, -1, -1, -1, -1, + -1, 344, -1, -1, -1, -1, -1, -1, 3039, -1, + -1, 3042, -1, 3044, 3045, 3046, -1, -1, 3049, -1, + -1, -1, -1, -1, 3055, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 383, -1, 3073, -1, 3075, -1, -1, 3078, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3088, 3089, 3090, + -1, -1, -1, 1271, 3095, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3106, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 429, -1, -1, -1, + -1, 434, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 445, 446, -1, -1, -1, -1, -1, -1, + 474, -1, 3143, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3155, -1, -1, -1, -1, -1, + -1, 3162, -1, -1, -1, -1, -1, -1, -1, 503, + 504, -1, 506, 507, 508, 509, 510, 3178, 512, 513, + 514, 515, 516, 517, 518, 519, -1, 521, 522, 523, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3208, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3228, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1447, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 18, 19, -1, 617, 618, -1, 599, -1, -1, -1, + -1, -1, -1, -1, -1, 3296, 609, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 620, 46, -1, + -1, -1, -1, 626, -1, -1, 3317, -1, 56, -1, + -1, -1, -1, 3324, -1, -1, -1, -1, -1, -1, + -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, + 78, 79, -1, -1, 657, -1, -1, 660, -1, -1, + 88, -1, -1, -1, -1, 1533, -1, 1535, -1, -1, + -1, -1, -1, -1, 102, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 689, -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, 141, -1, -1, -1, -1, -1, 1587, + -1, -1, -1, 1591, -1, 1593, -1, 155, -1, -1, + -1, -1, -1, -1, 1602, 1603, -1, -1, -1, -1, + 1608, -1, -1, -1, 1612, 1613, 1614, -1, 1616, 1617, + 1618, -1, -1, -1, -1, -1, -1, -1, 1626, -1, + 1628, -1, -1, 1631, 1632, 1633, 1634, -1, 3459, -1, + 1638, 1639, 1640, -1, -1, -1, -1, 1645, -1, 207, + 1648, -1, 3473, -1, -1, -1, 1654, 1655, -1, 1657, + 218, 1659, 1660, 1661, 1662, 1663, 1664, -1, 1666, -1, + 1668, 1669, 1670, 1671, 1672, -1, 1674, 1675, -1, 1677, + 1678, 1679, -1, -1, 1682, -1, 1684, -1, 1686, 1687, + 1688, -1, 1690, -1, 1692, -1, 1694, -1, -1, -1, + 1698, 1699, 1700, -1, 3525, 1703, 1704, -1, 1706, 1707, + -1, 1709, -1, -1, -1, -1, 3537, 275, 1716, 3540, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1727, + -1, -1, -1, 1731, 1732, -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, 319, -1, -1, -1, 17, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 335, -1, -1, + -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, + -1, -1, -1, 45, 1792, 47, -1, -1, 356, -1, + -1, -1, -1, -1, -1, -1, 17, 18, 19, 367, + -1, -1, -1, -1, -1, -1, -1, 69, -1, -1, + -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, + -1, -1, 390, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, -1, 70, + -1, 72, -1, -1, 422, 423, -1, -1, 426, -1, + 428, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1879, -1, -1, -1, -1, -1, 98, -1, 141, + -1, -1, -1, -1, -1, -1, -1, 455, 456, -1, + -1, -1, -1, 461, 462, -1, -1, -1, 1906, -1, + 1908, -1, -1, -1, -1, -1, -1, 169, -1, -1, + 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 499, -1, -1, -1, 1943, -1, -1, 200, -1, + -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, + -1, -1, 520, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 232, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3814, 3815, -1, -1, 208, 3819, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 265, 266, 267, 574, -1, -1, 3840, + -1, 3842, -1, 3844, -1, 3846, -1, -1, -1, 2027, + -1, 589, -1, -1, -1, 287, -1, -1, -1, -1, + 598, -1, -1, 601, 602, 3866, -1, -1, -1, -1, + -1, 3872, -1, -1, 265, 266, 267, -1, 616, -1, + -1, -1, -1, -1, -1, 3886, 3887, -1, -1, -1, + 3891, -1, 3893, -1, 3895, -1, 287, 329, -1, 3900, + -1, -1, -1, -1, -1, 337, -1, 339, -1, -1, + -1, 3912, -1, -1, -1, 653, -1, -1, -1, -1, + -1, -1, 660, -1, -1, -1, 358, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3937, -1, -1, -1, + -1, 679, 3943, 681, 376, -1, 337, -1, 339, -1, + -1, 383, -1, -1, -1, -1, 3957, -1, -1, -1, + 3961, -1, -1, -1, -1, 356, 398, 358, -1, -1, + -1, -1, -1, -1, -1, -1, 408, -1, 3979, -1, + 412, -1, -1, -1, -1, 376, -1, 419, -1, -1, + -1, 423, 383, -1, 732, 3996, -1, -1, -1, -1, + -1, 739, -1, -1, -1, -1, -1, 398, -1, 2187, + -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, + 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 423, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 480, -1, + -1, 2229, -1, 4054, -1, -1, -1, -1, 490, 2237, + 2238, -1, -1, 4064, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4076, -1, 4078, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, + -1, -1, -1, -1, 526, -1, -1, -1, -1, 490, + -1, -1, -1, -1, -1, -1, -1, 539, -1, 541, + -1, -1, -1, -1, 2292, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 526, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 579, 539, -1, + 2328, 2329, 2330, 585, -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, 579, -1, + -1, -1, -1, -1, 585, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 643, -1, -1, -1, -1, -1, -1, 650, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2418, -1, -1, -1, -1, -1, -1, -1, -1, 681, + -1, -1, 643, -1, -1, -1, 2434, -1, 2436, 650, + -1, -1, -1, -1, 696, 697, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 709, -1, -1, + -1, -1, -1, -1, -1, -1, 2464, -1, -1, -1, + 681, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 696, 697, -1, -1, -1, + -1, -1, -1, -1, 2492, -1, -1, -1, 709, -1, + -1, -1, -1, -1, -1, -1, -1, 2505, -1, -1, + -1, -1, 4333, 4334, -1, 4336, -1, -1, -1, -1, + 2518, -1, -1, -1, -1, -1, 4347, -1, 4349, -1, + -1, 4352, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4364, -1, 4366, 2544, 4368, -1, 4370, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4382, 4383, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4407, -1, -1, -1, + 2588, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4451, -1, -1, -1, -1, 4456, 4457, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4475, -1, -1, -1, 4479, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2711, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2725, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2784, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4665, 4666, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -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, 2929, -1, -1, -1, 2933, -1, -1, 2936, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2954, -1, -1, -1, + -1, 2959, 2960, 2961, 2962, -1, 2964, -1, 2966, 2967, + -1, -1, -1, -1, -1, -1, -1, -1, 4799, 2977, + 2978, -1, -1, 4804, 2982, 2983, 2984, 2985, -1, -1, + 2988, 2989, -1, -1, 2992, -1, 2994, -1, 2996, -1, + 2998, -1, -1, -1, 3002, -1, -1, -1, -1, -1, + -1, 3009, -1, 3011, -1, 3013, -1, 3015, -1, 3017, + -1, -1, 3020, 3021, 3022, 3023, -1, -1, 3026, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4861, -1, -1, -1, 3042, -1, 3044, 3045, 3046, -1, + -1, 3049, -1, -1, -1, -1, -1, 3055, -1, -1, + -1, -1, -1, -1, -1, 4886, -1, -1, -1, -1, + -1, -1, -1, 4894, 4895, -1, -1, -1, -1, -1, + 3078, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3090, -1, -1, -1, 4917, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3143, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3162, -1, -1, -1, -1, -1, + -1, 4992, -1, 4994, -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, + 3208, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3228, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5100, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3317, + -1, -1, -1, -1, -1, -1, 5147, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5191, -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, 5218, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5242, 5243, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3473, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3525, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537, + -1, -1, 3540, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5482, -1, -1, 5485, 5486, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5508, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5518, -1, -1, + -1, 5522, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5537, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3814, 3815, -1, -1, + -1, 3819, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5659, -1, + -1, -1, 3840, -1, 3842, -1, 3844, -1, 3846, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3866, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3886, 3887, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3900, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3912, -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, 3943, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5777, -1, -1, 3957, + -1, -1, -1, 3961, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3979, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5862, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4054, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4064, -1, -1, -1, + 5891, -1, -1, -1, -1, -1, -1, -1, 4076, 5900, + 4078, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5981, -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, 6017, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 6138, -1, -1, + -1, 6142, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4333, 4334, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4347, + -1, 4349, -1, -1, 4352, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4364, -1, 4366, -1, + 4368, -1, 4370, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4382, 4383, -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, 6242, -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, 4451, -1, -1, -1, -1, 4456, 4457, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4475, -1, -1, + -1, 4479, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4665, 4666, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4799, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4861, -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, 4894, 4895, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4917, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4992, -1, 4994, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5147, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5191, -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, + 5218, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5242, 5243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5482, -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, + 5518, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5537, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5777, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -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, 3, -1, -1, -1, 7, 8, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 5900, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, + -1, -1, -1, -1, -1, -1, -1, 67, 68, -1, + 70, -1, -1, -1, -1, -1, -1, 77, 78, -1, + -1, 81, 82, 83, 84, -1, 86, 87, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5981, -1, -1, -1, -1, 118, 119, + 120, -1, 122, -1, -1, -1, -1, -1, -1, -1, + 130, 131, 132, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, 146, -1, -1, 149, + -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, + 160, -1, 162, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 176, 177, -1, 179, + -1, -1, -1, 183, -1, -1, -1, 187, -1, -1, + 190, -1, 192, 193, 194, 195, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, 213, -1, 215, -1, -1, -1, -1, + -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, 234, -1, -1, -1, -1, -1, + -1, -1, 242, 243, -1, -1, -1, 247, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, 268, 269, + 6138, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 295, 296, 297, -1, -1, + 300, -1, -1, 303, 304, -1, -1, -1, -1, 309, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 6242, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + 760, 761, -1, -1, -1, 3, 766, -1, -1, 7, + 8, 771, -1, -1, -1, 775, 776, -1, -1, 779, + 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, + 58, 59, -1, -1, -1, 63, -1, -1, -1, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, 77, + 78, -1, -1, 81, 82, 83, 84, -1, 86, 87, + -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 118, 119, 120, -1, 122, -1, -1, -1, -1, -1, + -1, -1, 130, 131, 132, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, 146, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + 158, 159, 160, -1, 162, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + -1, 179, -1, -1, -1, 183, -1, -1, -1, 187, + -1, -1, 190, -1, 192, 193, 194, 195, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 211, 212, 213, -1, 215, -1, -1, + -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, 234, -1, -1, -1, + -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, + 268, 269, -1, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, 282, -1, 284, 285, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 295, 296, 297, + -1, -1, -1, -1, -1, 303, 304, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, 760, 761, -1, -1, -1, 3, 766, -1, + -1, 7, 8, 771, -1, -1, -1, 775, 776, -1, + -1, 779, 18, 19, -1, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, 57, 58, 59, -1, -1, -1, -1, -1, -1, + -1, 67, 68, -1, 70, -1, -1, -1, -1, -1, + -1, 77, 78, -1, -1, 81, 82, 83, 84, -1, + 86, 87, -1, 89, 90, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 118, 119, 120, -1, 122, -1, -1, -1, + -1, -1, -1, -1, 130, 131, 132, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + 146, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, 158, -1, 160, -1, 162, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, 177, -1, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, 190, -1, 192, 193, 194, 195, + -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 211, 212, 213, -1, 215, + -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, 234, -1, + -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, + -1, -1, 268, 269, -1, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 284, 285, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 295, + 296, 297, -1, -1, -1, -1, -1, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, 760, 761, -1, -1, -1, 3, + 766, -1, -1, 7, 8, 771, -1, -1, -1, 775, + 776, -1, -1, 779, 18, 19, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, 57, 58, 59, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, + -1, -1, -1, 77, 78, -1, -1, 81, 82, 83, + 84, -1, 86, 87, -1, 89, 90, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 118, 119, 120, -1, 122, -1, + -1, -1, -1, -1, -1, -1, 130, 131, 132, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, + -1, -1, 146, -1, -1, 149, -1, -1, -1, -1, + -1, -1, -1, -1, 158, -1, 160, -1, 162, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, -1, 179, -1, -1, -1, 183, + -1, -1, -1, 187, -1, -1, 190, -1, 192, 193, + 194, 195, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, + -1, 215, -1, -1, -1, -1, -1, -1, 222, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + 234, -1, -1, -1, -1, -1, -1, -1, 242, 243, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, 268, 269, -1, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 295, 296, 297, -1, -1, -1, -1, -1, 303, + 304, -1, 306, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, 760, 761, -1, -1, + -1, 3, 766, -1, -1, 7, 8, 771, -1, -1, + -1, 775, 776, -1, -1, 779, 18, 19, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 57, 58, 59, -1, -1, + -1, -1, -1, -1, -1, 67, 68, -1, 70, -1, + -1, -1, -1, -1, -1, 77, 78, -1, -1, 81, + 82, 83, 84, -1, 86, 87, -1, 89, 90, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, + 122, -1, -1, -1, -1, -1, -1, -1, 130, 131, + 132, -1, -1, -1, -1, -1, 138, -1, 140, -1, + -1, -1, -1, -1, 146, -1, -1, 149, -1, -1, + -1, -1, -1, -1, -1, -1, 158, -1, 160, -1, + 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, 177, -1, 179, -1, -1, + -1, 183, -1, -1, -1, 187, -1, -1, 190, -1, + 192, 193, 194, 195, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, + 212, 213, -1, 215, -1, -1, -1, -1, -1, -1, + 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, 234, -1, -1, -1, -1, -1, -1, -1, + 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, + -1, -1, -1, -1, -1, -1, 268, 269, -1, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 284, 285, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 295, 296, 297, -1, -1, -1, -1, + -1, 303, 304, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + -1, -1, -1, -1, -1, -1, -1, -1, 760, 761, + -1, -1, -1, 3, 766, -1, -1, 7, 8, 771, + -1, -1, -1, 775, 776, -1, -1, 779, 18, 19, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, + -1, -1, -1, -1, -1, -1, -1, 67, 68, -1, + 70, -1, -1, -1, -1, -1, -1, 77, 78, -1, + -1, 81, 82, 83, 84, -1, 86, 87, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, + 120, -1, 122, -1, -1, -1, 126, -1, -1, -1, + 130, 131, 132, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, 146, -1, -1, 149, + -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, + 160, -1, 162, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 176, 177, -1, 179, + -1, -1, -1, 183, -1, -1, -1, 187, -1, -1, + 190, -1, 192, 193, 194, 195, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, 213, -1, 215, -1, -1, -1, -1, + -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, 234, -1, -1, -1, -1, -1, + -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, 268, 269, + -1, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 295, 296, 297, -1, -1, + -1, -1, -1, 303, 304, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + 760, 761, -1, -1, -1, 3, 766, -1, -1, 7, + 8, 771, -1, -1, -1, 775, 776, -1, -1, 779, + 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, + 58, 59, -1, -1, -1, -1, -1, -1, -1, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, 77, + 78, -1, -1, 81, 82, 83, 84, -1, 86, 87, + -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 118, 119, 120, -1, 122, -1, -1, -1, 126, -1, + -1, -1, 130, 131, 132, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, 146, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + 158, -1, 160, -1, 162, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + -1, 179, -1, -1, -1, 183, -1, -1, -1, 187, + -1, -1, 190, -1, 192, 193, 194, 195, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 211, 212, 213, -1, 215, -1, -1, + -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, 234, -1, -1, -1, + -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, + 268, 269, -1, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 284, 285, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 295, 296, 297, + -1, -1, -1, -1, -1, 303, 304, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, 760, 761, -1, -1, -1, 3, 766, -1, + -1, 7, 8, 771, -1, -1, -1, 775, 776, -1, + -1, 779, 18, 19, -1, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, 57, 58, 59, -1, -1, -1, -1, -1, -1, + -1, 67, 68, -1, 70, -1, -1, -1, -1, -1, + -1, 77, 78, -1, -1, 81, 82, 83, 84, -1, + 86, 87, -1, 89, 90, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 118, 119, 120, -1, 122, -1, -1, -1, + 126, -1, -1, -1, 130, 131, 132, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + 146, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, 158, -1, 160, -1, 162, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, 177, -1, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, 190, -1, 192, 193, 194, 195, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 211, 212, 213, -1, 215, + -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, 234, -1, + -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, + -1, -1, 268, 269, -1, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 284, 285, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 295, + 296, 297, -1, -1, -1, -1, -1, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, 760, 761, -1, -1, -1, 3, + 766, -1, -1, 7, 8, 771, -1, -1, -1, 775, + 776, -1, -1, 779, 18, 19, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, 57, 58, 59, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, + -1, -1, -1, 77, 78, -1, -1, 81, 82, 83, + 84, -1, 86, 87, -1, 89, 90, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 118, 119, 120, -1, 122, -1, + -1, -1, -1, -1, -1, -1, 130, 131, 132, -1, + -1, -1, -1, -1, 138, -1, 140, -1, -1, -1, + -1, -1, 146, -1, -1, 149, -1, -1, -1, -1, + -1, -1, -1, -1, 158, -1, 160, -1, 162, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, -1, 179, -1, -1, -1, 183, + -1, -1, -1, 187, -1, -1, 190, -1, 192, 193, + 194, 195, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, + -1, 215, -1, -1, -1, -1, -1, -1, 222, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + 234, -1, -1, -1, -1, -1, -1, -1, 242, 243, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, 268, 269, -1, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 295, 296, 297, -1, -1, -1, -1, -1, 303, + 304, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, 760, 761, -1, -1, + -1, 3, 766, -1, -1, 7, 8, 771, -1, -1, + -1, 775, 776, -1, -1, 779, 18, 19, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 57, 58, 59, -1, -1, + -1, -1, -1, -1, -1, 67, 68, -1, 70, -1, + -1, -1, -1, -1, -1, 77, 78, -1, -1, 81, + 82, 83, 84, -1, 86, 87, -1, 89, 90, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, + 122, -1, -1, -1, -1, -1, -1, -1, 130, 131, + 132, -1, -1, -1, -1, -1, 138, -1, -1, -1, + -1, -1, -1, -1, 146, -1, -1, 149, -1, -1, + -1, -1, -1, -1, -1, -1, 158, -1, 160, -1, + 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, 177, -1, 179, -1, -1, + -1, 183, -1, -1, -1, 187, -1, -1, 190, -1, + 192, 193, 194, 195, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, + 212, 213, -1, 215, -1, -1, -1, -1, -1, -1, + 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, 234, -1, -1, -1, -1, -1, -1, -1, + 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, + -1, -1, -1, -1, -1, -1, 268, 269, -1, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 284, 285, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 295, 296, 297, -1, -1, -1, -1, + -1, 303, 304, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + -1, -1, -1, -1, -1, -1, -1, -1, 760, 761, + -1, -1, -1, 3, 766, -1, -1, 7, 8, 771, + -1, -1, -1, 775, 776, -1, -1, 779, 18, 19, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, + -1, -1, -1, -1, -1, -1, -1, 67, 68, -1, + 70, -1, -1, -1, -1, -1, -1, 77, 78, -1, + -1, 81, 82, 83, 84, -1, 86, 87, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, + 120, -1, 122, -1, -1, -1, -1, -1, -1, -1, + 130, 131, 132, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, 146, -1, -1, 149, + -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, + 160, -1, 162, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 176, 177, -1, 179, + -1, -1, -1, 183, -1, -1, -1, 187, -1, -1, + 190, -1, 192, 193, 194, 195, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, 213, -1, 215, -1, -1, -1, -1, + -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, 234, -1, -1, -1, -1, -1, + -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, 268, 269, + -1, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 295, 296, 297, -1, -1, + -1, -1, -1, 303, 304, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + 760, 761, -1, -1, -1, 3, 766, -1, -1, 7, + 8, 771, -1, -1, -1, 775, 776, -1, -1, 779, + 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, + 58, 59, -1, -1, -1, -1, -1, -1, -1, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, 77, + 78, -1, -1, 81, 82, 83, 84, -1, 86, 87, + -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 118, 119, 120, -1, 122, -1, -1, -1, -1, -1, + -1, -1, 130, 131, 132, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, 146, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + 158, -1, 160, -1, 162, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + -1, 179, -1, -1, -1, 183, -1, -1, -1, 187, + -1, -1, 190, -1, 192, 193, 194, 195, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 211, 212, 213, -1, 215, -1, -1, + -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, 234, -1, -1, -1, + -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, + 268, 269, -1, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 284, 285, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 295, 296, 297, + -1, -1, -1, -1, -1, 303, 304, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, 760, 761, -1, -1, -1, 3, 766, -1, + -1, 7, 8, 771, -1, -1, -1, 775, 776, -1, + -1, 779, 18, 19, -1, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, 57, 58, 59, -1, -1, -1, -1, -1, -1, + -1, 67, 68, -1, 70, -1, -1, -1, -1, -1, + -1, 77, 78, -1, -1, 81, 82, 83, 84, -1, + 86, 87, -1, 89, 90, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 118, 119, 120, -1, 122, -1, -1, -1, + -1, -1, -1, -1, 130, 131, 132, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + 146, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, 158, -1, 160, -1, 162, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, 177, -1, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, 190, -1, 192, 193, 194, 195, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 211, 212, 213, -1, 215, + -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, 234, -1, + -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, + -1, -1, 268, 269, -1, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 284, 285, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 295, + 296, 297, -1, -1, -1, -1, -1, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, 760, 761, -1, -1, -1, 3, + 766, -1, -1, 7, 8, 771, -1, -1, -1, 775, + 776, -1, -1, 779, 18, 19, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, + -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, 57, 58, 59, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, + -1, -1, -1, 77, 78, -1, -1, 81, 82, 83, + 84, -1, 86, 87, -1, 89, 90, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 118, 119, 120, -1, 122, -1, + -1, -1, -1, -1, -1, -1, 130, 131, 132, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, + -1, -1, 146, -1, -1, 149, -1, -1, -1, -1, + -1, -1, -1, -1, 158, -1, 160, -1, 162, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, -1, 179, -1, -1, -1, 183, + -1, -1, -1, 187, -1, -1, -1, -1, 192, 193, + 194, 195, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, + -1, 215, -1, -1, -1, -1, -1, -1, 222, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + 234, -1, -1, -1, -1, -1, -1, -1, 242, 243, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, 268, 269, -1, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 295, 296, 297, -1, -1, -1, -1, -1, 303, + 304, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, 760, 761, -1, -1, + -1, 3, 766, -1, -1, 7, 8, 771, -1, -1, + -1, 775, 776, -1, -1, 779, 18, 19, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 57, 58, 59, -1, -1, + -1, -1, -1, -1, -1, 67, 68, -1, 70, -1, + -1, -1, -1, -1, -1, 77, 78, -1, -1, 81, + 82, 83, 84, -1, 86, 87, -1, 89, 90, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, + 122, -1, -1, -1, -1, -1, -1, -1, 130, 131, + 132, -1, -1, -1, -1, -1, 138, -1, -1, -1, + -1, -1, -1, -1, 146, -1, -1, 149, -1, -1, + -1, -1, -1, -1, -1, -1, 158, -1, 160, -1, + 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, 177, -1, 179, -1, -1, + -1, 183, -1, -1, -1, 187, -1, -1, 190, -1, + 192, 193, 194, 195, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, + 212, 213, -1, 215, -1, -1, -1, -1, -1, -1, + 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, 234, -1, -1, -1, -1, -1, -1, -1, + 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, + -1, -1, -1, -1, -1, -1, 268, 269, -1, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 284, 285, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 295, 296, 297, -1, -1, -1, -1, + -1, 303, 304, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + -1, -1, -1, -1, -1, -1, -1, -1, 760, 761, + -1, -1, -1, 3, 766, -1, -1, 7, 8, 771, + -1, -1, -1, 775, 776, -1, -1, 779, 18, 19, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, + -1, -1, -1, -1, -1, -1, -1, 67, 68, -1, + 70, -1, -1, -1, -1, -1, -1, 77, 78, -1, + -1, 81, 82, 83, 84, -1, 86, 87, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, + 120, -1, 122, -1, -1, -1, -1, -1, -1, -1, + 130, 131, 132, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, 146, -1, -1, 149, + -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, + 160, -1, 162, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 176, 177, -1, 179, + -1, -1, -1, 183, -1, -1, -1, 187, -1, -1, + 190, -1, 192, 193, 194, 195, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, 213, -1, 215, -1, -1, -1, -1, + -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, 234, -1, -1, -1, -1, -1, + -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, 268, 269, + -1, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 295, 296, 297, -1, -1, + -1, -1, -1, 303, 304, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + 760, 761, -1, -1, -1, 3, 766, -1, -1, 7, + 8, 771, -1, -1, -1, 775, 776, -1, -1, 779, + 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, + 58, 59, -1, -1, -1, -1, -1, -1, -1, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, 77, + 78, -1, -1, 81, 82, 83, 84, -1, 86, 87, + -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 118, 119, 120, -1, 122, -1, -1, -1, -1, -1, + -1, -1, 130, 131, 132, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, 146, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + 158, -1, 160, -1, 162, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + 178, 179, -1, -1, -1, 183, -1, -1, -1, 187, + -1, -1, -1, -1, 192, 193, 194, 195, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 211, 212, 213, -1, 215, -1, -1, + -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, 234, -1, -1, -1, + -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, + 268, 269, -1, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 284, 285, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 295, 296, 297, + -1, -1, -1, -1, -1, 303, 304, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, 760, 761, -1, -1, -1, 3, 766, -1, + -1, 7, 8, 771, -1, -1, -1, 775, 776, -1, + -1, 779, 18, 19, -1, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, 57, 58, 59, -1, -1, -1, -1, -1, -1, + -1, 67, 68, -1, 70, -1, -1, -1, -1, -1, + -1, 77, 78, -1, -1, 81, 82, 83, 84, -1, + 86, 87, -1, 89, 90, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 118, 119, 120, -1, 122, -1, -1, -1, + -1, -1, -1, -1, 130, 131, 132, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + 146, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, 158, -1, 160, -1, 162, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, 177, -1, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, -1, -1, 192, 193, 194, 195, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 211, 212, 213, -1, 215, + -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, 234, -1, + -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, + -1, -1, 268, 269, -1, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 284, 285, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 295, + 296, 297, -1, -1, -1, -1, -1, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, 760, 761, -1, -1, -1, 3, + 766, -1, -1, 7, 8, 771, -1, -1, -1, 775, + 776, -1, -1, 779, 18, 19, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, 57, 58, 59, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, + -1, -1, -1, 77, 78, -1, -1, 81, 82, 83, + 84, -1, 86, 87, -1, 89, 90, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 118, 119, 120, -1, 122, -1, + -1, -1, -1, -1, -1, -1, 130, 131, 132, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, + -1, -1, 146, -1, -1, 149, -1, -1, -1, -1, + -1, -1, -1, -1, 158, -1, 160, -1, 162, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, -1, 179, -1, -1, -1, 183, + -1, -1, -1, 187, -1, -1, -1, -1, 192, 193, + 194, 195, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, + -1, 215, -1, -1, -1, -1, -1, -1, 222, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + 234, -1, -1, -1, -1, -1, -1, -1, 242, 243, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, 268, 269, -1, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 295, 296, 297, -1, -1, -1, -1, -1, 303, + 304, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, 760, 761, -1, -1, + -1, 3, 766, -1, -1, 7, 8, 771, -1, -1, + -1, 775, 776, -1, -1, 779, 18, 19, -1, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 57, 58, 59, -1, -1, + -1, -1, -1, -1, -1, 67, 68, -1, 70, -1, + -1, -1, -1, -1, -1, 77, 78, -1, -1, 81, + 82, 83, 84, -1, 86, 87, -1, 89, 90, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, + 122, -1, -1, -1, -1, -1, -1, -1, 130, 131, + 132, -1, -1, -1, -1, -1, 138, -1, -1, -1, + -1, -1, -1, -1, 146, -1, -1, 149, -1, -1, + -1, -1, -1, -1, -1, -1, 158, -1, 160, -1, + 162, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, 177, -1, 179, -1, -1, + -1, 183, -1, -1, -1, 187, -1, -1, -1, -1, + 192, 193, 194, 195, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, + 212, 213, -1, 215, -1, -1, -1, -1, -1, -1, + 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, 234, -1, -1, -1, -1, -1, -1, -1, + 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, + -1, -1, -1, -1, -1, -1, 268, 269, -1, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 284, 285, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 295, 296, 297, -1, -1, -1, -1, + -1, 303, 304, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + -1, -1, -1, -1, -1, -1, -1, -1, 760, 761, + -1, -1, -1, 3, 766, -1, -1, 7, 8, 771, + -1, -1, -1, 775, 776, -1, -1, 779, 18, 19, + -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, 58, 59, + -1, -1, -1, -1, -1, -1, -1, 67, 68, -1, + 70, -1, -1, -1, -1, -1, -1, 77, 78, -1, + -1, 81, 82, 83, 84, -1, 86, 87, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, + 120, -1, 122, -1, -1, -1, -1, -1, -1, -1, + 130, 131, 132, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, 146, -1, -1, 149, + -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, + 160, -1, 162, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 176, 177, -1, 179, + -1, -1, -1, 183, -1, -1, -1, 187, -1, -1, + -1, -1, 192, 193, 194, 195, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, 213, -1, 215, -1, -1, -1, -1, + -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, 234, -1, -1, -1, -1, -1, + -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, 268, 269, + -1, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 295, 296, 297, -1, -1, + -1, -1, -1, 303, 304, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + 760, 761, -1, -1, -1, 3, 766, -1, -1, 7, + 8, 771, -1, -1, -1, 775, 776, -1, -1, 779, + 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, + 58, 59, -1, -1, -1, -1, -1, -1, -1, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, 77, + 78, -1, -1, 81, 82, 83, 84, -1, 86, 87, + -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 118, 119, 120, -1, 122, -1, -1, -1, -1, -1, + -1, -1, 130, 131, 132, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, 146, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + 158, -1, 160, -1, 162, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + -1, 179, -1, -1, -1, 183, -1, -1, -1, 187, + -1, -1, -1, -1, 192, 193, 194, 195, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 211, 212, 213, -1, 215, -1, -1, + -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, 234, -1, -1, -1, + -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, + 268, 269, -1, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 284, 285, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 295, 296, 297, + -1, -1, -1, -1, -1, 303, 304, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, 760, 761, -1, -1, -1, 3, 766, -1, + -1, 7, 8, 771, -1, -1, -1, 775, 776, -1, + -1, 779, 18, 19, -1, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, 57, 58, 59, -1, -1, -1, -1, -1, -1, + -1, 67, 68, -1, 70, -1, -1, -1, -1, -1, + -1, 77, 78, -1, -1, 81, 82, 83, 84, -1, + 86, 87, -1, 89, 90, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 118, 119, 120, -1, 122, -1, -1, -1, + -1, -1, -1, -1, 130, 131, 132, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + 146, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, 158, -1, 160, -1, 162, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, 177, -1, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, -1, -1, 192, 193, 194, 195, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 211, 212, 213, -1, 215, + -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, 234, -1, + -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, + -1, -1, 268, 269, -1, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 284, 285, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 295, + 296, 297, -1, -1, -1, -1, -1, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, 760, 761, -1, -1, -1, 3, + 766, -1, -1, 7, 8, 771, -1, -1, -1, 775, + 776, -1, -1, 779, 18, 19, -1, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -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, 57, 58, 59, -1, -1, -1, -1, + -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, + -1, -1, -1, 77, 78, -1, -1, 81, 82, 83, + 84, -1, 86, 87, -1, 89, 90, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 118, 119, 120, -1, 122, -1, + -1, -1, -1, -1, -1, -1, 130, 131, 132, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, + -1, -1, 146, -1, -1, 149, -1, -1, -1, -1, + -1, -1, -1, -1, 158, -1, 160, -1, 162, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, -1, 179, -1, -1, -1, 183, + -1, -1, -1, 187, -1, -1, -1, -1, 192, 193, + 194, 195, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, + -1, 215, -1, -1, -1, -1, -1, -1, 222, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + 234, -1, -1, -1, -1, -1, -1, -1, 242, 243, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, 268, 269, -1, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 295, 296, 297, -1, -1, -1, -1, -1, 303, + 304, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, 760, 761, 3, -1, + -1, -1, 7, -1, -1, -1, -1, 771, -1, -1, + -1, -1, 776, 18, 19, 779, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -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, 120, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -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, + 285, -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, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, -1, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, -1, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, -1, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, -1, 748, 749, 750, 751, 3, -1, -1, + -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 779, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 3, -1, -1, -1, + 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 18, 19, -1, -1, -1, 772, -1, -1, -1, + -1, -1, -1, 779, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 7, 748, 749, 750, 751, -1, -1, -1, -1, -1, + -1, 18, 19, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 779, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 7, 748, 749, 750, 751, -1, -1, -1, -1, -1, + -1, 18, 19, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 771, -1, -1, -1, -1, -1, + -1, -1, 779, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 7, 748, 749, 750, 751, -1, -1, -1, -1, -1, + -1, 18, 19, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 779, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + -1, 748, 749, 750, 751, 18, 19, -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, 779, -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, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 156, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 255, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, -1, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, -1, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, -1, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, -1, 748, 749, 750, 751, 18, + 19, -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, 779, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -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, 247, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 300, -1, -1, -1, -1, -1, -1, -1, -1, + 309, -1, -1, -1, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, -1, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, -1, -1, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, -1, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, -1, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, -1, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, -1, 748, + 749, 750, 751, 18, 19, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 771, -1, -1, -1, -1, -1, -1, -1, + 779, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -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, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, -1, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, -1, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, -1, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, -1, 748, 749, 750, 751, 18, 19, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 771, -1, -1, -1, + -1, 776, -1, -1, 779, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, -1, -1, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, -1, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, -1, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 671, -1, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, -1, 748, 749, 750, + 751, 18, 19, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 771, -1, -1, -1, -1, 776, -1, -1, 779, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + -1, 748, 749, 750, 751, 18, 19, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 771, -1, -1, -1, -1, -1, + -1, -1, 779, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, -1, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, -1, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, -1, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, -1, 748, 749, 750, 751, 18, + 19, -1, -1, -1, -1, -1, -1, -1, -1, 762, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 779, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, -1, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, -1, -1, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, -1, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, -1, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, -1, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, -1, 748, + 749, 750, 751, 18, 19, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 771, -1, -1, -1, -1, -1, -1, -1, + 779, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -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, 138, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, -1, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, -1, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, -1, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, -1, 748, 749, 750, 751, 18, 19, -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, 779, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, -1, -1, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, -1, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, -1, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 671, -1, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, -1, 748, 749, 750, + 751, 18, 19, -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, 779, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + -1, 748, 749, 750, 751, 18, 19, -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, 779, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, -1, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, -1, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, -1, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, -1, 748, 749, 750, 751, 18, + 19, -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, 779, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, + -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, -1, -1, -1, 125, -1, -1, 128, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 153, -1, -1, -1, -1, -1, + -1, -1, 161, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 233, -1, -1, -1, -1, -1, + 239, 240, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, + -1, -1, -1, -1, 313, 314, 315, 316, 317, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, 334, 335, 336, 337, 338, + 339, 340, -1, 342, -1, -1, 345, 346, 347, 348, + 349, -1, -1, 352, 353, 354, 355, -1, -1, -1, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + -1, -1, -1, -1, -1, -1, 375, -1, 377, -1, + 379, 380, -1, 382, 383, 384, 385, 386, 387, -1, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, -1, 404, 405, 406, -1, 408, + 409, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, -1, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, -1, -1, -1, 435, -1, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + -1, -1, -1, -1, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, -1, 464, 465, -1, -1, 468, + -1, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, -1, 482, 483, 484, 485, 486, 487, 488, + 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, -1, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, -1, -1, 577, -1, + 579, 580, -1, 582, 583, 584, 585, -1, 587, 588, + 589, 590, -1, -1, -1, -1, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, -1, 622, -1, 624, 625, 626, -1, 628, + 629, -1, 631, 632, 633, 634, 635, 636, -1, 638, + 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, + -1, 650, 651, 652, 653, -1, 655, 656, -1, -1, + 659, -1, -1, 662, 663, 664, -1, 666, -1, 668, + 669, 670, 671, -1, 673, 674, 675, 676, -1, 678, + 679, -1, 681, -1, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, -1, 704, 705, 706, 707, 708, + 709, 710, 711, 712, -1, 714, 715, 716, -1, 718, + 719, 720, 721, -1, -1, 724, 725, -1, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, -1, -1, 744, 745, -1, -1, 748, + -1, 750, 751, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 774, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, -1, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, -1, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, -1, 669, 670, 671, -1, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, -1, 748, 749, 750, 751, 18, 19, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 771, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, -1, -1, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, -1, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, -1, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 671, -1, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 3, 748, 749, 750, + 751, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 18, 19, -1, -1, -1, -1, -1, -1, -1, + 771, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, -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, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 3, 748, 749, 750, 751, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, -1, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, -1, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, -1, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, 3, 748, 749, 750, 751, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, -1, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, -1, -1, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, -1, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, -1, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, -1, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 3, 748, + 749, 750, 751, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, -1, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, -1, -1, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, -1, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, -1, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, + 745, 746, 3, 748, 749, 750, 751, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 18, 19, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, + -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, 98, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, -1, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, -1, -1, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, -1, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, -1, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 671, -1, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 3, 748, 749, 750, + 751, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 18, 19, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, -1, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, -1, + -1, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + -1, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, -1, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 3, 748, 749, 750, 751, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 18, 19, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, -1, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, -1, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, -1, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, -1, 748, 749, 750, 751, 7, + 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 18, 19, -1, -1, -1, -1, -1, -1, -1, 27, + -1, 29, -1, 31, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 244, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 7, 8, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 18, 19, -1, -1, -1, + -1, -1, -1, -1, 27, -1, 29, -1, 31, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, -1, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, -1, -1, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, -1, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, -1, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, -1, 748, 749, 750, 751, 7, + 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 18, 19, -1, -1, -1, -1, -1, -1, -1, 27, + -1, 29, -1, 31, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, 762, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, 762, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, 762, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, 762, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, 25, -1, -1, 762, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 202, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 258, -1, + 260, -1, 262, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, 20, -1, -1, -1, -1, -1, + -1, 761, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, 20, 755, + -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, 755, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, -1, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, 126, 127, + 128, 129, 130, -1, -1, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 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, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, -1, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, -1, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, 126, 127, 128, 129, 130, -1, -1, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 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, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, -1, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, -1, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, -1, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, -1, 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, -1, 653, + 654, 655, 656, 657, -1, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, -1, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, -1, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, -1, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, 126, 127, 128, 129, + 130, -1, -1, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 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, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + -1, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, -1, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, -1, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, -1, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, -1, 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, -1, 653, 654, 655, 656, 657, -1, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + -1, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, -1, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + 126, 127, 128, 129, 130, -1, -1, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 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, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, -1, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + -1, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, -1, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, -1, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, -1, 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, -1, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, -1, 653, 654, 655, + 656, 657, -1, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, -1, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, -1, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 46, 47, -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, 79, -1, -1, + -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, + -1, -1, -1, -1, -1, -1, -1, 109, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, + -1, -1, -1, -1, 146, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, 228, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 247, -1, -1, -1, 251, + 252, -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, 283, -1, -1, -1, -1, -1, -1, -1, 291, + 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, + -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, 79, -1, -1, -1, 83, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, + -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 141, -1, -1, -1, -1, 146, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 169, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, + 228, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, -1, -1, 251, 252, -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, 283, -1, -1, -1, -1, + -1, -1, -1, 291, 292, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, 23, + 24, 25, -1, 27, -1, 29, 30, 31, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, 23, 24, 25, -1, 27, -1, 29, + 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, 23, 24, 25, + -1, 27, -1, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 30, -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, 56, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, 22, -1, + -1, 25, 26, -1, -1, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 30, -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, 56, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 30, -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, + 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -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, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 144, -1, -1, 147, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 205, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 251, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -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, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -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, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -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, 217, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -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, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -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, 217, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, -1, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, -1, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + -1, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, -1, 748, 749, 750, 751, + 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, -1, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -1, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, -1, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, -1, 743, 744, 745, 746, -1, + 748, 749, 750, 751, 18, 19, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, -1, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, -1, 748, 749, 750, 751, 18, 19, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, 314, 315, -1, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, -1, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, -1, -1, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, -1, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, -1, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, -1, 748, 749, + 750, 751, 18, 19, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, -1, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, 455, + 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, + 466, -1, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, -1, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, -1, 748, 749, 750, 751, 18, 19, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, + -1, -1, -1, -1, 76, -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, + 112, 113, 114, -1, -1, -1, -1, -1, -1, 121, + -1, -1, -1, 125, -1, -1, 128, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 138, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 153, -1, -1, -1, -1, -1, -1, -1, 161, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, -1, -1, -1, -1, -1, 239, 240, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, + -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, -1, + 342, -1, -1, 345, 346, 347, 348, 349, -1, -1, + 352, 353, 354, 355, -1, -1, -1, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, -1, -1, + -1, -1, -1, 375, -1, 377, -1, 379, 380, -1, + 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + -1, -1, -1, 435, -1, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, -1, -1, -1, + -1, -1, 454, 455, 456, 457, 458, 459, -1, 461, + 462, -1, 464, 465, -1, -1, 468, -1, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, + 482, 483, 484, 485, 486, 487, 488, 489, 490, -1, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, -1, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, -1, -1, 577, -1, 579, 580, -1, + 582, 583, 584, 585, -1, 587, 588, 589, 590, -1, + -1, -1, -1, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, -1, + 622, -1, 624, 625, 626, -1, 628, 629, -1, 631, + 632, 633, 634, 635, 636, -1, 638, 639, 640, 641, + 642, 643, 644, -1, 646, 647, 648, -1, 650, 651, + 652, 653, -1, 655, 656, -1, -1, 659, -1, -1, + 662, 663, 664, -1, 666, -1, 668, 669, 670, 671, + -1, 673, 674, 675, 676, -1, 678, 679, -1, 681, + -1, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, -1, 704, 705, 706, 707, 708, 709, 710, 711, + 712, -1, 714, 715, 716, -1, 718, 719, 720, 721, + 18, 19, 724, 725, -1, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + -1, -1, 744, 745, -1, -1, 748, -1, 750, 751, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + -1, -1, -1, -1, -1, -1, -1, -1, 76, -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, 113, -1, -1, -1, -1, + -1, -1, -1, 121, -1, -1, -1, 125, -1, -1, + 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 153, -1, -1, -1, -1, + -1, -1, -1, 161, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, -1, -1, -1, -1, + -1, 239, 240, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 306, -1, + 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, -1, 342, -1, -1, 345, 346, 347, + 348, 349, -1, -1, 352, 353, 354, 355, -1, -1, + -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, -1, -1, -1, -1, -1, 375, -1, 377, + -1, 379, 380, -1, 382, 383, 384, 385, 386, 387, + -1, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, -1, -1, -1, 435, -1, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, -1, -1, -1, -1, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, -1, 464, 465, -1, -1, + 468, -1, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, + 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, -1, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, -1, -1, 577, + -1, 579, 580, -1, 582, 583, 584, 585, -1, 587, + 588, 589, 590, -1, -1, -1, -1, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, -1, 622, -1, 624, 625, 626, -1, + 628, 629, -1, 631, 632, 633, 634, 635, 636, -1, + 638, 639, 640, 641, 642, 643, 644, -1, 646, 647, + 648, -1, 650, 651, 652, 653, -1, 655, 656, -1, + -1, 659, -1, -1, 662, 663, 664, -1, 666, -1, + 668, 669, 670, 671, -1, 673, 674, 675, 676, -1, + 678, 679, -1, 681, -1, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, -1, 704, 705, 706, 707, + 708, 709, 710, 711, 712, -1, 714, 715, 716, -1, + 718, 719, 720, 721, 18, 19, 724, 725, -1, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, -1, -1, 744, 745, -1, -1, + 748, -1, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, + -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 121, -1, -1, + -1, 125, -1, -1, 128, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 153, + -1, -1, -1, -1, -1, -1, -1, 161, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + -1, -1, -1, -1, -1, 239, 240, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 308, -1, -1, -1, -1, 313, + 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, -1, 342, -1, + -1, 345, 346, 347, 348, 349, -1, -1, 352, 353, + 354, 355, -1, -1, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, -1, -1, -1, -1, + -1, 375, -1, 377, -1, 379, 380, -1, 382, 383, + 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, -1, -1, + -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, -1, -1, -1, -1, -1, + 454, 455, 456, 457, 458, 459, -1, 461, 462, -1, + 464, 465, -1, -1, 468, -1, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, + 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, -1, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, -1, -1, 577, -1, 579, 580, -1, 582, 583, + 584, 585, -1, 587, 588, 589, 590, -1, -1, -1, + -1, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, -1, 622, -1, + 624, 625, 626, -1, 628, 629, -1, 631, 632, 633, + 634, 635, 636, -1, 638, 639, 640, 641, 642, 643, + 644, -1, 646, 647, 648, -1, 650, 651, 652, 653, + -1, 655, 656, -1, -1, 659, -1, -1, 662, 663, + 664, -1, 666, -1, 668, 669, 670, 671, -1, 673, + 674, 675, 676, -1, 678, 679, -1, 681, -1, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, -1, + 704, 705, 706, 707, 708, 709, 710, 711, 712, -1, + 714, 715, 716, -1, 718, 719, 720, 721, 18, 19, + 724, 725, -1, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, -1, -1, + 744, 745, -1, -1, 748, -1, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, + -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 121, -1, -1, -1, 125, -1, -1, 128, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, + -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, -1, -1, -1, -1, -1, 239, + 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, + -1, -1, -1, 313, 314, 315, 316, 317, -1, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, -1, 342, -1, -1, 345, 346, 347, 348, 349, + -1, -1, 352, 353, 354, 355, -1, -1, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + -1, -1, -1, -1, -1, 375, -1, 377, -1, 379, + 380, -1, 382, 383, 384, 385, 386, 387, -1, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, -1, -1, -1, 435, -1, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, -1, + -1, -1, -1, -1, 454, 455, 456, 457, 458, 459, + -1, 461, 462, -1, 464, 465, -1, -1, 468, -1, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, -1, 482, 483, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + -1, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, -1, -1, 577, -1, 579, + 580, -1, 582, 583, 584, 585, -1, 587, 588, 589, + 590, -1, -1, -1, -1, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, -1, 622, -1, 624, 625, 626, -1, 628, 629, + -1, 631, 632, 633, 634, 635, 636, -1, 638, 639, + 640, 641, 642, 643, 644, -1, 646, 647, 648, -1, + 650, 651, 652, 653, -1, 655, 656, -1, -1, 659, + -1, -1, 662, 663, 664, -1, 666, -1, 668, 669, + 670, 671, -1, 673, 674, 675, 676, -1, 678, 679, + -1, 681, -1, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, -1, 704, 705, 706, 707, 708, 709, + 710, 711, 712, -1, 714, 715, 716, -1, 718, 719, + 720, 721, 18, 19, 724, 725, -1, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, -1, -1, 744, 745, -1, -1, 748, -1, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, + 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 121, -1, -1, -1, 125, + -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 153, -1, -1, + -1, -1, -1, -1, -1, 161, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, + -1, -1, -1, 239, 240, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 308, -1, -1, -1, -1, 313, 314, 315, + 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, -1, 342, -1, -1, 345, + 346, 347, 348, 349, -1, -1, 352, 353, 354, 355, + -1, -1, -1, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, -1, -1, -1, -1, -1, -1, 375, + -1, 377, -1, 379, 380, -1, 382, 383, 384, 385, + 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, -1, -1, -1, 435, + -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, -1, -1, -1, -1, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, -1, 464, 465, + -1, -1, 468, -1, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, + 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, -1, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, -1, + -1, 577, -1, 579, 580, -1, 582, 583, 584, 585, + -1, 587, 588, 589, 590, -1, -1, -1, -1, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, -1, 622, -1, 624, 625, + 626, -1, 628, 629, -1, 631, 632, 633, 634, 635, + 636, -1, 638, 639, 640, 641, 642, 643, 644, -1, + 646, 647, 648, -1, 650, 651, 652, 653, -1, 655, + 656, -1, -1, 659, -1, -1, 662, 663, 664, -1, + 666, -1, 668, 669, 670, 671, -1, 673, 674, 675, + 676, -1, 678, 679, -1, 681, -1, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, -1, 704, 705, + 706, 707, 708, 709, 710, 711, 712, -1, 714, 715, + 716, -1, 718, 719, 720, 721, 18, 19, 724, 725, + -1, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, -1, -1, 744, 745, + -1, -1, 748, -1, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, + -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, + -1, -1, -1, 125, -1, -1, 128, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 138, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 153, -1, -1, -1, -1, -1, -1, -1, 161, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, -1, -1, -1, -1, -1, 239, 240, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, + -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, -1, + 342, -1, -1, 345, 346, 347, 348, 349, -1, -1, + 352, 353, 354, 355, -1, -1, -1, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, -1, -1, -1, + -1, -1, -1, 375, -1, 377, -1, 379, 380, -1, + 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + -1, -1, -1, 435, -1, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, -1, -1, -1, + -1, -1, 454, 455, 456, 457, 458, 459, -1, 461, + 462, -1, 464, 465, -1, -1, 468, -1, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, + 482, 483, 484, 485, 486, 487, 488, 489, 490, -1, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, -1, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, -1, -1, 577, -1, 579, 580, -1, + 582, 583, 584, 585, -1, 587, 588, 589, 590, -1, + -1, -1, -1, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, -1, + 622, -1, 624, 625, 626, -1, 628, 629, -1, 631, + 632, 633, 634, 635, 636, -1, 638, 639, 640, 641, + 642, 643, 644, -1, 646, 647, 648, -1, 650, 651, + 652, 653, -1, 655, 656, -1, -1, 659, -1, -1, + 662, 663, 664, -1, 666, -1, 668, 669, 670, 671, + -1, 673, 674, 675, 676, -1, 678, 679, -1, 681, + -1, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, -1, 704, 705, 706, 707, 708, 709, 710, 711, + 712, -1, 714, 715, 716, -1, 718, 719, 720, 721, + 18, 19, 724, 725, -1, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + -1, -1, 744, 745, -1, -1, 748, -1, 750, 751, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + -1, -1, -1, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 121, -1, -1, -1, 125, -1, -1, + 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 153, -1, -1, -1, -1, + -1, -1, -1, 161, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, -1, -1, -1, -1, + -1, 239, 240, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, -1, 342, -1, -1, 345, 346, 347, + 348, 349, -1, -1, 352, 353, 354, 355, -1, -1, + -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, -1, -1, -1, -1, -1, -1, 375, -1, 377, + -1, 379, 380, -1, 382, 383, 384, 385, 386, 387, + -1, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, -1, -1, -1, 435, -1, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, -1, -1, -1, -1, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, -1, 464, 465, -1, -1, + 468, -1, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, + 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, -1, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, -1, -1, 577, + -1, 579, 580, -1, 582, 583, 584, 585, -1, 587, + 588, 589, 590, -1, -1, -1, -1, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, -1, 622, -1, 624, 625, 626, -1, + 628, 629, -1, 631, 632, 633, 634, 635, 636, -1, + 638, 639, 640, 641, 642, 643, 644, -1, 646, 647, + 648, -1, 650, 651, 652, 653, -1, 655, 656, -1, + -1, 659, -1, -1, 662, 663, 664, -1, 666, -1, + 668, 669, 670, 671, -1, 673, 674, 675, 676, -1, + 678, 679, -1, 681, -1, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, -1, 704, 705, 706, 707, + 708, 709, 710, 711, 712, -1, 714, 715, 716, -1, + 718, 719, 720, 721, 18, 19, 724, 725, -1, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, -1, -1, 744, 745, -1, -1, + 748, -1, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, + -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 121, -1, -1, + -1, 125, -1, -1, 128, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 153, + -1, -1, -1, -1, -1, -1, -1, 161, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, + -1, -1, -1, -1, -1, 239, 240, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 308, -1, -1, -1, -1, 313, + 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, -1, 342, -1, + -1, 345, 346, 347, 348, 349, -1, -1, 352, 353, + 354, 355, -1, -1, -1, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, -1, -1, -1, -1, -1, + -1, 375, -1, 377, -1, 379, 380, -1, 382, 383, + 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, -1, -1, + -1, 435, -1, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, -1, -1, -1, -1, -1, + 454, 455, 456, 457, 458, 459, -1, 461, 462, -1, + 464, 465, -1, -1, 468, -1, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, + 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, -1, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, -1, -1, 577, -1, 579, 580, -1, 582, 583, + 584, 585, -1, 587, 588, 589, 590, -1, -1, -1, + -1, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, -1, 622, -1, + 624, 625, 626, -1, 628, 629, -1, 631, 632, 633, + 634, 635, 636, -1, 638, 639, 640, 641, 642, 643, + 644, -1, 646, 647, 648, -1, 650, 651, 652, 653, + -1, 655, 656, -1, -1, 659, -1, -1, 662, 663, + 664, -1, 666, -1, 668, 669, 670, 671, -1, 673, + 674, 675, 676, -1, 678, 679, -1, 681, -1, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, -1, + 704, 705, 706, 707, 708, 709, 710, 711, 712, -1, + 714, 715, 716, -1, 718, 719, 720, 721, 18, 19, + 724, 725, -1, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, -1, -1, + 744, 745, -1, -1, 748, -1, 750, 751, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, + -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 121, -1, -1, -1, 125, -1, -1, 128, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, + -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 233, -1, -1, -1, -1, -1, 239, + 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, + -1, -1, -1, 313, 314, 315, 316, 317, -1, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, 334, 335, 336, 337, 338, 339, + 340, -1, 342, -1, -1, 345, 346, 347, 348, 349, + -1, -1, 352, 353, 354, 355, -1, -1, -1, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, + -1, -1, -1, -1, -1, 375, -1, 377, -1, 379, + 380, -1, 382, 383, 384, 385, 386, 387, -1, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, -1, 404, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + -1, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, -1, -1, -1, 435, -1, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, -1, + -1, -1, -1, -1, 454, 455, 456, 457, 458, 459, + -1, 461, 462, -1, 464, 465, -1, -1, 468, -1, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, -1, 482, 483, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + -1, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, -1, -1, 577, -1, 579, + 580, -1, 582, 583, 584, 585, -1, 587, 588, 589, + 590, -1, -1, -1, -1, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, -1, 622, -1, 624, 625, 626, -1, 628, 629, + -1, 631, 632, 633, 634, 635, 636, -1, 638, 639, + 640, 641, 642, 643, 644, -1, 646, 647, 648, -1, + 650, 651, 652, 653, -1, 655, 656, -1, -1, 659, + -1, -1, 662, 663, 664, -1, 666, -1, 668, 669, + 670, 671, -1, 673, 674, 675, 676, -1, 678, 679, + -1, 681, -1, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, -1, 704, 705, 706, 707, 708, 709, + 710, 711, 712, -1, 714, 715, 716, -1, 718, 719, + 720, 721, 18, 19, 724, 725, -1, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, -1, -1, 744, 745, -1, -1, 748, -1, + 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, + 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 121, -1, -1, -1, 125, + -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 153, -1, -1, + -1, -1, -1, -1, -1, 161, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, + -1, -1, -1, 239, 240, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 308, -1, -1, -1, -1, 313, 314, 315, + 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, -1, 342, -1, -1, 345, + 346, 347, 348, 349, -1, -1, 352, 353, 354, 355, + -1, -1, -1, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, -1, -1, -1, -1, -1, -1, 375, + -1, 377, -1, 379, 380, -1, 382, 383, 384, 385, + 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, -1, -1, -1, 435, + -1, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, -1, -1, -1, -1, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, -1, 464, 465, + -1, -1, 468, -1, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, + 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, -1, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, -1, + -1, 577, -1, 579, 580, -1, 582, 583, 584, 585, + -1, 587, 588, 589, 590, -1, -1, -1, -1, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, -1, 622, -1, 624, 625, + 626, -1, 628, 629, -1, 631, 632, 633, 634, 635, + 636, -1, 638, 639, 640, 641, 642, 643, 644, -1, + 646, 647, 648, -1, 650, 651, 652, 653, -1, 655, + 656, -1, -1, 659, -1, -1, 662, 663, 664, -1, + 666, -1, 668, 669, 670, 671, -1, 673, 674, 675, + 676, -1, 678, 679, -1, 681, -1, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, -1, 704, 705, + 706, 707, 708, 709, 710, 711, 712, -1, 714, 715, + 716, -1, 718, 719, 720, 721, 18, 19, 724, 725, + -1, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, -1, -1, 744, 745, + -1, -1, 748, -1, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 138, -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, 173, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 233, -1, -1, -1, -1, -1, 239, 240, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, + -1, 313, 314, 315, 316, 317, -1, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, 334, 335, 336, 337, 338, 339, 340, -1, + 342, -1, -1, 345, 346, 347, 348, 349, -1, -1, + 352, 353, 354, 355, -1, -1, -1, 359, 360, 361, + 362, 363, -1, 365, 366, 367, 368, -1, -1, -1, + -1, -1, -1, 375, -1, 377, -1, 379, 380, -1, + 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, -1, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, -1, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + -1, -1, -1, 435, -1, -1, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, -1, -1, -1, + -1, -1, 454, 455, 456, 457, 458, 459, -1, 461, + 462, -1, 464, 465, 18, 19, 468, -1, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, + 482, 483, 484, 485, 486, 487, 488, 489, 490, -1, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, -1, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, -1, -1, -1, 577, -1, 579, 580, -1, + 582, 583, 584, 585, -1, 587, 588, 589, 590, -1, + -1, -1, -1, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, -1, + 622, -1, 624, 625, 626, -1, 628, 629, -1, 631, + 632, 633, 634, 635, 636, -1, 638, 639, 640, 641, + 642, 643, 644, -1, 646, 647, 648, -1, 650, 651, + 652, 653, -1, 655, 656, -1, -1, 659, -1, -1, + 662, 663, 664, -1, 666, -1, 668, 669, 670, 671, + -1, 673, 674, 675, 676, -1, 678, 679, -1, 681, + -1, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, -1, 704, 705, 706, 707, 708, 709, 710, 711, + 712, -1, 714, 715, 716, -1, 718, 719, 720, 721, + -1, -1, 724, 725, -1, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + -1, -1, 744, 745, -1, -1, 748, -1, 750, 751, + -1, -1, 306, -1, -1, -1, -1, -1, -1, 313, + 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + 334, 335, 336, 337, 338, 339, 340, -1, -1, -1, + -1, 345, 346, 347, 348, 349, -1, -1, 352, 353, + 354, 355, -1, -1, -1, 359, 360, 361, 362, 363, + -1, 365, 366, 367, 368, -1, -1, -1, -1, -1, + -1, 375, -1, 377, -1, 379, 380, -1, 382, 383, + 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, -1, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, -1, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, -1, -1, + -1, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, -1, -1, -1, -1, -1, + 454, 455, 456, 457, 458, 459, -1, 461, 462, -1, + 464, 465, 18, 19, 468, -1, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, + 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, -1, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + -1, -1, -1, 577, -1, 579, 580, -1, 582, 583, + 584, 585, -1, 587, 588, 589, 590, -1, -1, -1, + -1, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, -1, 622, -1, + 624, 625, 626, -1, 628, 629, -1, 631, 632, 633, + 634, 635, 636, -1, 638, 639, 640, 641, 642, 643, + 644, -1, 646, 647, 648, -1, 650, 651, 652, 653, + -1, 655, 656, -1, -1, 659, -1, -1, 662, 663, + 664, -1, 666, -1, 668, 669, 670, 671, -1, 673, + 674, 675, 676, -1, 678, 679, -1, 681, -1, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, -1, + 704, 705, 706, 707, 708, 709, 710, 711, 712, -1, + 714, 715, 716, -1, 718, 719, 720, 721, -1, -1, + 724, 725, -1, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, -1, -1, + 744, 745, -1, -1, 748, -1, 750, 751, -1, -1, + 306, -1, -1, -1, -1, -1, -1, 313, 314, 315, + 316, 317, -1, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, 334, 335, + 336, 337, 338, 339, 340, -1, -1, -1, -1, 345, + 346, 347, 348, 349, -1, -1, 352, 353, 354, 355, + -1, -1, -1, 359, 360, 361, 362, 363, -1, 365, + 366, 367, 368, -1, -1, -1, -1, -1, -1, 375, + -1, 377, -1, 379, 380, -1, 382, 383, 384, 385, + 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, -1, 404, 405, + 406, -1, 408, 409, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, -1, -1, -1, 435, + -1, -1, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, -1, -1, -1, -1, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, -1, 464, 465, + 18, 19, 468, -1, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, + 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, -1, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, -1, -1, + -1, 577, -1, 579, 580, -1, 582, 583, 584, 585, + -1, 587, 588, 589, 590, -1, -1, -1, -1, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, -1, 622, -1, 624, 625, + 626, -1, 628, 629, -1, 631, 632, 633, 634, 635, + 636, -1, 638, 639, 640, 641, 642, 643, 644, -1, + 646, 647, 648, -1, 650, 651, 652, 653, -1, 655, + 656, -1, -1, 659, -1, -1, 662, 663, 664, -1, + 666, -1, 668, 669, 670, 671, -1, 673, 674, 675, + 676, -1, 678, 679, -1, 681, -1, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, -1, 704, 705, + 706, 707, 708, 709, 710, 711, 712, -1, 714, 715, + 716, -1, 718, 719, 720, 721, -1, -1, 724, 725, + -1, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, -1, -1, 744, 745, + -1, -1, 748, -1, 750, 751, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 313, 314, 315, 316, 317, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, 334, 335, 336, 337, + 338, 339, 340, -1, -1, -1, -1, 345, 346, 347, + 348, 349, -1, -1, 352, 353, 354, 355, -1, -1, + -1, 359, 360, 361, 362, 363, -1, 365, 366, 367, + 368, -1, -1, -1, -1, -1, -1, 375, -1, 377, + -1, 379, 380, -1, 382, 383, 384, 385, 386, 387, + -1, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, -1, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, -1, -1, -1, 435, -1, -1, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, -1, -1, -1, -1, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, -1, 464, 465, -1, -1, + 468, -1, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, + 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, -1, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, -1, -1, -1, 577, + -1, 579, 580, -1, 582, 583, 584, 585, -1, 587, + 588, 589, 590, -1, -1, -1, -1, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, -1, 622, -1, 624, 625, 626, -1, + 628, 629, -1, 631, 632, 633, 634, 635, 636, -1, + 638, 639, 640, 641, 642, 643, 644, -1, 646, 647, + 648, -1, 650, 651, 652, 653, -1, 655, 656, -1, + -1, 659, -1, -1, 662, 663, 664, -1, 666, -1, + 668, 669, 670, 671, -1, 673, 674, 675, 676, -1, + 678, 679, -1, 681, -1, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, -1, 704, 705, 706, 707, + 708, 709, 710, 711, 712, -1, 714, 715, 716, -1, + 718, 719, 720, 721, -1, -1, 724, 725, -1, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 18, 19, 744, 745, -1, -1, + 748, -1, 750, 751, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, -1, 56, 57, 58, 59, -1, -1, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, 126, 127, 128, 129, 130, -1, -1, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, -1, -1, -1, 173, + 174, 175, 176, 177, 178, 179, -1, -1, -1, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, -1, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, -1, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, + -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, -1, -1, -1, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, -1, 346, -1, -1, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, -1, -1, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, -1, -1, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, -1, 449, 450, 451, -1, 453, + 454, 455, -1, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, -1, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, -1, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, -1, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, -1, -1, -1, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, -1, -1, 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, -1, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, -1, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, -1, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, -1, 702, 703, + -1, 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, -1, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, -1, 743, + 744, 745, 746, -1, 748, 749, 750 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 5, 6, 47, 48, 65, 67, 69, 71, 79, + 100, 102, 103, 109, 125, 129, 138, 146, 157, 167, + 169, 173, 198, 209, 210, 219, 220, 231, 232, 233, + 234, 236, 241, 247, 251, 252, 253, 289, 291, 293, + 300, 308, 309, 341, 342, 344, 351, 358, 378, 403, + 415, 434, 449, 460, 463, 466, 481, 594, 623, 627, + 637, 645, 657, 677, 680, 713, 723, 749, 771, 782, + 785, 786, 787, 788, 789, 791, 797, 799, 812, 858, + 896, 897, 904, 905, 918, 948, 973, 1033, 1089, 1141, + 1239, 1291, 1294, 1304, 1309, 1315, 1328, 1331, 1337, 1340, + 1345, 1352, 1364, 1367, 1370, 1371, 1373, 1376, 1377, 1379, + 1380, 1383, 1384, 1387, 1604, 1606, 1619, 1622, 1660, 1669, + 1687, 1695, 1709, 1713, 1714, 1718, 1728, 1735, 1743, 1745, + 1751, 1754, 1755, 1787, 1838, 1879, 1886, 1888, 1897, 1900, + 1935, 1937, 1942, 1943, 1944, 1945, 1970, 1979, 1980, 1981, + 1983, 2010, 2011, 2021, 2026, 87, 218, 329, 406, 456, + 501, 650, 654, 696, 727, 1240, 1949, 1950, 1951, 1952, + 191, 453, 499, 1339, 1716, 18, 19, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 748, 749, 750, 751, 852, 1809, 1811, + 1818, 1825, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, + 1989, 949, 520, 1332, 201, 501, 696, 1670, 87, 141, + 218, 283, 429, 456, 501, 636, 654, 696, 699, 727, + 735, 1618, 976, 849, 919, 1620, 1746, 141, 398, 750, + 1760, 275, 695, 1882, 974, 1339, 1142, 1034, 56, 520, + 1701, 251, 260, 893, 898, 900, 1818, 645, 727, 1882, + 978, 1623, 898, 899, 849, 1374, 1839, 1696, 898, 1887, + 1661, 1818, 1372, 975, 227, 1789, 169, 289, 675, 1729, + 39, 190, 1419, 1936, 3, 30, 1812, 141, 1882, 745, + 1939, 1605, 475, 1818, 1339, 393, 906, 1889, 798, 590, + 667, 1818, 1339, 1736, 1939, 1818, 1752, 46, 660, 708, + 46, 660, 1688, 590, 667, 342, 343, 378, 420, 594, + 611, 637, 677, 1973, 1373, 1380, 1383, 0, 6, 783, + 594, 87, 127, 141, 255, 288, 636, 727, 829, 1218, + 1219, 1618, 1949, 1950, 1951, 1952, 126, 150, 1390, 1391, + 1600, 1368, 1365, 117, 148, 287, 1382, 1946, 1381, 1946, + 441, 453, 583, 779, 1715, 1716, 1806, 1818, 1377, 1379, + 376, 1259, 1818, 852, 755, 755, 852, 133, 138, 1617, + 20, 1812, 1818, 1820, 981, 982, 985, 1008, 1818, 1617, + 1283, 1284, 261, 1408, 1953, 1954, 1949, 755, 1882, 1364, + 1367, 1619, 1622, 1660, 1669, 1712, 859, 779, 306, 929, + 930, 950, 953, 956, 810, 811, 1812, 735, 1329, 1882, + 234, 133, 983, 1008, 140, 174, 468, 606, 1672, 1685, + 1686, 1617, 1608, 1617, 1617, 1617, 1617, 133, 1617, 1617, + 1008, 1617, 1617, 650, 1882, 961, 1818, 1993, 46, 47, + 79, 83, 100, 109, 129, 141, 146, 169, 224, 228, + 247, 251, 252, 283, 291, 292, 344, 383, 429, 434, + 445, 446, 599, 603, 609, 620, 626, 657, 660, 689, + 1820, 1901, 1905, 1906, 1908, 1910, 1911, 1912, 1913, 929, + 944, 1625, 464, 666, 1747, 150, 1756, 1880, 76, 121, + 128, 153, 161, 239, 240, 316, 342, 364, 437, 456, + 574, 875, 920, 921, 922, 923, 924, 925, 926, 927, + 928, 938, 939, 940, 941, 942, 963, 966, 1811, 1819, + 1832, 1833, 1834, 1836, 1990, 1998, 1999, 2000, 2019, 2020, + 2021, 2022, 2024, 1882, 3, 7, 8, 18, 19, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 39, 56, 57, 58, 59, 67, 68, 70, 77, 78, + 81, 82, 83, 84, 86, 87, 89, 90, 98, 101, + 118, 119, 120, 122, 130, 131, 132, 138, 146, 149, + 158, 160, 162, 176, 177, 179, 183, 187, 190, 192, + 193, 194, 195, 211, 212, 213, 215, 222, 233, 234, + 242, 243, 261, 268, 269, 271, 272, 273, 284, 285, + 295, 296, 297, 303, 304, 325, 332, 340, 356, 365, + 367, 369, 370, 371, 372, 373, 388, 400, 401, 402, + 404, 405, 453, 459, 471, 493, 494, 535, 537, 543, + 553, 554, 570, 577, 585, 597, 604, 635, 641, 642, + 648, 655, 685, 704, 705, 706, 707, 712, 713, 727, + 729, 740, 741, 743, 751, 760, 761, 766, 771, 775, + 776, 779, 1383, 1389, 1414, 1415, 1416, 1420, 1432, 1434, + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1451, + 1457, 1458, 1459, 1460, 1461, 1463, 1466, 1779, 1782, 1784, + 1785, 1786, 1803, 1810, 1811, 1818, 1825, 64, 1035, 502, + 353, 360, 375, 385, 386, 387, 395, 534, 546, 647, + 684, 698, 901, 903, 729, 894, 900, 1818, 849, 1617, + 875, 964, 1625, 900, 46, 324, 603, 1898, 1899, 1906, + 1908, 46, 105, 257, 259, 270, 288, 467, 670, 671, + 672, 673, 1393, 1400, 1401, 1948, 3, 70, 98, 316, + 356, 456, 461, 499, 547, 585, 636, 653, 678, 708, + 742, 1181, 1809, 1816, 1827, 1829, 1830, 1831, 1833, 1834, + 1835, 1836, 1840, 1850, 1861, 1989, 46, 78, 79, 88, + 141, 155, 207, 218, 275, 319, 335, 344, 356, 367, + 390, 423, 426, 428, 455, 456, 461, 462, 478, 499, + 520, 574, 589, 598, 601, 602, 616, 653, 660, 681, + 739, 1181, 1217, 1697, 1701, 1702, 1704, 1713, 1811, 1851, + 900, 1882, 174, 1668, 771, 1639, 1648, 929, 1995, 1788, + 1730, 1818, 334, 1939, 1820, 1346, 1305, 49, 1940, 1414, + 1486, 792, 294, 794, 1719, 410, 1806, 1808, 1818, 1890, + 1820, 138, 1088, 1812, 126, 1310, 520, 605, 660, 1737, + 1738, 281, 1940, 738, 1753, 661, 810, 224, 309, 1295, + 1296, 1297, 661, 810, 275, 1690, 1617, 1617, 22, 25, + 26, 30, 1780, 1781, 1813, 1972, 1972, 1972, 453, 1971, + 1972, 1972, 772, 772, 778, 1818, 1088, 1088, 141, 1088, + 1088, 654, 833, 141, 141, 275, 650, 218, 283, 429, + 1953, 328, 850, 850, 1949, 110, 771, 776, 1389, 1392, + 1492, 1493, 1494, 1495, 1496, 1507, 1508, 1509, 1510, 1512, + 1513, 1514, 1806, 204, 416, 1595, 1596, 1601, 307, 1537, + 1390, 125, 164, 169, 200, 1402, 1562, 1567, 1573, 1574, + 1578, 218, 1577, 1590, 1600, 46, 105, 1947, 1947, 1947, + 1573, 1575, 1383, 1386, 1387, 1574, 1576, 1385, 46, 1818, + 1711, 1710, 779, 1369, 1366, 41, 755, 1642, 1643, 1242, + 726, 1244, 533, 700, 719, 84, 1820, 1821, 1822, 1905, + 1245, 987, 1009, 1818, 118, 1250, 1249, 45, 69, 109, + 190, 225, 609, 1010, 849, 275, 140, 573, 1285, 1286, + 1287, 649, 429, 735, 1953, 1820, 1316, 771, 860, 1818, + 929, 951, 1414, 113, 958, 956, 281, 1330, 1611, 1612, + 1806, 986, 1009, 45, 126, 1673, 126, 1673, 1674, 1675, + 1682, 1683, 1818, 1685, 1818, 138, 1616, 852, 852, 852, + 1818, 1009, 849, 1820, 1019, 1702, 849, 1609, 1617, 1617, + 977, 147, 962, 598, 1909, 639, 639, 696, 699, 727, + 735, 771, 1413, 468, 576, 695, 572, 727, 88, 735, + 324, 542, 625, 324, 324, 197, 324, 361, 520, 660, + 542, 281, 197, 774, 771, 277, 420, 174, 407, 467, + 1627, 1629, 383, 605, 1748, 1749, 351, 174, 382, 1762, + 1806, 1883, 1884, 306, 1819, 126, 133, 553, 1818, 1819, + 1819, 1819, 2025, 1818, 306, 1819, 1818, 420, 2020, 1983, + 1984, 929, 943, 1818, 780, 125, 173, 233, 308, 342, + 778, 1338, 1467, 18, 19, 29, 1810, 1825, 30, 1781, + 149, 760, 761, 1437, 771, 771, 771, 306, 1414, 1489, + 1490, 771, 771, 771, 771, 771, 1413, 1413, 1413, 771, + 1412, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 1414, 771, 771, 771, 7, + 771, 1487, 1488, 1803, 1810, 771, 771, 771, 771, 1414, + 1412, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 14, 771, 771, 771, 771, 1412, 771, 1413, + 1412, 1412, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 30, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 729, 771, 771, 771, 771, 729, 771, 771, 771, 771, + 771, 771, 771, 30, 771, 771, 771, 30, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 149, 1437, 149, + 1437, 1437, 1143, 1383, 1414, 1787, 1818, 1810, 32, 34, + 35, 36, 38, 40, 49, 152, 201, 310, 755, 756, + 757, 1417, 1418, 1421, 54, 147, 163, 230, 668, 1419, + 13, 42, 43, 106, 187, 758, 759, 760, 761, 762, + 763, 764, 765, 1437, 72, 37, 206, 206, 743, 1813, + 779, 771, 14, 1036, 53, 281, 774, 755, 1813, 1342, + 1821, 1823, 1341, 725, 1628, 1629, 1909, 576, 197, 126, + 197, 1375, 1401, 3, 1820, 251, 636, 779, 56, 98, + 1182, 1183, 1642, 1820, 125, 1642, 1642, 1820, 98, 1810, + 1844, 1853, 1841, 56, 98, 1185, 1186, 1820, 779, 1642, + 1842, 774, 661, 771, 87, 207, 218, 275, 283, 319, + 429, 456, 650, 727, 735, 163, 307, 1708, 62, 679, + 366, 679, 679, 313, 679, 428, 679, 1708, 46, 1100, + 1820, 1566, 1567, 1568, 126, 147, 1703, 1705, 366, 679, + 125, 679, 695, 667, 46, 346, 389, 391, 484, 532, + 580, 669, 691, 1691, 1692, 1693, 810, 470, 679, 811, + 1568, 1708, 1705, 502, 422, 368, 600, 695, 711, 125, + 1407, 679, 732, 140, 1282, 1649, 774, 415, 1790, 1791, + 1798, 1818, 1806, 2027, 774, 1347, 1348, 1349, 1350, 1806, + 1611, 354, 560, 231, 560, 1941, 774, 1414, 795, 56, + 263, 409, 423, 425, 457, 470, 502, 520, 598, 605, + 615, 629, 660, 663, 679, 710, 1720, 1725, 1726, 1811, + 1882, 3, 73, 907, 908, 909, 910, 1810, 574, 224, + 364, 1419, 1818, 790, 735, 1307, 1882, 1740, 351, 1739, + 774, 645, 1818, 1941, 125, 1298, 1299, 1298, 572, 747, + 384, 774, 1298, 1298, 1612, 1818, 1812, 774, 571, 1975, + 690, 1976, 755, 154, 631, 1974, 6, 784, 1818, 816, + 1088, 849, 849, 1088, 820, 822, 1088, 1088, 1088, 827, + 828, 735, 456, 456, 1953, 1492, 1496, 1508, 1509, 1510, + 1511, 1512, 1818, 9, 1398, 80, 143, 154, 162, 188, + 242, 270, 1503, 1504, 774, 210, 1505, 1506, 30, 1814, + 1814, 3, 1597, 1598, 1599, 1818, 1820, 1538, 133, 1541, + 1537, 291, 7, 27, 29, 31, 244, 1569, 1570, 1782, + 1810, 147, 64, 1566, 1402, 1818, 1402, 1403, 1403, 1386, + 1712, 1717, 1780, 1818, 1818, 1574, 1577, 1812, 98, 376, + 1085, 1086, 1097, 1098, 1190, 398, 853, 1413, 3, 853, + 45, 988, 1806, 575, 397, 1005, 1005, 1005, 44, 1821, + 1822, 1823, 1919, 1923, 1617, 1287, 406, 482, 852, 1806, + 735, 1317, 1318, 1612, 861, 862, 1414, 957, 306, 952, + 954, 875, 1986, 420, 800, 1611, 125, 355, 441, 443, + 531, 606, 774, 1333, 1334, 1335, 988, 1005, 1806, 53, + 1671, 1614, 1615, 1807, 1818, 125, 1396, 1397, 1537, 774, + 1676, 779, 1684, 118, 1818, 779, 1019, 1904, 1906, 563, + 738, 1020, 1021, 423, 1823, 1918, 1611, 1610, 1607, 415, + 1997, 635, 960, 695, 772, 324, 1823, 324, 324, 1919, + 207, 218, 275, 456, 851, 1907, 344, 383, 429, 434, + 445, 446, 599, 609, 620, 626, 657, 660, 689, 1911, + 1913, 1796, 1797, 1810, 945, 138, 1282, 472, 727, 1414, + 1750, 1750, 1353, 499, 1761, 52, 755, 1533, 1534, 1535, + 564, 738, 774, 1881, 929, 306, 1818, 553, 126, 150, + 1982, 2015, 929, 306, 771, 937, 173, 778, 774, 969, + 967, 972, 968, 2023, 1611, 3, 1468, 1820, 779, 771, + 46, 1477, 1536, 1477, 1477, 1414, 1490, 113, 306, 420, + 1414, 1486, 1414, 105, 1477, 1536, 772, 23, 24, 25, + 27, 29, 31, 772, 1582, 1586, 1587, 772, 1414, 1414, + 1803, 772, 1378, 1379, 1388, 1787, 91, 92, 93, 94, + 135, 136, 137, 184, 185, 246, 311, 402, 471, 535, + 537, 543, 604, 648, 740, 751, 1530, 1531, 1414, 105, + 1469, 1469, 1456, 1414, 1414, 1414, 1530, 1414, 1414, 1414, + 1810, 1488, 327, 774, 779, 105, 1477, 1414, 105, 1477, + 1414, 1414, 1414, 1414, 1414, 772, 1416, 772, 1414, 1414, + 1414, 772, 640, 1477, 1477, 1414, 105, 1477, 63, 159, + 282, 1414, 1433, 1477, 1477, 1414, 1414, 105, 1477, 1414, + 1486, 1414, 1414, 1414, 1414, 1429, 1430, 1414, 1414, 1485, + 1486, 1414, 1414, 1414, 1414, 1414, 1414, 399, 401, 704, + 707, 1532, 1414, 1414, 1486, 1806, 1414, 1414, 1414, 125, + 1806, 1414, 1485, 1414, 125, 1414, 1414, 1414, 772, 1414, + 1806, 1414, 1414, 1531, 1531, 1414, 1433, 1414, 772, 7, + 779, 1804, 1818, 1414, 1414, 1485, 1414, 1414, 1414, 772, + 774, 1379, 1414, 779, 1415, 120, 195, 285, 724, 1419, + 1414, 1414, 1414, 46, 331, 1415, 1422, 1415, 771, 1389, + 1415, 1415, 163, 54, 147, 163, 230, 1416, 1416, 1416, + 1416, 1416, 1416, 1416, 149, 1416, 149, 1416, 1416, 1416, + 1416, 1416, 1187, 1820, 1437, 771, 1465, 1547, 1818, 771, + 133, 1810, 1444, 454, 486, 559, 640, 1431, 165, 221, + 498, 694, 1037, 1041, 1744, 1812, 903, 401, 704, 707, + 902, 1466, 1784, 1803, 774, 281, 1343, 1344, 1806, 929, + 150, 1630, 774, 125, 1823, 1822, 1920, 851, 1907, 762, + 1405, 1406, 1408, 461, 499, 653, 1852, 1642, 1906, 1818, + 72, 1188, 1414, 1871, 1870, 1869, 779, 779, 1642, 774, + 1843, 224, 485, 1872, 1873, 1874, 1875, 1818, 1862, 98, + 708, 1810, 1845, 1857, 1847, 1848, 1850, 1861, 679, 762, + 1088, 62, 852, 852, 1806, 852, 313, 852, 852, 852, + 1806, 1823, 1806, 1407, 1407, 366, 679, 1708, 852, 1708, + 1703, 366, 679, 1708, 147, 1706, 502, 544, 679, 1700, + 1700, 1708, 1818, 852, 1708, 1822, 1703, 1708, 1812, 483, + 692, 444, 125, 1694, 774, 428, 679, 1806, 1705, 1703, + 1703, 1414, 1708, 1708, 1708, 1493, 1659, 1806, 1408, 1651, + 1653, 771, 1646, 1996, 774, 771, 1794, 2015, 3, 147, + 774, 210, 1358, 1360, 1361, 441, 606, 1306, 354, 231, + 1414, 793, 98, 140, 796, 1414, 1654, 1655, 502, 502, + 502, 502, 351, 502, 810, 502, 774, 1407, 1721, 1820, + 902, 912, 774, 755, 1534, 1891, 118, 667, 1414, 1308, + 1611, 281, 1742, 810, 1738, 1818, 46, 1293, 619, 674, + 1300, 1301, 1292, 664, 1297, 1881, 1780, 588, 1977, 1820, + 824, 1818, 818, 1904, 1919, 1820, 1088, 1088, 813, 1806, + 2012, 1408, 1962, 837, 1408, 1088, 1088, 1088, 735, 774, + 772, 772, 772, 772, 772, 774, 772, 1492, 46, 52, + 54, 126, 1399, 1535, 154, 154, 203, 1515, 162, 242, + 1503, 1515, 1492, 1494, 771, 1398, 1602, 1820, 774, 779, + 1414, 64, 134, 1539, 1541, 564, 738, 1404, 1810, 432, + 244, 569, 774, 779, 656, 1563, 1591, 1243, 1643, 1086, + 72, 1181, 411, 186, 223, 261, 376, 388, 491, 560, + 855, 857, 1626, 1820, 1626, 612, 720, 1006, 1007, 479, + 1002, 1003, 1004, 1011, 1019, 1021, 1251, 771, 1812, 336, + 527, 996, 997, 998, 1011, 1012, 1013, 1019, 1021, 989, + 990, 996, 473, 235, 774, 1927, 1806, 1248, 1247, 1806, + 774, 587, 1319, 772, 774, 277, 929, 954, 67, 107, + 139, 175, 474, 503, 504, 506, 507, 508, 509, 510, + 512, 513, 514, 515, 516, 517, 518, 519, 521, 522, + 523, 617, 618, 801, 802, 809, 125, 1336, 726, 1612, + 1334, 376, 557, 613, 721, 999, 1000, 1001, 1011, 1015, + 1016, 1017, 1018, 1019, 1021, 293, 984, 1505, 694, 774, + 1678, 779, 1684, 214, 1561, 1562, 1683, 126, 762, 1818, + 197, 1818, 1020, 774, 1643, 774, 66, 237, 1288, 1611, + 1611, 875, 771, 931, 934, 281, 309, 1903, 62, 762, + 1806, 1818, 1917, 1917, 772, 774, 875, 1985, 1630, 1414, + 1823, 1354, 1355, 1356, 1357, 1806, 142, 316, 456, 1811, + 1815, 1824, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, + 1989, 174, 224, 747, 1885, 25, 761, 1579, 1581, 1884, + 929, 150, 641, 1818, 96, 874, 2016, 929, 931, 932, + 936, 1818, 961, 963, 964, 1995, 2015, 1881, 1852, 41, + 1810, 1414, 772, 1478, 772, 772, 277, 420, 1414, 1414, + 52, 294, 772, 294, 774, 1452, 772, 762, 772, 774, + 774, 772, 772, 1379, 126, 772, 1454, 1455, 1414, 774, + 774, 774, 761, 772, 774, 772, 774, 774, 772, 771, + 1803, 1810, 1477, 772, 772, 1477, 772, 774, 774, 772, + 772, 772, 147, 774, 774, 774, 772, 772, 126, 774, + 1477, 772, 126, 1414, 126, 1414, 126, 1414, 126, 772, + 772, 772, 774, 772, 1477, 772, 772, 772, 772, 774, + 772, 774, 772, 774, 774, 774, 772, 774, 772, 772, + 774, 774, 774, 774, 772, 772, 774, 772, 772, 772, + 772, 1806, 772, 772, 772, 772, 1806, 772, 772, 774, + 772, 774, 774, 772, 774, 774, 774, 772, 772, 774, + 1810, 1818, 772, 779, 772, 774, 52, 497, 774, 1206, + 772, 772, 1530, 1530, 1486, 772, 777, 1810, 120, 195, + 285, 724, 771, 49, 1414, 427, 1415, 1415, 771, 1389, + 1415, 1415, 1414, 1414, 1548, 210, 1550, 771, 771, 779, + 1408, 1448, 1449, 1450, 368, 771, 1046, 1047, 1039, 1046, + 1040, 583, 1049, 156, 465, 1414, 755, 1823, 1823, 774, + 1881, 420, 1631, 1632, 129, 1906, 126, 774, 1917, 1917, + 774, 1414, 1801, 1810, 779, 779, 779, 98, 316, 456, + 742, 1811, 1812, 1817, 1826, 1829, 1830, 1831, 1832, 1834, + 1835, 1836, 1989, 1865, 125, 1642, 98, 1187, 1189, 1823, + 30, 570, 585, 1877, 46, 56, 98, 197, 1414, 1878, + 1818, 1818, 1854, 1853, 125, 572, 747, 497, 774, 774, + 1642, 1878, 779, 1846, 779, 1642, 774, 774, 1849, 772, + 1818, 852, 852, 1812, 1414, 852, 1708, 1708, 852, 1708, + 1812, 126, 1707, 849, 1708, 605, 1568, 1693, 1706, 1703, + 1806, 1708, 1708, 251, 1505, 1655, 772, 774, 1647, 875, + 1791, 1795, 1797, 52, 874, 1820, 98, 1351, 1818, 1349, + 1806, 1032, 1360, 141, 156, 1215, 1362, 794, 774, 99, + 1731, 810, 1726, 1611, 1727, 910, 913, 914, 909, 565, + 566, 642, 911, 447, 553, 1818, 1892, 1893, 1812, 1611, + 441, 606, 728, 1311, 1312, 1313, 1581, 46, 1741, 661, + 774, 725, 1302, 1689, 774, 125, 1978, 1084, 1085, 294, + 715, 1227, 1818, 309, 1902, 1927, 834, 1818, 1818, 1806, + 815, 852, 2007, 1088, 1088, 1806, 852, 1818, 852, 1088, + 1492, 1492, 777, 568, 704, 708, 1394, 1395, 1439, 1395, + 154, 1515, 1515, 1507, 154, 197, 294, 1529, 1818, 1534, + 1181, 1184, 1598, 1818, 1414, 1542, 1802, 1540, 742, 1544, + 1539, 1581, 1570, 1571, 432, 1570, 1570, 1810, 540, 1564, + 1802, 771, 1084, 1812, 1643, 1643, 548, 261, 261, 649, + 1812, 261, 261, 261, 1812, 1812, 1643, 774, 1004, 178, + 351, 396, 477, 538, 555, 556, 560, 561, 562, 628, + 677, 831, 832, 87, 469, 578, 585, 591, 665, 727, + 835, 836, 1643, 1643, 774, 998, 991, 992, 1011, 1012, + 1013, 64, 309, 734, 1921, 263, 359, 487, 558, 686, + 748, 1915, 1916, 1923, 309, 1930, 1881, 197, 845, 1256, + 771, 1955, 1246, 1318, 125, 1414, 1986, 955, 755, 755, + 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, + 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, + 755, 755, 774, 726, 1643, 1643, 1643, 1643, 774, 1001, + 501, 442, 993, 994, 995, 1011, 1012, 1013, 1014, 1017, + 1018, 1019, 1021, 1395, 1615, 1818, 294, 1818, 568, 164, + 1572, 1493, 779, 1684, 1806, 1906, 1099, 1820, 1823, 1881, + 420, 886, 887, 935, 33, 1919, 324, 779, 779, 281, + 281, 1796, 946, 1631, 774, 1358, 1360, 1814, 747, 499, + 382, 23, 24, 27, 29, 31, 150, 75, 76, 436, + 437, 456, 742, 880, 881, 883, 889, 916, 917, 1811, + 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1989, 1991, + 2003, 2017, 420, 2020, 778, 933, 772, 774, 970, 959, + 965, 1819, 965, 965, 874, 1817, 1414, 774, 1414, 1414, + 277, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 56, 57, 58, 59, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, + 129, 130, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 173, + 174, 175, 176, 177, 178, 179, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 252, 253, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 399, 401, + 550, 658, 707, 731, 1479, 1483, 1484, 1811, 1828, 1829, + 1830, 1831, 1832, 1833, 1836, 1837, 1987, 1988, 1989, 1182, + 1182, 1479, 1486, 772, 149, 149, 1414, 1486, 1486, 774, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1416, 772, 772, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 772, 1414, + 126, 1414, 126, 1414, 126, 1414, 149, 1414, 772, 1430, + 1414, 1429, 1486, 1414, 1414, 1414, 1414, 1491, 1414, 1414, + 1414, 1486, 27, 760, 1579, 1583, 149, 1414, 1414, 1414, + 1414, 1414, 779, 779, 1818, 1414, 56, 70, 1201, 1202, + 1203, 1204, 1205, 1582, 1581, 772, 761, 761, 1388, 1415, + 772, 774, 1415, 49, 1414, 427, 1530, 1530, 1549, 1818, + 64, 772, 1462, 1485, 1810, 1414, 772, 774, 771, 1055, + 1416, 1047, 149, 164, 1081, 1582, 688, 1050, 329, 1042, + 1038, 902, 281, 1344, 281, 233, 1624, 1613, 1806, 576, + 1918, 1822, 126, 126, 1406, 1409, 1409, 779, 779, 779, + 1642, 1414, 1823, 1864, 1642, 771, 771, 1642, 1642, 1878, + 785, 224, 624, 651, 1876, 1874, 1873, 1863, 1818, 1872, + 1818, 1858, 1847, 1848, 1857, 426, 739, 1579, 1584, 1698, + 29, 1707, 1537, 1703, 1664, 1665, 1804, 1396, 1409, 1408, + 1650, 1652, 1655, 420, 772, 771, 420, 1359, 771, 1655, + 755, 125, 309, 1722, 1723, 755, 774, 35, 36, 447, + 492, 553, 596, 755, 756, 757, 1894, 1896, 1537, 126, + 1314, 1312, 1301, 505, 809, 1303, 1982, 1992, 1581, 536, + 349, 465, 644, 1233, 1233, 197, 1227, 324, 1930, 124, + 197, 197, 814, 830, 831, 2008, 1963, 852, 825, 2014, + 633, 2013, 1806, 1395, 30, 1416, 49, 281, 1492, 1507, + 154, 154, 1492, 1507, 1497, 1498, 772, 774, 1524, 1525, + 1183, 1603, 15, 16, 774, 1543, 50, 103, 1565, 1414, + 1465, 1545, 1546, 1544, 1571, 1404, 774, 1565, 1408, 1592, + 1593, 1594, 1189, 1183, 398, 398, 406, 482, 25, 27, + 29, 31, 1022, 1585, 1586, 1811, 1004, 1643, 1643, 64, + 1643, 1645, 1643, 178, 538, 309, 1643, 1644, 1644, 832, + 1252, 1812, 1812, 1812, 1812, 1581, 1812, 1812, 772, 774, + 1022, 1022, 998, 774, 992, 30, 585, 1820, 1924, 1925, + 30, 30, 30, 49, 1914, 524, 525, 528, 529, 530, + 1928, 1929, 322, 585, 1255, 1241, 380, 646, 232, 1257, + 1818, 1956, 52, 1955, 46, 368, 1320, 277, 771, 771, + 1581, 771, 1581, 1581, 1812, 1812, 1584, 1812, 1581, 1812, + 1812, 1812, 1812, 1812, 1812, 1812, 1581, 1812, 394, 560, + 662, 1785, 1812, 1581, 802, 1812, 1582, 1022, 1022, 1001, + 133, 1643, 774, 995, 779, 1493, 1684, 1407, 244, 1570, + 238, 1680, 1537, 1881, 1288, 125, 888, 772, 1414, 934, + 309, 1932, 576, 762, 762, 1919, 1919, 112, 113, 114, + 947, 1621, 1356, 1806, 1360, 140, 1363, 1757, 55, 56, + 60, 61, 70, 95, 108, 123, 149, 151, 170, 171, + 172, 180, 181, 182, 196, 226, 251, 254, 278, 279, + 280, 301, 302, 345, 347, 348, 363, 399, 401, 424, + 448, 489, 549, 550, 566, 567, 608, 641, 701, 704, + 707, 715, 731, 751, 1147, 1149, 1150, 1152, 1153, 1154, + 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1811, 1828, 1988, + 463, 73, 85, 774, 778, 1414, 932, 1997, 420, 779, + 1414, 1414, 771, 1167, 1168, 1168, 771, 1163, 1164, 1167, + 771, 1164, 1169, 94, 151, 1167, 1168, 1168, 151, 1168, + 1167, 772, 772, 772, 772, 1453, 1414, 1414, 772, 200, + 1471, 1471, 1414, 774, 774, 772, 774, 772, 772, 772, + 147, 1445, 1446, 772, 772, 772, 772, 774, 772, 125, + 772, 772, 774, 1414, 1414, 1414, 1414, 772, 772, 52, + 1423, 772, 52, 772, 774, 772, 774, 772, 774, 772, + 774, 772, 772, 772, 27, 29, 29, 772, 774, 1414, + 772, 772, 774, 774, 772, 1810, 1818, 779, 772, 771, + 1196, 1196, 50, 103, 635, 760, 1198, 1199, 1200, 774, + 774, 1414, 1414, 772, 1486, 1415, 772, 774, 1415, 1550, + 1542, 200, 1464, 772, 1409, 1450, 1043, 1044, 1045, 1818, + 772, 1414, 1584, 64, 771, 1057, 755, 771, 1047, 1823, + 1806, 10, 11, 251, 1027, 1378, 1633, 1635, 1638, 1505, + 126, 1920, 1920, 52, 1410, 1812, 1818, 762, 1810, 1818, + 1818, 1866, 1878, 1877, 30, 30, 1856, 1855, 377, 718, + 224, 1878, 1642, 1642, 1878, 23, 24, 27, 29, 31, + 1568, 1699, 1708, 774, 1662, 1642, 1534, 1655, 772, 774, + 308, 1378, 771, 217, 1526, 1527, 1528, 1818, 771, 1724, + 224, 353, 360, 375, 385, 386, 387, 395, 534, 546, + 632, 647, 684, 698, 915, 914, 1895, 1568, 545, 755, + 774, 1806, 197, 1822, 1255, 398, 1806, 1806, 10, 12, + 17, 141, 163, 208, 265, 266, 267, 287, 337, 339, + 358, 376, 383, 398, 408, 423, 480, 490, 526, 539, + 579, 585, 643, 650, 681, 696, 697, 709, 1023, 1025, + 1090, 1092, 1093, 1096, 1097, 1098, 1105, 1811, 1090, 771, + 871, 852, 838, 1955, 771, 873, 95, 151, 226, 683, + 1103, 873, 826, 1395, 1395, 197, 1500, 1507, 1507, 197, + 1502, 1414, 771, 1032, 1818, 1522, 1523, 368, 1764, 1802, + 52, 774, 1802, 1414, 772, 774, 1583, 1583, 1583, 1583, + 1583, 1583, 1626, 836, 992, 30, 52, 294, 1922, 1926, + 201, 1915, 1581, 1581, 1581, 1785, 760, 1579, 1580, 1928, + 169, 289, 1253, 439, 45, 47, 48, 69, 71, 77, + 109, 169, 198, 200, 210, 232, 329, 365, 412, 413, + 419, 431, 452, 476, 541, 610, 621, 622, 623, 713, + 1030, 1091, 1093, 1260, 1264, 1266, 1269, 1275, 1276, 1277, + 1279, 1280, 1558, 1419, 1938, 333, 430, 839, 281, 412, + 419, 841, 772, 774, 1957, 1958, 52, 46, 771, 1321, + 1986, 805, 806, 1581, 807, 808, 1581, 803, 804, 1581, + 1818, 1022, 995, 1818, 1537, 1818, 432, 244, 1681, 1677, + 1364, 1787, 129, 1927, 1927, 944, 1985, 944, 1633, 1363, + 495, 140, 234, 1763, 1168, 1168, 381, 1167, 1173, 1175, + 1163, 216, 1163, 1173, 56, 70, 72, 301, 332, 350, + 722, 1151, 1156, 1158, 1175, 1181, 1191, 1192, 1194, 1151, + 1173, 1151, 1163, 771, 1173, 1151, 1168, 1168, 1151, 1168, + 771, 1163, 1173, 70, 302, 302, 305, 1163, 1168, 715, + 771, 879, 1168, 1168, 1168, 568, 1168, 1168, 882, 305, + 1168, 1168, 1168, 1168, 1168, 1169, 1163, 1163, 1163, 125, + 125, 2018, 1818, 971, 959, 1818, 23, 27, 29, 31, + 1480, 29, 29, 1167, 1481, 1482, 772, 1530, 1530, 64, + 249, 1470, 164, 1473, 1474, 1475, 772, 1414, 1414, 1486, + 188, 348, 772, 309, 1447, 1414, 1414, 1414, 1530, 95, + 108, 123, 151, 226, 290, 399, 401, 549, 550, 707, + 1156, 1157, 1424, 1425, 1426, 1427, 1479, 1414, 1414, 1414, + 1414, 120, 285, 1581, 1589, 1530, 1414, 1414, 1818, 1582, + 772, 1206, 1201, 1199, 1201, 1202, 1581, 772, 1486, 200, + 1551, 64, 772, 1410, 772, 774, 1530, 1041, 210, 1058, + 1059, 1582, 1043, 1636, 1637, 1799, 1800, 1804, 1818, 1787, + 1634, 1680, 1638, 1920, 1812, 1818, 779, 1642, 1642, 1878, + 772, 772, 1878, 1878, 1860, 1859, 1568, 1665, 1537, 98, + 1654, 1524, 1409, 1655, 772, 46, 1265, 1273, 1274, 1818, + 772, 774, 1584, 1732, 1733, 440, 169, 771, 1812, 809, + 817, 1806, 746, 821, 823, 74, 586, 779, 1106, 1107, + 1108, 1109, 1117, 1118, 1123, 1124, 1125, 1215, 1218, 1219, + 1805, 1818, 163, 733, 411, 1806, 1643, 1643, 1643, 1643, + 1643, 1643, 1643, 1643, 1643, 1643, 411, 1643, 1643, 1643, + 1643, 1643, 1643, 1643, 1643, 1643, 1643, 414, 532, 1818, + 1643, 1643, 1028, 1029, 1030, 774, 1092, 1024, 1642, 872, + 854, 53, 326, 979, 197, 52, 863, 864, 633, 667, + 633, 1955, 1499, 294, 1501, 294, 1529, 140, 293, 452, + 1517, 1518, 1521, 115, 116, 199, 276, 1765, 1766, 166, + 1767, 1565, 1547, 1546, 1565, 1409, 1594, 585, 1812, 1924, + 29, 29, 585, 98, 149, 551, 1254, 74, 210, 374, + 586, 693, 1109, 1117, 1118, 1281, 1281, 210, 1281, 210, + 281, 74, 124, 210, 586, 693, 1122, 1215, 1281, 1643, + 210, 64, 1032, 52, 281, 374, 755, 1215, 1290, 1643, + 210, 155, 696, 155, 210, 696, 1281, 210, 584, 210, + 210, 210, 1091, 774, 1029, 1264, 771, 1108, 595, 1414, + 1414, 197, 845, 852, 197, 376, 846, 1818, 1626, 1378, + 1957, 1322, 478, 772, 774, 772, 774, 772, 774, 1679, + 126, 432, 1405, 1626, 576, 309, 1931, 1931, 197, 1656, + 150, 1173, 1172, 1642, 1173, 290, 312, 658, 1165, 1166, + 1166, 1191, 1189, 1173, 1151, 1193, 1194, 1182, 56, 1192, + 1195, 381, 1176, 1166, 1238, 1780, 1173, 1238, 1166, 305, + 1166, 1173, 568, 877, 878, 1818, 1994, 98, 1982, 2001, + 1151, 876, 916, 1151, 1166, 2001, 1193, 1195, 1151, 1173, + 1166, 1166, 229, 1162, 1162, 1162, 884, 892, 893, 1581, + 771, 885, 965, 772, 772, 772, 772, 1193, 774, 1193, + 1193, 772, 772, 1472, 1802, 1780, 1473, 772, 1476, 1570, + 772, 774, 772, 491, 540, 605, 772, 772, 772, 772, + 1163, 151, 1168, 70, 1168, 1428, 772, 772, 772, 772, + 774, 772, 772, 772, 1197, 772, 774, 772, 64, 221, + 244, 1552, 1553, 1802, 1045, 676, 1082, 156, 465, 1060, + 772, 774, 772, 772, 774, 779, 1379, 1640, 1641, 1804, + 1626, 762, 1868, 1867, 1878, 1878, 1561, 396, 1792, 772, + 774, 1527, 772, 774, 49, 1734, 1652, 771, 819, 1820, + 771, 771, 1237, 1805, 9, 125, 1119, 1818, 772, 774, + 71, 124, 217, 288, 1121, 1214, 1123, 1088, 1215, 1216, + 1216, 1126, 779, 1806, 1643, 98, 1581, 1588, 98, 1581, + 98, 1581, 98, 1581, 1094, 1584, 1581, 1581, 1812, 1812, + 1643, 1581, 1820, 447, 492, 560, 1102, 1581, 1584, 1584, + 98, 1581, 1812, 98, 379, 381, 418, 448, 580, 614, + 1101, 1588, 1581, 1588, 1026, 1763, 1092, 1090, 98, 1585, + 1812, 1818, 144, 147, 205, 866, 867, 868, 869, 870, + 1818, 2002, 2004, 855, 856, 1938, 2009, 100, 146, 291, + 980, 646, 1957, 772, 865, 867, 1968, 1969, 1812, 1968, + 52, 1414, 771, 1414, 771, 772, 1215, 1215, 1518, 64, + 64, 115, 64, 1766, 264, 276, 1768, 1769, 771, 439, + 29, 322, 138, 1088, 138, 1087, 733, 1087, 1616, 1339, + 1616, 1265, 1181, 1616, 156, 1617, 9, 1616, 733, 217, + 1616, 1616, 98, 1818, 1339, 1559, 1560, 1804, 1031, 1616, + 1616, 1806, 98, 1818, 1339, 1274, 1616, 1339, 1339, 1339, + 1265, 45, 109, 1277, 1104, 1106, 326, 447, 1289, 1530, + 660, 1812, 415, 1258, 309, 1959, 1626, 1325, 1818, 46, + 771, 1323, 806, 808, 804, 1626, 1416, 129, 1928, 1933, + 1934, 417, 1680, 275, 1818, 312, 290, 1172, 772, 774, + 772, 876, 772, 774, 1147, 1414, 2001, 779, 1195, 755, + 202, 258, 262, 890, 891, 892, 895, 1419, 1818, 865, + 125, 29, 774, 1565, 772, 569, 774, 1414, 540, 438, + 1193, 1584, 772, 1581, 1564, 772, 54, 393, 401, 704, + 707, 717, 1554, 1555, 1784, 1565, 1784, 1042, 771, 1048, + 1061, 1818, 1059, 1799, 762, 1818, 772, 774, 1642, 1878, + 1878, 1572, 1793, 1274, 1733, 412, 772, 1234, 1236, 1818, + 771, 575, 1234, 1234, 771, 1818, 1107, 771, 156, 156, + 1216, 1088, 228, 1208, 1237, 1818, 1088, 1088, 345, 347, + 348, 363, 399, 401, 424, 448, 489, 549, 550, 566, + 567, 608, 652, 701, 704, 707, 731, 751, 916, 1127, + 1148, 1149, 1811, 1829, 1830, 1831, 1832, 1833, 1836, 1989, + 1818, 772, 1812, 771, 1812, 52, 1083, 1028, 641, 715, + 1147, 772, 774, 867, 104, 2020, 197, 839, 774, 854, + 2005, 1147, 2005, 1957, 1529, 1529, 125, 1516, 1516, 1780, + 1780, 64, 1780, 64, 64, 1769, 30, 1254, 402, 1253, + 1419, 1339, 1419, 1119, 1805, 1265, 1805, 1262, 1183, 1805, + 1616, 1273, 125, 156, 1805, 1805, 1265, 774, 1565, 1035, + 1818, 1805, 1582, 309, 1125, 1265, 1270, 1265, 772, 1818, + 840, 847, 848, 71, 352, 499, 772, 774, 1324, 281, + 576, 1934, 1657, 1626, 1806, 1193, 1780, 1193, 2001, 877, + 1818, 29, 774, 2020, 454, 772, 887, 772, 1802, 1570, + 1570, 772, 772, 772, 717, 1555, 1556, 1784, 641, 593, + 433, 1557, 593, 771, 1055, 1051, 98, 298, 299, 393, + 468, 1062, 779, 1641, 1655, 1663, 1797, 357, 772, 774, + 1565, 771, 1234, 771, 772, 772, 1818, 771, 1414, 1088, + 1237, 1818, 1806, 294, 1226, 715, 1237, 1237, 1129, 779, + 1120, 1121, 1128, 779, 1727, 1027, 1026, 715, 879, 568, + 2002, 1408, 844, 845, 867, 2006, 772, 772, 133, 154, + 200, 1520, 1519, 1780, 1780, 1780, 772, 118, 1267, 118, + 109, 251, 1125, 1333, 1188, 1805, 1818, 1288, 1261, 1560, + 281, 281, 275, 1289, 1271, 1273, 1263, 676, 842, 2020, + 576, 71, 71, 1818, 217, 1326, 1327, 1818, 1416, 156, + 1505, 779, 891, 1565, 451, 49, 451, 133, 393, 560, + 703, 1053, 1054, 1818, 772, 687, 1056, 1064, 702, 141, + 376, 383, 398, 526, 539, 557, 696, 1078, 1079, 1080, + 1702, 762, 1626, 237, 1881, 1236, 29, 774, 1235, 835, + 1881, 1881, 774, 1818, 772, 1237, 1226, 715, 771, 1209, + 1233, 1110, 1233, 1112, 1113, 17, 217, 288, 376, 488, + 744, 1130, 1131, 1140, 1178, 1179, 1180, 1207, 1419, 1811, + 1149, 72, 98, 195, 197, 337, 458, 652, 1134, 1136, + 1170, 1171, 1179, 1818, 772, 1095, 1096, 568, 1818, 1964, + 841, 2019, 64, 64, 771, 771, 1805, 583, 771, 1268, + 98, 98, 1289, 1339, 1818, 1805, 1806, 1272, 1311, 1414, + 421, 843, 576, 576, 772, 774, 291, 1758, 1818, 1556, + 641, 202, 318, 772, 774, 1582, 771, 1066, 1068, 1063, + 411, 1643, 1643, 411, 1643, 1643, 1643, 1643, 771, 1073, + 1080, 423, 294, 376, 490, 715, 736, 1220, 1223, 1228, + 1229, 1230, 1811, 1565, 772, 1818, 772, 772, 309, 1221, + 1225, 1229, 1232, 1222, 1224, 1229, 1231, 1818, 774, 1116, + 1114, 1233, 1210, 1818, 176, 1211, 771, 1111, 771, 771, + 156, 1812, 693, 1179, 733, 156, 195, 1642, 1187, 760, + 761, 771, 1144, 1145, 1146, 1389, 1434, 1783, 1811, 291, + 330, 98, 52, 381, 1171, 1177, 1818, 779, 1806, 846, + 1526, 1528, 1121, 1582, 1058, 1146, 1032, 150, 1414, 1327, + 1658, 1184, 1052, 1054, 771, 1067, 1068, 1069, 178, 1065, + 1068, 1643, 1812, 1812, 1643, 1585, 1585, 1582, 1820, 688, + 1074, 1075, 1643, 1233, 1812, 1643, 1233, 1278, 1279, 1280, + 1230, 1642, 744, 1881, 581, 1278, 1232, 1278, 1231, 772, + 1818, 771, 771, 1115, 772, 774, 455, 582, 659, 197, + 1212, 1234, 771, 1234, 1234, 419, 1174, 98, 1585, 1812, + 1818, 1785, 1785, 1143, 192, 729, 641, 1144, 1172, 1170, + 779, 1818, 125, 415, 772, 772, 772, 771, 1666, 1667, + 1804, 1759, 1056, 772, 774, 178, 1071, 1072, 1416, 1812, + 1812, 1076, 772, 774, 1099, 1581, 1280, 1279, 98, 1585, + 1812, 1818, 577, 1220, 1811, 772, 1234, 1234, 771, 1818, + 100, 291, 772, 1234, 772, 772, 772, 771, 1411, 420, + 677, 1135, 1818, 779, 1408, 847, 1058, 774, 1642, 244, + 1770, 1068, 774, 1070, 1077, 1820, 1075, 1278, 772, 1235, + 1234, 66, 237, 251, 560, 1213, 1213, 1220, 772, 1221, + 1222, 772, 1582, 1132, 1133, 1178, 1132, 587, 682, 737, + 1137, 1818, 1965, 772, 1667, 1655, 473, 1764, 1072, 772, + 1078, 1208, 772, 1235, 98, 195, 323, 197, 197, 1220, + 772, 1178, 1138, 1139, 1140, 111, 64, 1767, 1220, 772, + 291, 100, 1140, 641, 1780, 140, 1771, 1220, 1213, 1213, + 1966, 29, 771, 1773, 450, 592, 1960, 1961, 166, 244, + 1772, 3, 772, 1774, 1775, 1804, 251, 1776, 1820, 1967, + 1820, 772, 774, 1777, 1778, 1804, 1626, 2020, 1775, 774, + 1642, 1778, 1408, 1655, 1409 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 781, 782, 783, 782, 782, 784, 784, 785, 785, + 785, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 787, 788, 788, 790, 789, 791, 792, 793, 791, 794, + 795, 794, 796, 796, 798, 797, 800, 799, 801, 801, + 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, + 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, + 803, 803, 803, 804, 805, 805, 805, 806, 807, 807, + 807, 808, 809, 809, 809, 809, 809, 809, 809, 810, + 810, 811, 813, 814, 812, 815, 812, 816, 817, 812, + 818, 819, 812, 820, 821, 812, 822, 823, 812, 824, + 812, 825, 812, 826, 812, 827, 812, 828, 812, 812, + 812, 812, 812, 829, 812, 812, 830, 830, 831, 831, + 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, + 832, 832, 832, 832, 834, 833, 835, 835, 836, 836, + 836, 836, 836, 836, 836, 838, 837, 840, 839, 839, + 841, 841, 841, 841, 842, 842, 843, 843, 844, 844, + 845, 846, 846, 848, 847, 849, 850, 850, 851, 851, + 851, 851, 852, 852, 853, 853, 854, 854, 855, 855, + 855, 855, 855, 855, 855, 856, 856, 857, 857, 859, + 858, 860, 860, 861, 861, 862, 862, 863, 864, 863, + 865, 865, 866, 867, 867, 867, 868, 868, 869, 869, + 870, 870, 870, 872, 871, 873, 874, 874, 875, 875, + 876, 876, 876, 877, 878, 878, 879, 880, 882, 881, + 881, 881, 884, 883, 885, 885, 886, 888, 887, 889, + 889, 889, 889, 890, 890, 891, 892, 892, 893, 894, + 894, 895, 895, 895, 895, 895, 895, 896, 896, 897, + 898, 898, 899, 899, 900, 900, 901, 901, 902, 902, + 902, 903, 903, 903, 903, 903, 903, 903, 903, 903, + 903, 903, 903, 904, 905, 906, 906, 907, 907, 908, + 908, 909, 910, 910, 911, 911, 911, 912, 913, 913, + 914, 915, 915, 915, 915, 915, 915, 915, 915, 915, + 915, 915, 915, 915, 916, 916, 917, 917, 919, 918, + 921, 920, 922, 922, 923, 923, 924, 924, 924, 924, + 925, 925, 925, 925, 926, 927, 928, 930, 929, 931, + 933, 932, 935, 934, 936, 936, 937, 937, 938, 938, + 938, 939, 940, 940, 940, 941, 941, 942, 943, 943, + 945, 946, 944, 947, 947, 947, 947, 949, 948, 951, + 950, 950, 952, 952, 953, 953, 955, 954, 957, 956, + 958, 958, 959, 959, 960, 960, 961, 962, 962, 962, + 963, 964, 965, 967, 966, 968, 966, 969, 970, 971, + 966, 972, 966, 974, 973, 975, 973, 976, 977, 973, + 978, 973, 979, 979, 980, 980, 980, 981, 982, 983, + 984, 984, 985, 985, 986, 987, 988, 988, 990, 989, + 991, 991, 991, 992, 992, 992, 993, 994, 994, 994, + 995, 995, 995, 995, 995, 995, 995, 995, 996, 997, + 997, 997, 998, 998, 998, 998, 998, 999, 1000, 1000, + 1000, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003, + 1003, 1003, 1004, 1004, 1004, 1005, 1006, 1007, 1008, 1009, + 1010, 1010, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + 1018, 1019, 1020, 1020, 1021, 1021, 1022, 1022, 1024, 1023, + 1023, 1023, 1025, 1025, 1026, 1026, 1027, 1027, 1028, 1029, + 1029, 1031, 1030, 1032, 1034, 1033, 1036, 1035, 1037, 1038, + 1037, 1037, 1037, 1039, 1037, 1037, 1040, 1037, 1041, 1041, + 1042, 1042, 1043, 1043, 1044, 1044, 1045, 1046, 1047, 1048, + 1049, 1049, 1050, 1051, 1050, 1052, 1050, 1053, 1053, 1054, + 1055, 1056, 1056, 1057, 1057, 1058, 1058, 1060, 1059, 1061, + 1062, 1063, 1062, 1064, 1062, 1062, 1062, 1062, 1065, 1065, + 1066, 1066, 1067, 1067, 1069, 1070, 1068, 1071, 1071, 1072, + 1072, 1073, 1073, 1074, 1074, 1076, 1075, 1077, 1078, 1078, + 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, + 1080, 1081, 1081, 1081, 1082, 1082, 1083, 1083, 1084, 1084, + 1085, 1085, 1086, 1086, 1086, 1087, 1087, 1088, 1088, 1089, + 1089, 1090, 1090, 1091, 1091, 1092, 1092, 1092, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1093, + 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, + 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1095, 1095, 1096, + 1097, 1098, 1099, 1100, 1101, 1101, 1101, 1101, 1101, 1101, + 1101, 1102, 1102, 1102, 1103, 1103, 1103, 1103, 1104, 1105, + 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1108, 1108, 1110, + 1109, 1111, 1109, 1112, 1109, 1113, 1109, 1114, 1109, 1115, + 1109, 1116, 1109, 1117, 1118, 1119, 1120, 1120, 1121, 1122, + 1122, 1123, 1123, 1124, 1126, 1125, 1128, 1127, 1129, 1127, + 1130, 1130, 1131, 1131, 1132, 1132, 1133, 1133, 1134, 1134, + 1134, 1134, 1135, 1134, 1134, 1134, 1136, 1136, 1137, 1137, + 1137, 1137, 1138, 1138, 1139, 1139, 1140, 1140, 1140, 1140, + 1142, 1141, 1143, 1143, 1144, 1144, 1145, 1145, 1146, 1146, + 1147, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149, + 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, + 1150, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1153, 1153, 1153, 1153, 1153, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1154, 1155, 1155, 1156, 1157, 1157, 1158, 1158, + 1159, 1159, 1159, 1159, 1159, 1160, 1160, 1160, 1160, 1160, + 1161, 1161, 1161, 1162, 1162, 1163, 1163, 1163, 1164, 1165, + 1165, 1165, 1165, 1165, 1165, 1166, 1167, 1167, 1167, 1167, + 1168, 1168, 1169, 1169, 1170, 1170, 1171, 1171, 1171, 1171, + 1171, 1171, 1171, 1172, 1172, 1173, 1173, 1174, 1174, 1175, + 1176, 1177, 1178, 1178, 1178, 1179, 1179, 1179, 1179, 1179, + 1179, 1180, 1180, 1181, 1181, 1182, 1182, 1183, 1183, 1184, + 1184, 1185, 1185, 1186, 1186, 1187, 1188, 1188, 1189, 1189, + 1190, 1190, 1191, 1191, 1191, 1192, 1193, 1193, 1194, 1194, + 1194, 1194, 1194, 1194, 1195, 1195, 1197, 1196, 1198, 1198, + 1199, 1200, 1200, 1200, 1200, 1201, 1202, 1203, 1203, 1204, + 1205, 1205, 1206, 1206, 1207, 1207, 1208, 1209, 1209, 1210, + 1210, 1211, 1211, 1211, 1211, 1212, 1212, 1212, 1212, 1212, + 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1215, 1215, 1216, + 1216, 1217, 1217, 1217, 1218, 1219, 1220, 1220, 1221, 1221, + 1222, 1222, 1223, 1223, 1224, 1224, 1225, 1225, 1226, 1226, + 1227, 1227, 1227, 1228, 1228, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1230, 1230, 1231, 1232, 1232, 1233, 1233, 1233, + 1234, 1234, 1235, 1235, 1236, 1236, 1237, 1237, 1238, 1238, + 1240, 1241, 1239, 1242, 1239, 1243, 1239, 1239, 1244, 1239, + 1245, 1239, 1246, 1239, 1247, 1239, 1248, 1239, 1239, 1239, + 1239, 1239, 1249, 1239, 1239, 1250, 1251, 1252, 1239, 1253, + 1253, 1254, 1254, 1254, 1254, 1255, 1255, 1255, 1255, 1255, + 1256, 1256, 1256, 1256, 1257, 1257, 1258, 1258, 1259, 1259, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1261, 1260, 1260, 1262, 1260, 1263, 1260, 1260, 1260, 1260, + 1260, 1264, 1265, 1265, 1267, 1266, 1268, 1268, 1268, 1270, + 1269, 1271, 1272, 1271, 1273, 1273, 1274, 1275, 1275, 1276, + 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, + 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, + 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, + 1277, 1278, 1278, 1278, 1278, 1278, 1279, 1279, 1280, 1280, + 1281, 1281, 1282, 1282, 1284, 1283, 1285, 1285, 1286, 1286, + 1287, 1287, 1288, 1288, 1288, 1289, 1289, 1289, 1290, 1290, + 1290, 1290, 1292, 1291, 1293, 1291, 1291, 1291, 1294, 1295, + 1295, 1296, 1296, 1297, 1297, 1297, 1299, 1298, 1300, 1300, + 1301, 1301, 1301, 1302, 1302, 1302, 1303, 1303, 1305, 1304, + 1306, 1306, 1306, 1307, 1308, 1307, 1310, 1309, 1311, 1311, + 1312, 1312, 1313, 1313, 1313, 1314, 1314, 1316, 1315, 1317, + 1317, 1318, 1319, 1319, 1320, 1320, 1321, 1322, 1321, 1323, + 1324, 1323, 1325, 1325, 1325, 1326, 1326, 1326, 1327, 1327, + 1328, 1328, 1329, 1330, 1329, 1332, 1331, 1333, 1333, 1334, + 1334, 1335, 1335, 1335, 1335, 1335, 1335, 1336, 1336, 1338, + 1337, 1339, 1339, 1339, 1341, 1340, 1340, 1342, 1342, 1343, + 1343, 1344, 1346, 1345, 1347, 1347, 1348, 1348, 1349, 1350, + 1351, 1351, 1353, 1352, 1354, 1354, 1355, 1355, 1356, 1357, + 1359, 1358, 1361, 1360, 1362, 1362, 1363, 1363, 1365, 1364, + 1366, 1364, 1368, 1367, 1369, 1367, 1370, 1370, 1372, 1371, + 1374, 1375, 1373, 1376, 1377, 1378, 1378, 1379, 1379, 1381, + 1380, 1382, 1380, 1383, 1383, 1384, 1385, 1384, 1384, 1386, + 1386, 1387, 1388, 1389, 1389, 1390, 1390, 1391, 1392, 1392, + 1393, 1393, 1394, 1394, 1394, 1395, 1395, 1395, 1396, 1397, + 1397, 1398, 1398, 1399, 1399, 1399, 1399, 1400, 1400, 1401, + 1401, 1401, 1402, 1402, 1403, 1403, 1404, 1404, 1404, 1405, + 1405, 1405, 1406, 1406, 1407, 1408, 1409, 1410, 1410, 1410, + 1410, 1410, 1411, 1411, 1411, 1412, 1412, 1412, 1413, 1413, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1415, 1415, 1415, 1415, + 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, + 1415, 1415, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, + 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, + 1416, 1417, 1417, 1418, 1418, 1419, 1419, 1420, 1420, 1421, + 1421, 1421, 1421, 1421, 1421, 1422, 1422, 1423, 1423, 1424, + 1424, 1424, 1425, 1425, 1425, 1425, 1425, 1425, 1426, 1426, + 1426, 1428, 1427, 1427, 1429, 1430, 1430, 1431, 1431, 1431, + 1431, 1432, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, + 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, + 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, + 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1435, + 1435, 1435, 1435, 1436, 1436, 1437, 1437, 1437, 1437, 1437, + 1437, 1438, 1438, 1439, 1439, 1440, 1440, 1440, 1440, 1440, + 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, + 1440, 1440, 1440, 1440, 1440, 1440, 1441, 1441, 1441, 1441, + 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, + 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, + 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1442, 1442, + 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, + 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, + 1442, 1442, 1442, 1442, 1444, 1443, 1443, 1443, 1443, 1443, + 1445, 1445, 1446, 1446, 1447, 1447, 1448, 1448, 1449, 1449, + 1450, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1452, 1453, + 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, + 1451, 1454, 1451, 1455, 1451, 1456, 1451, 1457, 1457, 1458, + 1458, 1458, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, + 1459, 1459, 1459, 1459, 1459, 1460, 1462, 1461, 1461, 1463, + 1463, 1464, 1465, 1467, 1466, 1468, 1468, 1468, 1468, 1469, + 1469, 1470, 1470, 1471, 1471, 1472, 1472, 1473, 1473, 1474, + 1475, 1476, 1476, 1476, 1478, 1477, 1479, 1480, 1479, 1481, + 1479, 1482, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1483, + 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1484, 1484, 1484, + 1484, 1485, 1485, 1486, 1486, 1487, 1487, 1488, 1488, 1489, + 1489, 1490, 1490, 1491, 1491, 1492, 1492, 1493, 1494, 1494, + 1495, 1495, 1496, 1497, 1496, 1498, 1496, 1496, 1499, 1496, + 1500, 1496, 1496, 1501, 1496, 1502, 1496, 1496, 1503, 1503, + 1503, 1504, 1504, 1505, 1505, 1506, 1507, 1507, 1507, 1507, + 1508, 1508, 1509, 1509, 1510, 1510, 1511, 1511, 1512, 1512, + 1513, 1514, 1515, 1515, 1516, 1516, 1516, 1516, 1517, 1517, + 1519, 1518, 1520, 1518, 1521, 1521, 1522, 1523, 1522, 1525, + 1524, 1526, 1526, 1527, 1527, 1528, 1528, 1529, 1529, 1530, + 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, + 1530, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, + 1532, 1532, 1532, 1532, 1533, 1533, 1533, 1534, 1534, 1535, + 1536, 1536, 1537, 1538, 1537, 1539, 1540, 1539, 1541, 1541, + 1542, 1542, 1543, 1543, 1543, 1544, 1544, 1545, 1545, 1546, + 1548, 1547, 1549, 1549, 1550, 1550, 1551, 1551, 1552, 1552, + 1553, 1553, 1554, 1554, 1555, 1555, 1555, 1556, 1556, 1556, + 1557, 1557, 1557, 1557, 1557, 1557, 1558, 1559, 1559, 1560, + 1561, 1561, 1563, 1562, 1564, 1564, 1565, 1565, 1565, 1566, + 1566, 1567, 1567, 1567, 1568, 1569, 1569, 1569, 1570, 1570, + 1570, 1570, 1570, 1570, 1571, 1572, 1572, 1572, 1572, 1573, + 1573, 1573, 1574, 1574, 1575, 1576, 1577, 1577, 1577, 1578, + 1578, 1579, 1579, 1580, 1580, 1581, 1581, 1581, 1581, 1581, + 1581, 1582, 1582, 1582, 1582, 1582, 1583, 1583, 1583, 1583, + 1584, 1584, 1584, 1584, 1584, 1585, 1585, 1585, 1585, 1585, + 1586, 1587, 1587, 1588, 1588, 1589, 1589, 1589, 1591, 1590, + 1592, 1592, 1593, 1593, 1594, 1596, 1595, 1597, 1597, 1598, + 1599, 1599, 1599, 1600, 1602, 1603, 1601, 1601, 1601, 1605, + 1604, 1607, 1606, 1608, 1606, 1606, 1606, 1606, 1609, 1606, + 1606, 1606, 1606, 1606, 1606, 1610, 1606, 1606, 1611, 1611, + 1612, 1613, 1614, 1614, 1615, 1616, 1616, 1617, 1617, 1618, + 1618, 1620, 1621, 1619, 1623, 1624, 1622, 1625, 1626, 1627, + 1627, 1627, 1628, 1628, 1629, 1629, 1630, 1630, 1632, 1631, + 1633, 1633, 1634, 1633, 1635, 1636, 1636, 1637, 1637, 1638, + 1639, 1639, 1640, 1640, 1641, 1642, 1642, 1643, 1643, 1644, + 1644, 1645, 1645, 1647, 1646, 1649, 1648, 1650, 1650, 1651, + 1651, 1652, 1652, 1653, 1653, 1654, 1654, 1655, 1655, 1656, + 1657, 1658, 1656, 1659, 1659, 1661, 1662, 1663, 1660, 1664, + 1664, 1665, 1665, 1666, 1666, 1667, 1668, 1668, 1670, 1669, + 1671, 1671, 1672, 1672, 1673, 1674, 1675, 1676, 1677, 1675, + 1678, 1679, 1675, 1680, 1681, 1680, 1682, 1682, 1683, 1683, + 1684, 1684, 1685, 1685, 1686, 1686, 1686, 1688, 1689, 1687, + 1690, 1690, 1691, 1691, 1692, 1692, 1693, 1693, 1693, 1693, + 1693, 1693, 1693, 1693, 1693, 1694, 1694, 1696, 1695, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1698, 1697, 1699, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1700, 1700, 1700, 1701, + 1701, 1702, 1702, 1703, 1703, 1704, 1704, 1705, 1705, 1706, + 1706, 1707, 1707, 1708, 1708, 1708, 1710, 1709, 1711, 1709, + 1712, 1712, 1712, 1712, 1712, 1712, 1713, 1713, 1714, 1715, + 1715, 1715, 1715, 1716, 1716, 1717, 1717, 1717, 1719, 1718, + 1721, 1720, 1720, 1722, 1722, 1723, 1724, 1723, 1725, 1725, + 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, + 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1727, 1727, + 1728, 1729, 1730, 1729, 1729, 1731, 1731, 1732, 1732, 1732, + 1733, 1734, 1734, 1736, 1735, 1737, 1737, 1739, 1738, 1740, + 1738, 1738, 1741, 1741, 1742, 1742, 1743, 1744, 1743, 1746, + 1745, 1747, 1747, 1747, 1748, 1748, 1748, 1749, 1749, 1750, + 1750, 1752, 1751, 1753, 1753, 1754, 1756, 1757, 1758, 1759, + 1755, 1760, 1760, 1761, 1761, 1762, 1762, 1762, 1763, 1763, + 1763, 1764, 1764, 1765, 1765, 1766, 1766, 1766, 1766, 1767, + 1767, 1768, 1768, 1769, 1769, 1770, 1770, 1771, 1771, 1772, + 1772, 1773, 1773, 1773, 1774, 1774, 1775, 1775, 1776, 1776, + 1777, 1777, 1778, 1779, 1779, 1779, 1779, 1780, 1780, 1781, + 1781, 1781, 1782, 1782, 1782, 1783, 1783, 1784, 1784, 1784, + 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1785, 1785, 1785, + 1785, 1785, 1786, 1786, 1786, 1788, 1787, 1789, 1789, 1790, + 1790, 1791, 1792, 1793, 1792, 1794, 1794, 1795, 1796, 1797, + 1797, 1798, 1799, 1799, 1800, 1800, 1801, 1801, 1802, 1803, + 1803, 1803, 1803, 1803, 1804, 1804, 1804, 1804, 1804, 1805, + 1805, 1805, 1805, 1806, 1806, 1806, 1807, 1807, 1808, 1809, + 1809, 1810, 1810, 1810, 1811, 1812, 1813, 1814, 1815, 1815, + 1816, 1816, 1817, 1817, 1817, 1818, 1818, 1819, 1819, 1820, + 1820, 1820, 1821, 1821, 1821, 1822, 1822, 1823, 1824, 1824, + 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, + 1826, 1826, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, + 1827, 1827, 1827, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, + 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, + 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, + 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, + 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, + 1829, 1829, 1829, 1829, 1830, 1830, 1830, 1830, 1830, 1830, + 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, + 1832, 1832, 1832, 1833, 1833, 1833, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1835, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1836, 1836, 1836, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + 1837, 1839, 1838, 1840, 1840, 1841, 1840, 1842, 1840, 1843, + 1840, 1844, 1844, 1845, 1845, 1846, 1845, 1847, 1847, 1849, + 1848, 1848, 1850, 1850, 1850, 1851, 1851, 1851, 1851, 1852, + 1852, 1852, 1852, 1854, 1853, 1855, 1853, 1856, 1853, 1858, + 1857, 1859, 1857, 1860, 1857, 1862, 1861, 1863, 1861, 1864, + 1861, 1865, 1861, 1866, 1861, 1867, 1861, 1868, 1861, 1861, + 1861, 1861, 1861, 1861, 1861, 1869, 1861, 1870, 1861, 1871, + 1861, 1872, 1872, 1872, 1872, 1873, 1874, 1875, 1875, 1876, + 1876, 1876, 1876, 1877, 1877, 1877, 1878, 1878, 1878, 1878, + 1878, 1880, 1879, 1881, 1881, 1881, 1882, 1882, 1883, 1883, + 1884, 1885, 1885, 1885, 1885, 1885, 1887, 1886, 1889, 1888, + 1890, 1890, 1891, 1890, 1892, 1892, 1893, 1893, 1894, 1894, + 1894, 1894, 1895, 1894, 1896, 1896, 1896, 1896, 1896, 1897, + 1898, 1898, 1898, 1898, 1898, 1899, 1899, 1900, 1901, 1901, + 1901, 1901, 1902, 1902, 1903, 1903, 1904, 1904, 1905, 1906, + 1906, 1907, 1907, 1908, 1908, 1909, 1909, 1910, 1910, 1910, + 1910, 1911, 1912, 1912, 1912, 1912, 1913, 1913, 1913, 1913, + 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, + 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, + 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, + 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1914, 1914, + 1915, 1915, 1916, 1916, 1916, 1917, 1917, 1917, 1917, 1918, + 1918, 1919, 1919, 1920, 1920, 1921, 1921, 1922, 1922, 1923, + 1923, 1923, 1923, 1924, 1924, 1925, 1926, 1926, 1926, 1927, + 1927, 1927, 1927, 1927, 1928, 1928, 1928, 1928, 1928, 1929, + 1929, 1930, 1930, 1931, 1931, 1932, 1932, 1933, 1933, 1934, + 1934, 1936, 1935, 1937, 1938, 1938, 1939, 1939, 1940, 1940, + 1940, 1941, 1941, 1941, 1942, 1943, 1943, 1943, 1944, 1945, + 1946, 1946, 1946, 1947, 1947, 1947, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1949, 1949, 1950, 1951, 1952, + 1952, 1952, 1953, 1953, 1954, 1954, 1955, 1955, 1956, 1956, + 1958, 1957, 1959, 1959, 1959, 1959, 1960, 1960, 1961, 1961, + 1963, 1964, 1965, 1966, 1967, 1962, 1969, 1968, 1970, 1970, + 1970, 1970, 1970, 1970, 1971, 1971, 1972, 1972, 1972, 1973, + 1973, 1973, 1974, 1974, 1974, 1975, 1975, 1976, 1977, 1976, + 1978, 1978, 1979, 1979, 1980, 1980, 1981, 1982, 1983, 1984, + 1985, 1986, 1987, 1987, 1987, 1988, 1988, 1989, 1989, 1990, + 1990, 1990, 1990, 1990, 1990, 1991, 1991, 1991, 1991, 1991, + 1991, 1991, 1991, 1991, 1991, 1991, 1992, 1993, 1994, 1996, + 1995, 1997, 1998, 1999, 2000, 2001, 2001, 2002, 2002, 2003, + 2003, 2004, 2004, 2004, 2004, 2006, 2005, 2008, 2009, 2007, + 2010, 2010, 2010, 2012, 2011, 2013, 2011, 2014, 2011, 2011, + 2015, 2015, 2016, 2017, 2017, 2017, 2018, 2017, 2019, 2019, + 2019, 2019, 2019, 2020, 2020, 2020, 2020, 2020, 2020, 2020, + 2020, 2021, 2021, 2021, 2021, 2023, 2022, 2025, 2024, 2027, + 2026 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 0, 4, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 1, 0, 5, 3, 0, 0, 6, 0, + 0, 3, 1, 3, 0, 3, 0, 6, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 5, 5, 1, + 0, 1, 3, 1, 0, 1, 3, 1, 0, 1, + 3, 1, 3, 3, 3, 3, 3, 3, 3, 0, + 1, 1, 0, 0, 8, 0, 8, 0, 0, 15, + 0, 0, 17, 0, 0, 15, 0, 0, 15, 0, + 6, 0, 10, 0, 11, 0, 5, 0, 5, 8, + 6, 4, 3, 0, 3, 1, 0, 1, 1, 2, + 3, 2, 1, 3, 2, 1, 3, 3, 3, 1, + 1, 1, 1, 3, 0, 12, 1, 3, 2, 2, + 2, 2, 2, 2, 2, 0, 12, 0, 6, 2, + 0, 1, 3, 1, 0, 2, 0, 2, 0, 1, + 4, 0, 2, 0, 2, 0, 0, 1, 1, 1, + 1, 2, 3, 1, 0, 2, 0, 2, 2, 2, + 2, 2, 3, 3, 1, 1, 2, 3, 3, 0, + 4, 0, 3, 0, 1, 3, 1, 0, 0, 2, + 3, 1, 1, 2, 3, 1, 0, 1, 3, 1, + 1, 1, 1, 0, 4, 3, 0, 3, 2, 3, + 1, 3, 5, 2, 1, 3, 3, 1, 0, 4, + 4, 1, 0, 6, 0, 3, 0, 0, 3, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 3, 0, + 1, 1, 1, 1, 2, 1, 1, 2, 3, 3, + 1, 1, 0, 1, 0, 2, 3, 5, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 4, 0, 1, 1, 3, 1, + 3, 3, 1, 2, 1, 1, 1, 1, 1, 3, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 0, 5, + 0, 2, 1, 1, 2, 1, 1, 2, 3, 4, + 1, 2, 3, 4, 2, 2, 2, 0, 2, 0, + 0, 3, 0, 3, 1, 3, 0, 3, 1, 1, + 1, 3, 3, 4, 5, 2, 4, 2, 1, 3, + 0, 0, 6, 0, 2, 2, 2, 0, 6, 0, + 3, 1, 1, 2, 1, 2, 0, 5, 0, 5, + 0, 2, 0, 1, 0, 1, 2, 5, 3, 5, + 3, 5, 1, 0, 5, 0, 5, 0, 0, 0, + 8, 0, 5, 0, 3, 0, 3, 0, 0, 5, + 0, 3, 1, 1, 1, 1, 1, 2, 4, 5, + 0, 4, 4, 4, 3, 3, 2, 2, 0, 2, + 1, 2, 3, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 1, 1, 1, 1, 1, 1, 1, 2, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 1, 1, 1, 2, 2, 2, 1, 1, + 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 0, 1, 1, 1, 1, 1, 0, 5, + 3, 1, 2, 4, 0, 4, 1, 4, 1, 0, + 1, 0, 4, 0, 0, 3, 0, 6, 6, 0, + 4, 2, 2, 0, 3, 2, 0, 3, 0, 1, + 0, 3, 0, 1, 1, 3, 1, 4, 3, 3, + 0, 2, 0, 0, 7, 0, 10, 1, 3, 1, + 1, 0, 2, 0, 3, 1, 3, 0, 6, 1, + 0, 0, 4, 0, 3, 1, 1, 1, 1, 1, + 1, 3, 1, 3, 0, 0, 5, 1, 3, 1, + 1, 0, 3, 1, 3, 0, 4, 1, 0, 1, + 2, 1, 3, 4, 3, 3, 3, 3, 4, 4, + 3, 0, 4, 2, 0, 2, 0, 1, 0, 1, + 1, 2, 1, 1, 3, 0, 3, 0, 3, 1, + 3, 0, 1, 1, 2, 1, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 0, 6, + 1, 1, 3, 4, 4, 2, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 1, 0, 1, 2, + 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 3, 1, 1, 1, 1, 2, 1, 3, 0, + 9, 0, 10, 0, 9, 0, 9, 0, 11, 0, + 12, 0, 10, 2, 7, 7, 0, 1, 4, 0, + 1, 0, 1, 2, 0, 4, 0, 3, 0, 3, + 0, 1, 2, 1, 0, 1, 2, 1, 0, 1, + 2, 3, 0, 6, 5, 5, 0, 2, 0, 1, + 1, 1, 0, 1, 2, 1, 1, 2, 2, 1, + 0, 3, 1, 3, 3, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 2, 1, 1, 3, 3, 3, + 3, 0, 1, 2, 2, 3, 3, 2, 3, 3, + 4, 3, 3, 3, 1, 2, 2, 2, 2, 3, + 3, 2, 2, 2, 3, 3, 2, 3, 2, 2, + 2, 2, 2, 5, 5, 1, 1, 2, 2, 1, + 2, 1, 2, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 3, 0, 1, 1, 5, 0, + 1, 1, 1, 2, 2, 1, 3, 3, 3, 3, + 0, 1, 0, 1, 2, 1, 1, 2, 4, 1, + 3, 2, 1, 0, 2, 0, 1, 0, 1, 2, + 2, 2, 3, 2, 1, 1, 3, 3, 3, 3, + 2, 1, 2, 2, 1, 1, 1, 1, 1, 0, + 2, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 0, 1, 2, 1, 1, 2, 0, 1, 1, 2, + 1, 2, 2, 1, 0, 1, 0, 4, 1, 1, + 1, 0, 1, 2, 1, 1, 2, 1, 3, 3, + 1, 1, 0, 2, 0, 1, 5, 0, 3, 3, + 1, 0, 2, 2, 2, 0, 3, 3, 6, 6, + 1, 1, 2, 2, 2, 2, 2, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, + 0, 1, 1, 2, 1, 2, 1, 2, 0, 2, + 0, 2, 2, 2, 2, 3, 2, 1, 3, 3, + 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, + 4, 2, 0, 4, 1, 4, 0, 1, 1, 3, + 0, 0, 9, 0, 5, 0, 7, 7, 0, 6, + 0, 6, 0, 11, 0, 10, 0, 11, 3, 4, + 3, 3, 0, 8, 8, 0, 0, 0, 9, 1, + 1, 0, 1, 1, 3, 0, 2, 3, 5, 5, + 0, 3, 1, 4, 0, 3, 0, 2, 0, 1, + 0, 2, 2, 2, 2, 1, 1, 1, 4, 4, + 0, 6, 4, 0, 5, 0, 6, 4, 3, 1, + 7, 2, 1, 1, 0, 6, 0, 3, 2, 0, + 5, 0, 0, 6, 1, 3, 1, 1, 3, 3, + 3, 2, 2, 4, 4, 2, 7, 6, 5, 5, + 4, 5, 4, 4, 2, 2, 7, 6, 3, 6, + 6, 5, 1, 1, 1, 1, 1, 3, 3, 3, + 5, 0, 1, 1, 2, 2, 3, 3, 3, 3, + 0, 1, 0, 1, 0, 2, 0, 1, 2, 1, + 1, 1, 0, 1, 1, 0, 2, 1, 0, 1, + 1, 1, 0, 6, 0, 5, 4, 4, 3, 0, + 1, 1, 3, 3, 2, 2, 0, 2, 1, 3, + 0, 1, 1, 0, 2, 4, 1, 3, 0, 5, + 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, + 1, 2, 1, 1, 1, 0, 2, 0, 5, 1, + 3, 2, 0, 3, 1, 4, 1, 0, 4, 1, + 0, 4, 0, 1, 3, 0, 1, 3, 1, 1, + 2, 6, 3, 0, 4, 0, 3, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 2, 0, 2, 0, + 6, 0, 1, 1, 0, 5, 4, 3, 5, 1, + 3, 4, 0, 6, 1, 1, 1, 3, 2, 3, + 1, 1, 0, 6, 1, 1, 1, 3, 3, 4, + 0, 6, 0, 2, 0, 4, 0, 2, 0, 3, + 0, 4, 0, 3, 0, 4, 1, 1, 0, 3, + 0, 0, 5, 6, 7, 1, 2, 1, 1, 0, + 3, 0, 3, 3, 3, 1, 0, 4, 3, 1, + 1, 1, 1, 1, 4, 0, 1, 2, 1, 1, + 0, 1, 0, 1, 1, 2, 1, 2, 9, 0, + 1, 0, 2, 3, 1, 4, 4, 2, 1, 1, + 1, 1, 3, 5, 0, 1, 0, 2, 1, 3, + 1, 1, 3, 4, 0, 0, 0, 0, 2, 2, + 1, 1, 0, 2, 3, 0, 2, 3, 0, 2, + 3, 3, 3, 2, 3, 4, 3, 4, 3, 4, + 3, 4, 3, 3, 6, 1, 3, 4, 5, 7, + 6, 8, 5, 6, 4, 3, 5, 4, 6, 3, + 4, 1, 3, 3, 3, 3, 3, 3, 3, 5, + 5, 5, 6, 6, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, + 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, + 2, 0, 3, 1, 4, 1, 3, 1, 1, 1, + 1, 3, 1, 4, 4, 4, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 6, 4, 4, 7, 6, 3, 4, 6, 6, + 4, 4, 4, 4, 4, 4, 6, 8, 10, 1, + 1, 3, 1, 1, 3, 1, 2, 2, 2, 2, + 2, 1, 3, 4, 6, 4, 6, 2, 2, 4, + 4, 4, 10, 6, 8, 6, 4, 4, 6, 4, + 3, 4, 1, 4, 3, 4, 6, 8, 2, 2, + 8, 8, 6, 8, 6, 6, 6, 6, 2, 6, + 6, 8, 8, 6, 8, 6, 2, 8, 8, 4, + 2, 2, 2, 6, 6, 4, 4, 8, 4, 4, + 4, 4, 3, 8, 6, 8, 4, 6, 4, 6, + 4, 4, 4, 6, 8, 4, 3, 6, 4, 6, + 5, 8, 7, 10, 0, 5, 4, 4, 4, 6, + 2, 3, 0, 4, 0, 3, 0, 1, 1, 3, + 4, 4, 5, 4, 4, 4, 5, 4, 0, 0, + 7, 4, 5, 4, 5, 4, 4, 4, 4, 4, + 5, 0, 9, 0, 8, 0, 7, 3, 3, 1, + 1, 1, 3, 3, 3, 3, 3, 4, 4, 4, + 6, 4, 6, 4, 6, 5, 0, 7, 4, 4, + 4, 4, 1, 0, 3, 3, 1, 3, 5, 0, + 1, 0, 2, 0, 3, 4, 2, 0, 1, 1, + 2, 1, 3, 3, 0, 3, 2, 0, 4, 0, + 4, 0, 4, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, + 3, 0, 1, 1, 3, 1, 3, 1, 3, 4, + 5, 1, 3, 3, 3, 1, 1, 1, 1, 4, + 1, 3, 3, 0, 6, 0, 8, 4, 0, 8, + 0, 10, 6, 0, 8, 0, 10, 6, 1, 2, + 1, 1, 2, 0, 1, 5, 1, 1, 1, 1, + 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, + 5, 3, 0, 1, 0, 2, 3, 3, 1, 1, + 0, 7, 0, 7, 1, 2, 0, 0, 2, 0, + 2, 0, 1, 1, 1, 1, 3, 1, 3, 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, 1, 1, 0, 1, 2, + 0, 1, 0, 0, 3, 0, 0, 3, 0, 4, + 4, 2, 0, 1, 1, 0, 2, 3, 1, 3, + 0, 7, 0, 1, 0, 3, 0, 3, 0, 3, + 1, 1, 1, 4, 2, 2, 2, 1, 2, 2, + 0, 3, 2, 2, 3, 3, 3, 3, 1, 2, + 0, 1, 0, 4, 4, 2, 0, 1, 1, 0, + 1, 2, 5, 4, 1, 1, 3, 3, 1, 3, + 1, 1, 1, 1, 1, 0, 2, 3, 4, 1, + 2, 1, 0, 1, 1, 1, 0, 2, 2, 2, + 1, 0, 1, 2, 2, 2, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, + 0, 1, 3, 1, 3, 0, 2, 3, 1, 1, + 2, 1, 3, 2, 0, 0, 7, 2, 1, 0, + 3, 0, 8, 0, 8, 4, 5, 5, 0, 6, + 4, 4, 5, 6, 4, 0, 6, 1, 1, 3, + 1, 2, 1, 3, 1, 0, 2, 0, 2, 0, + 1, 0, 0, 12, 0, 0, 10, 0, 0, 0, + 1, 1, 0, 1, 1, 1, 0, 1, 0, 2, + 1, 2, 0, 3, 3, 0, 1, 3, 1, 1, + 3, 1, 3, 1, 3, 1, 1, 0, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 1, 0, + 1, 3, 1, 5, 3, 1, 1, 1, 1, 0, + 0, 0, 7, 5, 1, 0, 0, 0, 13, 3, + 1, 3, 3, 3, 1, 3, 0, 1, 0, 3, + 0, 3, 2, 3, 3, 2, 5, 0, 0, 7, + 0, 0, 8, 0, 0, 3, 1, 3, 2, 4, + 0, 2, 0, 2, 1, 1, 1, 0, 0, 7, + 0, 1, 0, 1, 1, 3, 1, 1, 2, 2, + 2, 1, 1, 1, 1, 0, 3, 0, 3, 2, + 4, 4, 3, 4, 4, 1, 3, 3, 3, 3, + 6, 2, 2, 0, 6, 0, 7, 5, 2, 1, + 1, 1, 5, 5, 2, 2, 1, 4, 3, 2, + 3, 2, 2, 1, 4, 4, 3, 3, 3, 2, + 2, 3, 2, 3, 3, 3, 3, 3, 4, 4, + 3, 2, 3, 3, 3, 3, 3, 4, 4, 3, + 3, 4, 4, 3, 3, 3, 1, 1, 1, 1, + 1, 0, 1, 0, 2, 0, 1, 1, 1, 0, + 2, 0, 2, 0, 3, 3, 0, 4, 0, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 2, 1, 1, 0, 3, 0, 1, 1, 0, 4, + 0, 4, 1, 0, 1, 4, 0, 3, 3, 1, + 2, 2, 2, 2, 3, 3, 2, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 2, 0, 1, + 2, 2, 0, 3, 1, 0, 5, 0, 1, 3, + 1, 0, 3, 0, 3, 3, 1, 0, 4, 0, + 3, 2, 0, 1, 0, 2, 5, 0, 6, 0, + 4, 0, 1, 1, 2, 2, 3, 0, 1, 1, + 2, 0, 3, 0, 4, 2, 0, 0, 0, 0, + 23, 1, 1, 0, 1, 0, 1, 1, 0, 1, + 1, 0, 2, 2, 1, 3, 4, 3, 3, 0, + 2, 2, 1, 3, 3, 0, 4, 0, 3, 1, + 1, 0, 3, 2, 3, 1, 1, 2, 0, 2, + 3, 1, 5, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 2, 2, 2, 0, 4, 0, 1, 1, + 3, 7, 0, 0, 4, 0, 3, 1, 1, 1, + 3, 1, 1, 1, 3, 5, 3, 5, 1, 1, + 3, 4, 5, 4, 1, 3, 4, 4, 5, 1, + 5, 3, 2, 1, 3, 2, 2, 4, 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, 3, 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, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 3, 1, 3, 0, 3, 0, 3, 0, + 5, 1, 3, 1, 3, 0, 3, 1, 3, 0, + 3, 1, 1, 1, 1, 0, 1, 1, 1, 0, + 2, 2, 2, 0, 4, 0, 6, 0, 6, 0, + 4, 0, 6, 0, 6, 0, 4, 0, 6, 0, + 6, 0, 5, 0, 7, 0, 9, 0, 9, 2, + 3, 3, 3, 5, 2, 0, 4, 0, 4, 0, + 6, 1, 1, 3, 3, 1, 3, 2, 2, 2, + 2, 2, 1, 1, 4, 4, 1, 1, 1, 1, + 1, 0, 5, 0, 2, 1, 1, 1, 1, 3, + 3, 1, 1, 2, 2, 2, 0, 3, 0, 3, + 3, 2, 0, 6, 1, 2, 1, 1, 1, 1, + 1, 1, 0, 5, 1, 1, 1, 1, 1, 3, + 6, 6, 7, 5, 3, 4, 1, 3, 8, 8, + 6, 4, 0, 3, 0, 3, 1, 3, 2, 1, + 1, 0, 1, 1, 2, 0, 1, 1, 1, 3, + 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 1, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 3, 3, 2, 0, 1, + 3, 1, 2, 2, 2, 1, 3, 3, 1, 1, + 3, 1, 3, 1, 3, 1, 1, 1, 1, 4, + 5, 4, 1, 3, 1, 2, 0, 2, 5, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 0, 2, 0, 2, 0, 3, 2, 1, 2, + 1, 0, 3, 1, 0, 1, 0, 1, 0, 3, + 2, 0, 1, 2, 4, 4, 5, 4, 2, 3, + 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, + 3, 3, 0, 1, 3, 3, 0, 3, 1, 3, + 0, 3, 0, 3, 4, 4, 1, 1, 0, 2, + 0, 0, 0, 0, 0, 19, 0, 2, 4, 4, + 3, 4, 3, 3, 0, 3, 1, 3, 5, 1, + 1, 1, 0, 1, 1, 0, 2, 0, 0, 3, + 0, 2, 6, 3, 4, 4, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 6, 4, 2, 1, 1, 1, 2, 2, 1, 5, + 6, 6, 8, 5, 7, 0, 3, 0, 0, 6, + 6, 4, 4, 0, 6, 0, 11, 0, 11, 10, + 1, 3, 2, 1, 4, 1, 0, 6, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 7, 0, 5, 0, + 7 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (thd, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, thd); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, THD *thd) +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + YYUSE (thd); + if (!yyvaluep) + return; + YYUSE (yytype); +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, THD *thd) +{ + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep, thd); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, THD *thd) +{ + unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , thd); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule, thd); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, THD *thd) +{ + YYUSE (yyvaluep); + YYUSE (thd); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (THD *thd) +{ +/* The lookahead symbol. */ +int yychar; + + +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (&yylval, thd); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 1841 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!thd->bootstrap && + (!(thd->lex->lex_options & OPTION_LEX_FOUND_COMMENT))) + my_yyabort_error((ER_EMPTY_QUERY, MYF(0))); + + thd->lex->sql_command= SQLCOM_EMPTY_QUERY; + YYLIP->found_semicolon= NULL; + } +#line 27980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3: +#line 1850 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_input_stream *lip = YYLIP; + + if ((thd->client_capabilities & CLIENT_MULTI_QUERIES) && + lip->multi_statements && + ! lip->eof()) + { + /* + We found a well formed query, and multi queries are allowed: + - force the parser to stop after the ';' + - mark the start of the next query for the next invocation + of the parser. + */ + lip->next_state= MY_LEX_END; + lip->found_semicolon= lip->get_ptr(); + } + else + { + /* Single query, terminated. */ + lip->found_semicolon= NULL; + } + } +#line 28009 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 5: +#line 1875 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* Single query, not terminated. */ + YYLIP->found_semicolon= NULL; + } +#line 28020 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 70: +#line 1957 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->stmt_deallocate_prepare((yyvsp[0].ident_sys)); + } +#line 28030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 73: +#line 1969 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->clause_that_disallows_subselect= "PREPARE..FROM"; } +#line 28038 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 74: +#line 1971 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->clause_that_disallows_subselect= NULL; + if (Lex->stmt_prepare((yyvsp[-3].ident_sys), (yyvsp[0].item))) + MYSQL_YYABORT; + } +#line 28050 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 75: +#line 1980 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_execute((yyvsp[-1].ident_sys), (yyvsp[0].item_list))) + MYSQL_YYABORT; + } +#line 28061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 76: +#line 1985 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->clause_that_disallows_subselect= "EXECUTE IMMEDIATE"; } +#line 28069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 77: +#line 1987 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->clause_that_disallows_subselect= NULL; } +#line 28077 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 78: +#line 1989 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_execute_immediate((yyvsp[-2].item), (yyvsp[0].item_list))) + MYSQL_YYABORT; + } +#line 28088 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 79: +#line 1996 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= NULL; } +#line 28096 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 80: +#line 1998 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->clause_that_disallows_subselect= "EXECUTE..USING"; } +#line 28104 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 81: +#line 2000 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_list)= (yyvsp[0].item_list); + Lex->clause_that_disallows_subselect= NULL; + } +#line 28115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 82: +#line 2008 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_list)= List<Item>::make(thd->mem_root, (yyvsp[0].item))))) + MYSQL_YYABORT; + } +#line 28126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 83: +#line 2013 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (((yyval.item_list)= (yyvsp[-2].item_list))->push_back((yyvsp[0].item), thd->mem_root)) + MYSQL_YYABORT; + } +#line 28137 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 84: +#line 2024 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HELP")); + } +#line 28148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 85: +#line 2029 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_HELP; + lex->help_arg= (yyvsp[0].lex_str).str; + } +#line 28160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 86: +#line 2040 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_CHANGE_MASTER; + } +#line 28170 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 87: +#line 2044 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 28178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 90: +#line 2054 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.host = (yyvsp[0].lex_str).str; + } +#line 28188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 91: +#line 2058 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.user = (yyvsp[0].lex_str).str; + } +#line 28198 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 92: +#line 2062 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.password = (yyvsp[0].lex_str).str; + } +#line 28208 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 93: +#line 2066 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.port = (yyvsp[0].ulong_num); + } +#line 28218 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 94: +#line 2070 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.connect_retry = (yyvsp[0].ulong_num); + } +#line 28228 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 95: +#line 2074 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[0].ulong_num) > MASTER_DELAY_MAX) + { + my_error(ER_MASTER_DELAY_VALUE_OUT_OF_RANGE, MYF(0), + (ulong) (yyvsp[0].ulong_num), (ulong) MASTER_DELAY_MAX); + } + else + Lex->mi.sql_delay = (yyvsp[0].ulong_num); + } +#line 28244 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 96: +#line 2084 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl= (yyvsp[0].ulong_num) ? + LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; + } +#line 28255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 97: +#line 2089 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_ca= (yyvsp[0].lex_str).str; + } +#line 28265 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 98: +#line 2093 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_capath= (yyvsp[0].lex_str).str; + } +#line 28275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 99: +#line 2097 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_cert= (yyvsp[0].lex_str).str; + } +#line 28285 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 100: +#line 2101 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str; + } +#line 28295 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 101: +#line 2105 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_key= (yyvsp[0].lex_str).str; + } +#line 28305 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 102: +#line 2109 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_verify_server_cert= (yyvsp[0].ulong_num) ? + LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; + } +#line 28316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 103: +#line 2114 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_crl= (yyvsp[0].lex_str).str; + } +#line 28326 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 104: +#line 2118 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.ssl_crlpath= (yyvsp[0].lex_str).str; + } +#line 28336 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 105: +#line 2123 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.heartbeat_period= (float) (yyvsp[0].item_num)->val_real(); + if (unlikely(Lex->mi.heartbeat_period > + SLAVE_MAX_HEARTBEAT_PERIOD) || + unlikely(Lex->mi.heartbeat_period < 0.0)) + my_yyabort_error((ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE, MYF(0), + SLAVE_MAX_HEARTBEAT_PERIOD)); + + if (unlikely(Lex->mi.heartbeat_period > slave_net_timeout)) + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX, + ER_THD(thd, ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX)); + } + if (unlikely(Lex->mi.heartbeat_period < 0.001)) + { + if (unlikely(Lex->mi.heartbeat_period != 0.0)) + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN, + ER_THD(thd, ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN)); + Lex->mi.heartbeat_period= 0.0; + } + Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_DISABLE; + } + Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; + } +#line 28370 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 106: +#line 2151 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; + } +#line 28380 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 107: +#line 2155 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.repl_do_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; + } +#line 28390 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 108: +#line 2159 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.repl_ignore_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; + } +#line 28400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 113: +#line 2174 "/home/buildbot/git/sql/sql_yacc.yy" + + { + insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[0].ulong_num))); + } +#line 28410 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 117: +#line 2187 "/home/buildbot/git/sql/sql_yacc.yy" + + { + insert_dynamic(&Lex->mi.repl_do_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); + } +#line 28420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 121: +#line 2200 "/home/buildbot/git/sql/sql_yacc.yy" + + { + insert_dynamic(&Lex->mi.repl_ignore_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); + } +#line 28430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 122: +#line 2207 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.log_file_name = (yyvsp[0].lex_str).str; + } +#line 28440 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 123: +#line 2211 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it + instead of causing subsequent errors. + We need to do it in this file, because only there we know that + MASTER_LOG_POS has been explicitly specified. On the contrary + in change_master() (sql_repl.cc) we cannot distinguish between 0 + (MASTER_LOG_POS explicitly specified as 0) and 0 (unspecified), + whereas we want to distinguish (specified 0 means "read the binlog + from 0" (4 in fact), unspecified means "don't change the position + (keep the preceding value)"). + */ + Lex->mi.pos= MY_MAX(BIN_LOG_HEADER_SIZE, (yyvsp[0].ulonglong_number)); + } +#line 28461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 124: +#line 2226 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.relay_log_name = (yyvsp[0].lex_str).str; + } +#line 28471 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 125: +#line 2230 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.relay_log_pos = (yyvsp[0].ulong_num); + /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */ + Lex->mi.relay_log_pos= MY_MAX(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos); + } +#line 28483 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 126: +#line 2236 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_UNCHANGED)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); + Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_CURRENT_POS; + } +#line 28495 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 127: +#line 2242 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_UNCHANGED)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); + Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_SLAVE_POS; + } +#line 28507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 128: +#line 2248 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_UNCHANGED)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); + Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_NO; + } +#line 28519 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 129: +#line 2257 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->mi.connection_name= null_clex_str; + } +#line 28530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 131: +#line 2266 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.connection_name= (yyvsp[0].lex_str); +#ifdef HAVE_REPLICATION + if (unlikely(check_master_connection_name(&(yyvsp[0].lex_str)))) + my_yyabort_error((ER_WRONG_ARGUMENTS, MYF(0), "MASTER_CONNECTION_NAME")); +#endif + } +#line 28544 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 132: +#line 2279 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_create_table())) + MYSQL_YYABORT; + lex->create_info.init(); + if (lex->main_select_push()) + MYSQL_YYABORT; + lex->current_select->parsing_place= BEFORE_OPT_LIST; + if (lex->set_command_with_check(SQLCOM_CREATE_TABLE, (yyvsp[-2].num), (yyvsp[-3].object_ddl_options) | (yyvsp[0].object_ddl_options))) + MYSQL_YYABORT; + } +#line 28562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 133: +#line 2291 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + if (!lex->first_select_lex()-> + add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, + TL_WRITE, MDL_SHARED_UPGRADABLE)) + MYSQL_YYABORT; + lex->alter_info.reset(); + /* + For CREATE TABLE we should not open the table even if it exists. + If the table exists, we should either not create it or replace it + */ + lex->query_tables->open_strategy= TABLE_LIST::OPEN_STUB; + lex->create_info.default_table_charset= NULL; + lex->name= null_clex_str; + lex->create_last_non_select_table= lex->last_table(); + } +#line 28585 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 134: +#line 2308 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + create_table_set_open_action_and_adjust_tables(lex); + Lex->pop_select(); //main select + } +#line 28597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 135: +#line 2314 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + if (lex->main_select_push()) + MYSQL_YYABORT; + if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_create_sequence())) + MYSQL_YYABORT; + lex->create_info.init(); + if (unlikely(lex->set_command_with_check(SQLCOM_CREATE_SEQUENCE, (yyvsp[-3].num), + (yyvsp[-4].object_ddl_options) | (yyvsp[-1].object_ddl_options)))) + MYSQL_YYABORT; + + if (!lex->first_select_lex()-> + add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, + TL_WRITE, MDL_EXCLUSIVE)) + MYSQL_YYABORT; + + /* + For CREATE TABLE, an non-existing table is not an error. + Instruct open_tables() to just take an MDL lock if the + table does not exist. + */ + lex->alter_info.reset(); + lex->query_tables->open_strategy= TABLE_LIST::OPEN_STUB; + lex->name= null_clex_str; + lex->create_last_non_select_table= lex->last_table(); + if (unlikely(!(lex->create_info.seq_create_info= + new (thd->mem_root) sequence_definition()))) + MYSQL_YYABORT; + } +#line 28633 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 136: +#line 2344 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + + if (unlikely(lex->create_info.seq_create_info->check_and_adjust(1))) + { + my_error(ER_SEQUENCE_INVALID_DATA, MYF(0), + lex->first_select_lex()->table_list.first->db.str, + lex->first_select_lex()->table_list.first-> + table_name.str); + MYSQL_YYABORT; + } + + /* No fields specified, generate them */ + if (unlikely(prepare_sequence_fields(thd, + &lex->alter_info.create_list))) + MYSQL_YYABORT; + + /* CREATE SEQUENCE always creates a sequence */ + Lex->create_info.used_fields|= HA_CREATE_USED_SEQUENCE; + Lex->create_info.sequence= 1; + + create_table_set_open_action_and_adjust_tables(lex); + Lex->pop_select(); //main select + } +#line 28664 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 137: +#line 2369 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 28675 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 138: +#line 2376 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->add_create_index_prepare((yyvsp[0].table))) + MYSQL_YYABORT; + if (Lex->add_create_index(Key::MULTIPLE, &(yyvsp[-3].ident_sys), (yyvsp[-2].key_alg), (yyvsp[-7].object_ddl_options) | (yyvsp[-5].object_ddl_options))) + MYSQL_YYABORT; + } +#line 28688 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 139: +#line 2384 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28698 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 140: +#line 2388 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 28709 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 141: +#line 2395 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->add_create_index_prepare((yyvsp[0].table))) + MYSQL_YYABORT; + if (Lex->add_create_index(Key::UNIQUE, &(yyvsp[-3].ident_sys), (yyvsp[-2].key_alg), (yyvsp[-8].object_ddl_options) | (yyvsp[-5].object_ddl_options))) + MYSQL_YYABORT; + } +#line 28722 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 142: +#line 2404 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28732 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 143: +#line 2408 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 28743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 144: +#line 2414 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->add_create_index_prepare((yyvsp[0].table))) + MYSQL_YYABORT; + if (Lex->add_create_index((yyvsp[-6].key_type), &(yyvsp[-2].ident_sys), HA_KEY_ALG_UNDEF, (yyvsp[-7].object_ddl_options) | (yyvsp[-3].object_ddl_options))) + MYSQL_YYABORT; + } +#line 28756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 145: +#line 2422 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28766 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 146: +#line 2426 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 28777 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 147: +#line 2432 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->add_create_index_prepare((yyvsp[0].table))) + MYSQL_YYABORT; + if (Lex->add_create_index((yyvsp[-6].key_type), &(yyvsp[-2].ident_sys), HA_KEY_ALG_UNDEF, (yyvsp[-7].object_ddl_options) | (yyvsp[-3].object_ddl_options))) + MYSQL_YYABORT; + } +#line 28790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 148: +#line 2440 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 149: +#line 2444 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.default_table_charset= NULL; + Lex->create_info.schema_comment= NULL; + Lex->create_info.used_fields= 0; + } +#line 28812 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 150: +#line 2450 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(lex->set_command_with_check(SQLCOM_CREATE_DB, 0, + (yyvsp[-5].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) + MYSQL_YYABORT; + lex->name= (yyvsp[-2].ident_sys); + } +#line 28826 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 151: +#line 2459 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + if (Lex->add_create_view(thd, (yyvsp[-5].object_ddl_options) | (yyvsp[-1].object_ddl_options), + DTYPE_ALGORITHM_UNDEFINED, (yyvsp[-3].view_suid), (yyvsp[0].table))) + MYSQL_YYABORT; + } +#line 28840 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 152: +#line 2467 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28850 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 153: +#line 2472 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_create_view(thd, (yyvsp[-6].object_ddl_options) | (yyvsp[-1].object_ddl_options), (yyvsp[-5].num), (yyvsp[-3].view_suid), (yyvsp[0].table)))) + MYSQL_YYABORT; + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 28863 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 154: +#line 2479 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28873 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 155: +#line 2483 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + Lex->create_info.set((yyvsp[-2].object_ddl_options)); + } +#line 28885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 156: +#line 2489 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28895 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 157: +#line 2493 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + Lex->create_info.set((yyvsp[-2].object_ddl_options)); + } +#line 28907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 158: +#line 2499 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 28917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 159: +#line 2504 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_command_with_check(SQLCOM_CREATE_USER, + (yyvsp[-7].object_ddl_options) | (yyvsp[-5].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 28929 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 160: +#line 2511 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_command_with_check(SQLCOM_CREATE_ROLE, + (yyvsp[-5].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 28941 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 161: +#line 2517 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP; + } +#line 28951 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 162: +#line 2521 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE; + } +#line 28961 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 163: +#line 2524 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->set_command(SQLCOM_CREATE_SERVER, (yyvsp[0].object_ddl_options)); } +#line 28969 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 164: +#line 2526 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 28977 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 166: +#line 2531 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 28985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 170: +#line 2542 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.seq_create_info->min_value= (yyvsp[0].longlong_number); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; + } +#line 28996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 171: +#line 2547 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_min_value)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MINVALUE")); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; + } +#line 29008 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 172: +#line 2553 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_min_value)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MINVALUE")); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; + } +#line 29020 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 173: +#line 2559 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_max_value)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); + Lex->create_info.seq_create_info->max_value= (yyvsp[0].longlong_number); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; + } +#line 29034 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 174: +#line 2567 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_max_value)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; + } +#line 29046 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 175: +#line 2573 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_max_value)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; + } +#line 29058 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 176: +#line 2579 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_start)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "START")); + Lex->create_info.seq_create_info->start= (yyvsp[0].longlong_number); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_start; + } +#line 29072 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 177: +#line 2587 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_increment)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "INCREMENT")); + Lex->create_info.seq_create_info->increment= (yyvsp[0].longlong_number); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_increment; + } +#line 29086 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 178: +#line 2595 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_cache)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CACHE")); + Lex->create_info.seq_create_info->cache= (yyvsp[0].longlong_number); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_cache; + } +#line 29100 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 179: +#line 2603 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_cache)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CACHE")); + Lex->create_info.seq_create_info->cache= 0; + Lex->create_info.seq_create_info->used_fields|= seq_field_used_cache; + } +#line 29114 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 180: +#line 2611 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_cycle)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CYCLE")); + Lex->create_info.seq_create_info->cycle= 1; + Lex->create_info.seq_create_info->used_fields|= seq_field_used_cycle; + } +#line 29128 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 181: +#line 2619 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_cycle)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CYCLE")); + Lex->create_info.seq_create_info->cycle= 0; + Lex->create_info.seq_create_info->used_fields|= seq_field_used_cycle; + } +#line 29142 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 182: +#line 2627 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sql_command != SQLCOM_ALTER_SEQUENCE)) + { + thd->parse_error(ER_SYNTAX_ERROR, "RESTART"); + YYABORT; + } + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_restart)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "RESTART")); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_restart; + } +#line 29160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 183: +#line 2639 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sql_command != SQLCOM_ALTER_SEQUENCE)) + { + thd->parse_error(ER_SYNTAX_ERROR, "RESTART"); + YYABORT; + } + if (unlikely(Lex->create_info.seq_create_info->used_fields & + seq_field_used_restart)) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "RESTART")); + Lex->create_info.seq_create_info->restart= (yyvsp[0].longlong_number); + Lex->create_info.seq_create_info->used_fields|= seq_field_used_restart | seq_field_used_restart_value; + } +#line 29179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 184: +#line 2655 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_create_options_with_check((yyvsp[-1].object_ddl_options)))) + MYSQL_YYABORT; + Lex->server_options.reset((yyvsp[0].lex_str)); + } +#line 29191 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 185: +#line 2662 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->server_options.scheme= (yyvsp[-4].lex_str); } +#line 29199 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 188: +#line 2672 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS(Lex->server_options.username.str == 0); + Lex->server_options.username= (yyvsp[0].lex_str); + } +#line 29210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 189: +#line 2677 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS(Lex->server_options.host.str == 0); + Lex->server_options.host= (yyvsp[0].lex_str); + } +#line 29221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 190: +#line 2682 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS(Lex->server_options.db.str == 0); + Lex->server_options.db= (yyvsp[0].lex_str); + } +#line 29232 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 191: +#line 2687 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS(Lex->server_options.owner.str == 0); + Lex->server_options.owner= (yyvsp[0].lex_str); + } +#line 29243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 192: +#line 2692 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS(Lex->server_options.password.str == 0); + Lex->server_options.password= (yyvsp[0].lex_str); + } +#line 29254 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 193: +#line 2697 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS(Lex->server_options.socket.str == 0); + Lex->server_options.socket= (yyvsp[0].lex_str); + } +#line 29265 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 194: +#line 2702 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->server_options.port= (yyvsp[0].ulong_num); + } +#line 29275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 195: +#line 2709 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + + lex->stmt_definition_begin= (yyvsp[-2].simple_string); + if (unlikely(lex->add_create_options_with_check((yyvsp[-1].object_ddl_options)))) + MYSQL_YYABORT; + if (unlikely(!(lex->event_parse_data= + Event_parse_data::new_instance(thd)))) + MYSQL_YYABORT; + lex->event_parse_data->identifier= (yyvsp[0].spname); + lex->event_parse_data->on_completion= + Event_parse_data::ON_COMPLETION_DROP; + + lex->sql_command= SQLCOM_CREATE_EVENT; + /* We need that for disallowing subqueries */ + } +#line 29298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 196: +#line 2730 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + sql_command is set here because some rules in ev_sql_stmt + can overwrite it + */ + Lex->sql_command= SQLCOM_CREATE_EVENT; + } +#line 29312 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 197: +#line 2741 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->item_expression= (yyvsp[-1].item); + Lex->event_parse_data->interval= (yyvsp[0].interval); + } +#line 29323 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 199: +#line 2748 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->item_execute_at= (yyvsp[0].item); + } +#line 29333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 200: +#line 2754 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 29341 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 201: +#line 2756 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->status= Event_parse_data::ENABLED; + Lex->event_parse_data->status_changed= true; + (yyval.num)= 1; + } +#line 29353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 202: +#line 2762 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->status= Event_parse_data::SLAVESIDE_DISABLED; + Lex->event_parse_data->status_changed= true; + (yyval.num)= 1; + } +#line 29365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 203: +#line 2768 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->status= Event_parse_data::DISABLED; + Lex->event_parse_data->status_changed= true; + (yyval.num)= 1; + } +#line 29377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 204: +#line 2777 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_func_now_local(thd, 0); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + Lex->event_parse_data->item_starts= item; + } +#line 29390 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 205: +#line 2784 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->item_starts= (yyvsp[0].item); + } +#line 29400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 207: +#line 2792 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->item_ends= (yyvsp[0].item); + } +#line 29410 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 208: +#line 2798 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 29418 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 210: +#line 2804 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->event_parse_data->on_completion= (yyvsp[-1].num) + ? Event_parse_data::ON_COMPLETION_DROP + : Event_parse_data::ON_COMPLETION_PRESERVE; + (yyval.num)= 1; + } +#line 29431 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 211: +#line 2813 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 29439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 212: +#line 2815 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str); + (yyval.num)= 1; + } +#line 29450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 213: +#line 2822 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + Lex_input_stream *lip= YYLIP; + + /* + This stops the following : + - CREATE EVENT ... DO CREATE EVENT ...; + - ALTER EVENT ... DO CREATE EVENT ...; + - CREATE EVENT ... DO ALTER EVENT DO ....; + - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END| + This allows: + - CREATE EVENT ... DO DROP EVENT yyy; + - CREATE EVENT ... DO ALTER EVENT yyy; + (the nested ALTER EVENT can have anything but DO clause) + - ALTER EVENT ... DO ALTER EVENT yyy; + (the nested ALTER EVENT can have anything but DO clause) + - ALTER EVENT ... DO DROP EVENT yyy; + - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END| + (the nested ALTER EVENT can have anything but DO clause) + - CREATE PROCEDURE ... BEGIN DROP EVENT ... END| + */ + if (unlikely(lex->sphead)) + my_yyabort_error((ER_EVENT_RECURSION_FORBIDDEN, MYF(0))); + + if (unlikely(!lex->make_sp_head(thd, + lex->event_parse_data->identifier, + &sp_handler_procedure, + DEFAULT_AGGREGATE))) + MYSQL_YYABORT; + + lex->sphead->set_body_start(thd, lip->get_cpp_ptr()); + } +#line 29489 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 214: +#line 2855 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* return back to the original memory root ASAP */ + if (Lex->sp_body_finalize_event(thd)) + MYSQL_YYABORT; + } +#line 29501 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 215: +#line 2864 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->users_list.empty(); + lex->first_select_lex()->db= null_clex_str; + lex->account_options.reset(); + } +#line 29514 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 216: +#line 2873 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_aggregate_type)= NOT_AGGREGATE; } +#line 29522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 217: +#line 2874 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_aggregate_type)= GROUP_AGGREGATE; } +#line 29530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 218: +#line 2879 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_handler)= &sp_handler_function; } +#line 29538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 219: +#line 2880 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_handler)= &sp_handler_procedure; } +#line 29546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 220: +#line 2881 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_handler)= &sp_handler_package_spec; } +#line 29554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 221: +#line 2882 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_handler)= &sp_handler_package_body; } +#line 29562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 222: +#line 2888 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 29573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 223: +#line 2893 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 29584 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 224: +#line 2900 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 29592 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 225: +#line 2901 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 29600 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 226: +#line 2905 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 29608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 227: +#line 2906 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 29616 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 228: +#line 2912 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } +#line 29624 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 229: +#line 2914 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* Just parse it, we only have one language for now. */ } +#line 29632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 230: +#line 2916 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.daccess= SP_NO_SQL; } +#line 29640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 231: +#line 2918 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; } +#line 29648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 232: +#line 2920 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; } +#line 29656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 233: +#line 2922 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; } +#line 29664 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 234: +#line 2924 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.suid= (yyvsp[0].sp_suid); } +#line 29672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 235: +#line 2929 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 29680 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 236: +#line 2930 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sp_chistics.detistic= ! (yyvsp[-1].num); } +#line 29688 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 237: +#line 2934 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_suid)= SP_IS_SUID; } +#line 29696 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 238: +#line 2935 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_suid)= SP_IS_NOT_SUID; } +#line 29704 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 239: +#line 2940 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->call_statement_start(thd, (yyvsp[0].spname)))) + MYSQL_YYABORT; + } +#line 29715 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 240: +#line 2945 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->check_cte_dependencies_and_resolve_references()) + MYSQL_YYABORT; + } +#line 29726 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 245: +#line 2964 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); + } +#line 29736 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 246: +#line 2968 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); + } +#line 29746 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 247: +#line 2976 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start(); + Lex->sphead->m_param_end= Lex->sphead->m_param_begin; + } +#line 29757 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 248: +#line 2981 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start(); + } +#line 29767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 249: +#line 2985 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); + } +#line 29777 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 252: +#line 2997 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.spvar)= Lex->sp_param_init(&(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 29788 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 253: +#line 3005 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_param_fill_definition((yyval.spvar)= (yyvsp[-1].spvar), (yyvsp[0].Lex_field_type)))) + MYSQL_YYABORT; + } +#line 29799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 254: +#line 3010 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead->spvar_fill_row(thd, (yyval.spvar)= (yyvsp[-2].spvar), (yyvsp[0].spvar_definition_list)))) + MYSQL_YYABORT; + } +#line 29810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 260: +#line 3029 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spvar_mode)= sp_variable::MODE_IN; } +#line 29818 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 261: +#line 3030 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spvar_mode)= sp_variable::MODE_OUT; } +#line 29826 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 262: +#line 3031 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spvar_mode)= sp_variable::MODE_INOUT; } +#line 29834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 263: +#line 3036 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start() + 1; + } +#line 29844 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 264: +#line 3041 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); + } +#line 29854 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 266: +#line 3051 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 29862 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 268: +#line 3056 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 29870 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 270: +#line 3063 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.qualified_column_ident)= new (thd->mem_root) + Qualified_column_ident(&(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 29882 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 271: +#line 3069 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.qualified_column_ident)= new (thd->mem_root) + Qualified_column_ident(&(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 29894 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 272: +#line 3075 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.qualified_column_ident)= new (thd->mem_root) + Qualified_column_ident(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 29906 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 273: +#line 3085 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->set_attributes(thd, (yyvsp[0].Lex_field_type), Lex->charset, + COLUMN_DEFINITION_ROUTINE_LOCAL); + } +#line 29917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 274: +#line 3093 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.spvar_definition_list)= Row_definition_list::make(thd->mem_root, (yyvsp[0].spvar_definition)))) + MYSQL_YYABORT; + } +#line 29928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 275: +#line 3098 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (((yyval.spvar_definition_list)= (yyvsp[-2].spvar_definition_list))->append_uniq(thd->mem_root, (yyvsp[0].spvar_definition))) + MYSQL_YYABORT; + } +#line 29939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 276: +#line 3105 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spvar_definition_list)= (yyvsp[-1].spvar_definition_list); } +#line 29947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 277: +#line 3110 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_variable_declarations_init(thd, (yyvsp[0].num)); + } +#line 29957 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 278: +#line 3118 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->set_attributes(thd, (yyvsp[0].Lex_field_type), Lex->charset, + COLUMN_DEFINITION_ROUTINE_LOCAL); + } +#line 29968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 279: +#line 3123 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_variable_declarations_finalize(thd, (yyvsp[-3].num), + &Lex->last_field[0], + (yyvsp[0].item)))) + MYSQL_YYABORT; + (yyval.spblock).init_using_vars((yyvsp[-3].num)); + } +#line 29982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 280: +#line 3133 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_variable_declarations_row_finalize(thd, (yyvsp[-3].num), (yyvsp[-1].spvar_definition_list), (yyvsp[0].item)))) + MYSQL_YYABORT; + (yyval.spblock).init_using_vars((yyvsp[-3].num)); + } +#line 29994 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 282: +#line 3143 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_handler_declaration_init(thd, (yyvsp[-2].num)))) + MYSQL_YYABORT; + } +#line 30005 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 283: +#line 3148 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_handler_declaration_finalize(thd, (yyvsp[-5].num)))) + MYSQL_YYABORT; + (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0; + (yyval.spblock).hndlrs= 1; + } +#line 30018 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 286: +#line 3163 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(thd->lex->sphead); + if (unlikely(!((yyval.sp_cursor_stmt)= new (thd->mem_root) + sp_lex_cursor(thd, thd->lex)))) + MYSQL_YYABORT; + } +#line 30031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 287: +#line 3173 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(thd->free_list == NULL); + Lex->sphead->reset_lex(thd, (yyvsp[0].sp_cursor_stmt)); + if (Lex->main_select_push(true)) + MYSQL_YYABORT; + } +#line 30044 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 288: +#line 3180 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex == (yyvsp[-2].sp_cursor_stmt)); + Lex->pop_select(); //main select + if (unlikely((yyvsp[-2].sp_cursor_stmt)->stmt_finalize(thd)) || + unlikely((yyvsp[-2].sp_cursor_stmt)->sphead->restore_lex(thd))) + MYSQL_YYABORT; + (yyval.sp_cursor_stmt)= (yyvsp[-2].sp_cursor_stmt); + } +#line 30059 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 289: +#line 3191 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= sp_handler::EXIT; } +#line 30067 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 290: +#line 3192 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= sp_handler::CONTINUE; } +#line 30075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 291: +#line 3193 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= sp_handler::EXIT; } +#line 30083 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 292: +#line 3194 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= sp_handler::CONTINUE; } +#line 30091 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 293: +#line 3200 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 30099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 294: +#line 3202 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)+= 1; } +#line 30107 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 295: +#line 3207 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + sp_pcontext *ctx= lex->spcont->parent_context(); + + if (unlikely(ctx->check_duplicate_handler((yyvsp[0].spcondvalue)))) + my_yyabort_error((ER_SP_DUP_HANDLER, MYF(0))); + + sp_instr_hpush_jump *i= (sp_instr_hpush_jump *)sp->last_instruction(); + i->add_condition((yyvsp[0].spcondvalue)); + } +#line 30125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 296: +#line 3222 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* mysql errno */ + if (unlikely((yyvsp[0].ulong_num) == 0)) + my_yyabort_error((ER_WRONG_VALUE, MYF(0), "CONDITION", "0")); + (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value((yyvsp[0].ulong_num)); + if (unlikely((yyval.spcondvalue) == NULL)) + MYSQL_YYABORT; + } +#line 30139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 298: +#line 3234 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* SQLSTATE */ + + /* + An error is triggered: + - if the specified string is not a valid SQLSTATE, + - or if it represents the completion condition -- it is not + allowed to SIGNAL, or declare a handler for the completion + condition. + */ + if (unlikely(!is_sqlstate_valid(&(yyvsp[0].lex_str)) || + is_sqlstate_completion((yyvsp[0].lex_str).str))) + my_yyabort_error((ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[0].lex_str).str)); + (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value((yyvsp[0].lex_str).str); + if (unlikely((yyval.spcondvalue) == NULL)) + MYSQL_YYABORT; + } +#line 30162 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 299: +#line 3253 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 30170 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 300: +#line 3254 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 30178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 301: +#line 3259 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spcondvalue)= (yyvsp[0].spcondvalue); + } +#line 30188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 302: +#line 3263 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spcondvalue)= Lex->spcont->find_declared_or_predefined_condition(thd, &(yyvsp[0].ident_sys)); + if (unlikely((yyval.spcondvalue) == NULL)) + my_yyabort_error((ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].ident_sys).str)); + } +#line 30200 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 303: +#line 3269 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::WARNING); + if (unlikely((yyval.spcondvalue) == NULL)) + MYSQL_YYABORT; + } +#line 30212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 304: +#line 3275 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::NOT_FOUND); + if (unlikely((yyval.spcondvalue) == NULL)) + MYSQL_YYABORT; + } +#line 30224 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 305: +#line 3281 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::EXCEPTION); + if (unlikely((yyval.spcondvalue) == NULL)) + MYSQL_YYABORT; + } +#line 30236 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 306: +#line 3287 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::EXCEPTION); + if (unlikely((yyval.spcondvalue) == NULL)) + MYSQL_YYABORT; + } +#line 30248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 307: +#line 3297 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_resignal_statement(thd, NULL))) + MYSQL_YYABORT; + } +#line 30259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 308: +#line 3302 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue)))) + MYSQL_YYABORT; + } +#line 30270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 309: +#line 3310 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue))) + MYSQL_YYABORT; + } +#line 30281 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 310: +#line 3318 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.spcondvalue)= Lex->stmt_signal_value((yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 30292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 311: +#line 3323 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } +#line 30300 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 312: +#line 3328 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spcondvalue)= NULL; } +#line 30308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 313: +#line 3330 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } +#line 30316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 314: +#line 3335 "/home/buildbot/git/sql/sql_yacc.yy" + + { + thd->m_parser_state->m_yacc.m_set_signal_info.clear(); + } +#line 30326 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 316: +#line 3343 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Set_signal_information *info; + info= &thd->m_parser_state->m_yacc.m_set_signal_info; + int index= (int) (yyvsp[-2].diag_condition_item_name); + info->clear(); + info->m_item[index]= (yyvsp[0].item); + } +#line 30340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 317: +#line 3352 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Set_signal_information *info; + info= &thd->m_parser_state->m_yacc.m_set_signal_info; + int index= (int) (yyvsp[-2].diag_condition_item_name); + if (unlikely(info->m_item[index] != NULL)) + my_yyabort_error((ER_DUP_SIGNAL_SET, MYF(0), + Diag_condition_item_names[index].str)); + info->m_item[index]= (yyvsp[0].item); + } +#line 30356 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 318: +#line 3368 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item); } +#line 30364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 319: +#line 3370 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[0].item)->type() == Item::FUNC_ITEM) + { + Item_func *item= (Item_func*) (yyvsp[0].item); + if (unlikely(item->functype() == Item_func::SUSERVAR_FUNC)) + { + /* + Don't allow the following syntax: + SIGNAL/RESIGNAL ... + SET <signal condition item name> = @foo := expr + */ + thd->parse_error(); + MYSQL_YYABORT; + } + } + (yyval.item)= (yyvsp[0].item); + } +#line 30388 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 320: +#line 3388 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item); } +#line 30396 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 321: +#line 3394 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; } +#line 30404 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 322: +#line 3396 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; } +#line 30412 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 323: +#line 3398 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; } +#line 30420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 324: +#line 3400 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; } +#line 30428 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 325: +#line 3402 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; } +#line 30436 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 326: +#line 3404 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; } +#line 30444 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 327: +#line 3406 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; } +#line 30452 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 328: +#line 3408 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; } +#line 30460 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 329: +#line 3410 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; } +#line 30468 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 330: +#line 3412 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; } +#line 30476 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 331: +#line 3414 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; } +#line 30484 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 332: +#line 3416 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; } +#line 30492 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 333: +#line 3421 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_resignal_statement(thd, (yyvsp[-1].spcondvalue)))) + MYSQL_YYABORT; + } +#line 30503 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 334: +#line 3429 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Diagnostics_information *info= (yyvsp[0].diag_info); + + info->set_which_da((yyvsp[-2].diag_area)); + + Lex->sql_command= SQLCOM_GET_DIAGNOSTICS; + Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_get_diagnostics(info); + + if (unlikely(Lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 30521 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 335: +#line 3444 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } +#line 30529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 336: +#line 3446 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } +#line 30537 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 337: +#line 3451 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.diag_info)= new (thd->mem_root) Statement_information((yyvsp[0].stmt_info_list)); + if (unlikely((yyval.diag_info) == NULL)) + MYSQL_YYABORT; + } +#line 30549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 338: +#line 3457 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.diag_info)= new (thd->mem_root) Condition_information((yyvsp[-1].item), (yyvsp[0].cond_info_list)); + if (unlikely((yyval.diag_info) == NULL)) + MYSQL_YYABORT; + } +#line 30561 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 339: +#line 3466 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.stmt_info_list)= new (thd->mem_root) List<Statement_information_item>; + if (unlikely((yyval.stmt_info_list) == NULL) || + unlikely((yyval.stmt_info_list)->push_back((yyvsp[0].stmt_info_item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 30574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 340: +#line 3473 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-2].stmt_info_list)->push_back((yyvsp[0].stmt_info_item), thd->mem_root))) + MYSQL_YYABORT; + (yyval.stmt_info_list)= (yyvsp[-2].stmt_info_list); + } +#line 30586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 341: +#line 3482 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.stmt_info_item)= new (thd->mem_root) Statement_information_item((yyvsp[0].stmt_info_item_name), (yyvsp[-2].item)); + if (unlikely((yyval.stmt_info_item) == NULL)) + MYSQL_YYABORT; + } +#line 30598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 342: +#line 3491 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= thd->lex->create_item_for_sp_var(&(yyvsp[0].ident_cli), NULL)))) + MYSQL_YYABORT; + } +#line 30609 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 343: +#line 3496 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 30621 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 344: +#line 3505 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } +#line 30629 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 345: +#line 3507 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } +#line 30637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 346: +#line 3509 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.stmt_info_item_name)= Statement_information_item::ROW_COUNT; } +#line 30645 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 347: +#line 3518 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item); } +#line 30653 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 348: +#line 3523 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.cond_info_list)= new (thd->mem_root) List<Condition_information_item>; + if (unlikely((yyval.cond_info_list) == NULL) || + unlikely((yyval.cond_info_list)->push_back((yyvsp[0].cond_info_item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 30666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 349: +#line 3530 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-2].cond_info_list)->push_back((yyvsp[0].cond_info_item), thd->mem_root))) + MYSQL_YYABORT; + (yyval.cond_info_list)= (yyvsp[-2].cond_info_list); + } +#line 30678 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 350: +#line 3539 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.cond_info_item)= new (thd->mem_root) Condition_information_item((yyvsp[0].cond_info_item_name), (yyvsp[-2].item)); + if (unlikely((yyval.cond_info_item) == NULL)) + MYSQL_YYABORT; + } +#line 30690 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 351: +#line 3548 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::CLASS_ORIGIN; } +#line 30698 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 352: +#line 3550 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::SUBCLASS_ORIGIN; } +#line 30706 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 353: +#line 3552 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_CATALOG; } +#line 30714 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 354: +#line 3554 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_SCHEMA; } +#line 30722 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 355: +#line 3556 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_NAME; } +#line 30730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 356: +#line 3558 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::CATALOG_NAME; } +#line 30738 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 357: +#line 3560 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::SCHEMA_NAME; } +#line 30746 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 358: +#line 3562 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::TABLE_NAME; } +#line 30754 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 359: +#line 3564 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::COLUMN_NAME; } +#line 30762 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 360: +#line 3566 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::CURSOR_NAME; } +#line 30770 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 361: +#line 3568 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::MESSAGE_TEXT; } +#line 30778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 362: +#line 3570 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::MYSQL_ERRNO; } +#line 30786 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 363: +#line 3572 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.cond_info_item_name)= Condition_information_item::RETURNED_SQLSTATE; } +#line 30794 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 365: +#line 3578 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyval.ident_sys).copy_ident_cli(thd, &(yyvsp[0].kwd)))) + MYSQL_YYABORT; + } +#line 30805 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 366: +#line 3586 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* NOTE: field definition is filled in sp_decl section. */ + + LEX *lex= Lex; + sp_pcontext *spc= lex->spcont; + + if (unlikely(spc->find_variable(&(yyvsp[0].ident_sys), TRUE))) + my_yyabort_error((ER_SP_DUP_VAR, MYF(0), (yyvsp[0].ident_sys).str)); + spc->add_variable(thd, &(yyvsp[0].ident_sys)); + (yyval.num)= 1; + } +#line 30823 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 367: +#line 3598 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* NOTE: field definition is filled in sp_decl section. */ + + LEX *lex= Lex; + sp_pcontext *spc= lex->spcont; + + if (unlikely(spc->find_variable(&(yyvsp[0].ident_sys), TRUE))) + my_yyabort_error((ER_SP_DUP_VAR, MYF(0), (yyvsp[0].ident_sys).str)); + spc->add_variable(thd, &(yyvsp[0].ident_sys)); + (yyval.num)= (yyvsp[-2].num) + 1; + } +#line 30841 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 368: +#line 3613 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->maybe_start_compound_statement(thd))) + MYSQL_YYABORT; + Lex->sphead->new_cont_backpatch(NULL); + } +#line 30853 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 369: +#line 3619 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sphead->do_cont_backpatch(); } +#line 30861 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 370: +#line 3623 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + Lex_input_stream *lip= YYLIP; + + lex->sphead->reset_lex(thd); + /* + We should not push main select here, it will be done or not + done by the statement, we just provide only a new LEX for the + statement here as if it is start of parsing a new statement. + */ + lex->sphead->m_tmp_query= lip->get_tok_start(); + } +#line 30880 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 371: +#line 3636 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->sp_proc_stmt_statement_finalize(thd, yychar == YYEMPTY) || + Lex->sphead->restore_lex(thd)) + MYSQL_YYABORT; + } +#line 30892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 374: +#line 3651 "/home/buildbot/git/sql/sql_yacc.yy" + + { + sp_head *sp= (yyvsp[0].expr_lex)->sphead; + if (unlikely(sp->m_handler->add_instr_freturn(thd, sp, (yyvsp[0].expr_lex)->spcont, + (yyvsp[0].expr_lex)->get_item(), (yyvsp[0].expr_lex)))) + MYSQL_YYABORT; + } +#line 30905 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 375: +#line 3658 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + if (unlikely(sp->m_handler->add_instr_preturn(thd, sp, + lex->spcont))) + MYSQL_YYABORT; + } +#line 30919 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 376: +#line 3669 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_exit_statement(thd, NULL))) + MYSQL_YYABORT; + } +#line 30930 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 377: +#line 3674 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_exit_statement(thd, &(yyvsp[0].ident_sys), NULL))) + MYSQL_YYABORT; + } +#line 30941 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 378: +#line 3679 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].expr_lex)->sp_exit_statement(thd, (yyvsp[0].expr_lex)->get_item()))) + MYSQL_YYABORT; + } +#line 30952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 379: +#line 3684 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].expr_lex)->sp_exit_statement(thd, &(yyvsp[-2].ident_sys), (yyvsp[0].expr_lex)->get_item()))) + MYSQL_YYABORT; + } +#line 30963 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 380: +#line 3692 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_continue_statement(thd))) + MYSQL_YYABORT; + } +#line 30974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 381: +#line 3697 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_continue_statement(thd, &(yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 30985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 382: +#line 3702 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].expr_lex)->sp_continue_when_statement(thd))) + MYSQL_YYABORT; + } +#line 30996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 383: +#line 3707 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].expr_lex)->sp_continue_when_statement(thd, &(yyvsp[-2].ident_sys)))) + MYSQL_YYABORT; + } +#line 31007 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 384: +#line 3716 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_leave_statement(thd, &(yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 31018 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 385: +#line 3724 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_iterate_statement(thd, &(yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 31029 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 386: +#line 3732 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_goto_statement(thd, &(yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 31040 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 387: +#line 3740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->sphead); + if (unlikely(!((yyval.expr_lex)= new (thd->mem_root) + sp_expr_lex(thd, thd->lex)))) + MYSQL_YYABORT; + Lex->sphead->reset_lex(thd, (yyval.expr_lex)); + if (Lex->main_select_push(true)) + MYSQL_YYABORT; + } +#line 31056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 388: +#line 3750 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.expr_lex)= (yyvsp[-1].expr_lex); + (yyval.expr_lex)->sp_lex_in_use= true; + (yyval.expr_lex)->set_item((yyvsp[0].item)); + Lex->pop_select(); //min select + if (Lex->check_cte_dependencies_and_resolve_references()) + MYSQL_YYABORT; + if ((yyval.expr_lex)->sphead->restore_lex(thd)) + MYSQL_YYABORT; + } +#line 31073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 389: +#line 3764 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->sphead); + if (unlikely(!((yyval.assignment_lex)= new (thd->mem_root) + sp_assignment_lex(thd, thd->lex)))) + MYSQL_YYABORT; + } +#line 31086 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 390: +#line 3774 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(thd->free_list == NULL); + Lex->sphead->reset_lex(thd, (yyvsp[0].assignment_lex)); + if (Lex->main_select_push(true)) + MYSQL_YYABORT; + } +#line 31099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 391: +#line 3781 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT((yyvsp[-2].assignment_lex) == thd->lex); + (yyval.assignment_lex)= (yyvsp[-2].assignment_lex); + (yyval.assignment_lex)->sp_lex_in_use= true; + (yyval.assignment_lex)->set_item_and_free_list((yyvsp[0].item), thd->free_list); + thd->free_list= NULL; + Lex->pop_select(); //min select + if ((yyval.assignment_lex)->sphead->restore_lex(thd)) + MYSQL_YYABORT; + } +#line 31116 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 392: +#line 3795 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->reset_lex(thd, (yyvsp[0].assignment_lex)); + if (Lex->main_select_push(true)) + MYSQL_YYABORT; + Lex->current_select->parsing_place= FOR_LOOP_BOUND; + } +#line 31129 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 393: +#line 3802 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT((yyvsp[-2].assignment_lex) == thd->lex); + (yyval.assignment_lex)= (yyvsp[-2].assignment_lex); + (yyval.assignment_lex)->sp_lex_in_use= true; + (yyval.assignment_lex)->set_item_and_free_list((yyvsp[0].item), NULL); + Lex->pop_select(); //main select + if (unlikely((yyval.assignment_lex)->sphead->restore_lex(thd))) + MYSQL_YYABORT; + Lex->current_select->parsing_place= NO_MATTER; + } +#line 31146 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 394: +#line 3816 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.sp_assignment_lex_list)= new (thd->mem_root) List<sp_assignment_lex>))) + MYSQL_YYABORT; + (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); + } +#line 31158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 395: +#line 3822 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.sp_assignment_lex_list)= (yyvsp[-2].sp_assignment_lex_list); + (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); + } +#line 31169 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 396: +#line 3829 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_assignment_lex_list)= NULL; } +#line 31177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 397: +#line 3830 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.sp_assignment_lex_list)= (yyvsp[-1].sp_assignment_lex_list); } +#line 31185 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 401: +#line 3841 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_open_cursor(thd, &(yyvsp[-1].ident_sys), (yyvsp[0].sp_assignment_lex_list)))) + MYSQL_YYABORT; + } +#line 31196 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 402: +#line 3849 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) + MYSQL_YYABORT; + } +#line 31207 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 403: +#line 3854 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) + MYSQL_YYABORT; + } +#line 31218 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 404: +#line 3859 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) + MYSQL_YYABORT; + } +#line 31229 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 405: +#line 3866 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 31237 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 406: +#line 3868 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_add_agg_cfetch())) + MYSQL_YYABORT; + } +#line 31248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 407: +#line 3876 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + uint offset; + sp_instr_cclose *i; + + if (unlikely(!lex->spcont->find_cursor(&(yyvsp[0].ident_sys), &offset, false))) + my_yyabort_error((ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].ident_sys).str)); + i= new (thd->mem_root) + sp_instr_cclose(sp->instructions(), lex->spcont, offset); + if (unlikely(i == NULL) || + unlikely(sp->add_instr(i))) + MYSQL_YYABORT; + } +#line 31269 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 408: +#line 3894 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + sp_pcontext *spc= lex->spcont; + sp_variable *spv= likely(spc != NULL) + ? spc->find_variable(&(yyvsp[0].ident_sys), false) + : NULL; + + if (unlikely(!spv)) + my_yyabort_error((ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].ident_sys).str)); + + /* An SP local variable */ + sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); + i->add_to_varlist(spv); + } +#line 31291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 409: +#line 3910 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + sp_pcontext *spc= lex->spcont; + sp_variable *spv= likely(spc != NULL) + ? spc->find_variable(&(yyvsp[0].ident_sys), false) + : NULL; + + if (unlikely(!spv)) + my_yyabort_error((ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].ident_sys).str)); + + /* An SP local variable */ + sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); + i->add_to_varlist(spv); + } +#line 31313 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 410: +#line 3929 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-1].expr_lex)->sp_if_expr(thd))) + MYSQL_YYABORT; + } +#line 31324 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 411: +#line 3934 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-3].expr_lex)->sp_if_after_statements(thd))) + MYSQL_YYABORT; + } +#line 31335 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 412: +#line 3939 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + + lex->sphead->backpatch(lex->spcont->pop_label()); + } +#line 31347 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 417: +#line 3955 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->maybe_start_compound_statement(thd))) + MYSQL_YYABORT; + + /** + An example of the CASE statement in use is + <pre> + CREATE PROCEDURE proc_19194_simple(i int) + BEGIN + DECLARE str CHAR(10); + + CASE i + WHEN 1 THEN SET str="1"; + WHEN 2 THEN SET str="2"; + WHEN 3 THEN SET str="3"; + ELSE SET str="unknown"; + END CASE; + + SELECT str; + END + </pre> + The actions are used to generate the following code: + <pre> + SHOW PROCEDURE CODE proc_19194_simple; + Pos Instruction + 0 set str@1 NULL + 1 set_case_expr (12) 0 i@0 + 2 jump_if_not 5(12) (case_expr@0 = 1) + 3 set str@1 _latin1'1' + 4 jump 12 + 5 jump_if_not 8(12) (case_expr@0 = 2) + 6 set str@1 _latin1'2' + 7 jump 12 + 8 jump_if_not 11(12) (case_expr@0 = 3) + 9 set str@1 _latin1'3' + 10 jump 12 + 11 set str@1 _latin1'unknown' + 12 stmt 0 "SELECT str" + </pre> + */ + + Lex->sphead->new_cont_backpatch(NULL); + + /* + BACKPATCH: Creating target label for the jump to after END CASE + (instruction 12 in the example) + */ + Lex->spcont->push_label(thd, &empty_clex_str, Lex->sphead->instructions()); + } +#line 31403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 418: +#line 4008 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + BACKPATCH: Resolving forward jump from + "case_stmt_action_then" to after END CASE + (jump from instruction 4 to 12, 7 to 12 ... in the example) + */ + Lex->sphead->backpatch(Lex->spcont->pop_label()); + + if ((yyvsp[-3].num)) + Lex->spcont->pop_case_expr_id(); + + Lex->sphead->do_cont_backpatch(); + } +#line 31423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 419: +#line 4025 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].expr_lex)->case_stmt_action_expr())) + MYSQL_YYABORT; + } +#line 31434 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 420: +#line 4030 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 31442 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 421: +#line 4032 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 31450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 426: +#line 4047 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* Simple case: <caseval> = <whenval> */ + if (unlikely((yyvsp[0].expr_lex)->case_stmt_action_when(true))) + MYSQL_YYABORT; + } +#line 31462 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 427: +#line 4054 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->case_stmt_action_then())) + MYSQL_YYABORT; + } +#line 31473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 428: +#line 4062 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].expr_lex)->case_stmt_action_when(false))) + MYSQL_YYABORT; + } +#line 31484 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 429: +#line 4068 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->case_stmt_action_then())) + MYSQL_YYABORT; + } +#line 31495 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 430: +#line 4076 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_head *sp= lex->sphead; + uint ip= sp->instructions(); + sp_instr_error *i= new (thd->mem_root) + sp_instr_error(ip, lex->spcont, ER_SP_CASE_NOT_FOUND); + if (unlikely(i == NULL) || + unlikely(sp->add_instr(i))) + MYSQL_YYABORT; + } +#line 31512 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 432: +#line 4090 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= null_clex_str; } +#line 31520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 433: +#line 4091 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= (yyvsp[0].ident_sys); } +#line 31528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 434: +#line 4096 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 31536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 435: +#line 4097 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= -1; } +#line 31544 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 436: +#line 4102 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_for_loop_declarations(thd, &(yyval.for_loop), &(yyvsp[-1].ident_sys), (yyvsp[0].for_loop_bounds)))) + MYSQL_YYABORT; + } +#line 31555 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 437: +#line 4111 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.for_loop_bounds)= Lex_for_loop_bounds_intrange((yyvsp[-3].num), (yyvsp[-2].assignment_lex), (yyvsp[0].assignment_lex)); + } +#line 31565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 438: +#line 4115 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.for_loop_bounds).m_direction= (yyvsp[-1].num); + (yyval.for_loop_bounds).m_index= (yyvsp[0].assignment_lex); + (yyval.for_loop_bounds).m_target_bound= NULL; + (yyval.for_loop_bounds).m_implicit_cursor= false; + } +#line 31578 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 439: +#line 4122 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_for_loop_implicit_cursor_statement(thd, &(yyval.for_loop_bounds), + (yyvsp[-1].sp_cursor_stmt)))) + MYSQL_YYABORT; + } +#line 31590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 440: +#line 4131 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + uint ip= lex->sphead->instructions(); + sp_label *lab= lex->spcont->last_label(); /* Jumping back */ + sp_instr_jump *i= new (thd->mem_root) + sp_instr_jump(ip, lex->spcont, lab->ip); + if (unlikely(i == NULL) || + unlikely(lex->sphead->add_instr(i))) + MYSQL_YYABORT; + } +#line 31607 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 441: +#line 4145 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[-2].expr_lex)->sp_repeat_loop_finalize(thd)) + MYSQL_YYABORT; + } +#line 31618 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 442: +#line 4153 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_pop_loop_label(thd, &(yyvsp[0].lex_str)))) + MYSQL_YYABORT; + } +#line 31629 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 443: +#line 4161 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) + MYSQL_YYABORT; + } +#line 31640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 444: +#line 4166 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 31648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 445: +#line 4168 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) + MYSQL_YYABORT; + } +#line 31659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 446: +#line 4173 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 31667 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 447: +#line 4175 "/home/buildbot/git/sql/sql_yacc.yy" + + { + // See "The FOR LOOP statement" comments in sql_lex.cc + Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block + } +#line 31678 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 448: +#line 4180 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-3].lex_str)))) // The inner WHILE block + MYSQL_YYABORT; + if (unlikely(Lex->sp_for_loop_condition_test(thd, (yyvsp[0].for_loop)))) + MYSQL_YYABORT; + } +#line 31691 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 449: +#line 4187 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_for_loop_finalize(thd, (yyvsp[-2].for_loop)))) + MYSQL_YYABORT; + } +#line 31702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 450: +#line 4192 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-4].for_loop)))) + MYSQL_YYABORT; + } +#line 31713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 451: +#line 4197 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) + MYSQL_YYABORT; + } +#line 31724 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 452: +#line 4202 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 31732 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 453: +#line 4207 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_empty_label(thd))) + MYSQL_YYABORT; + } +#line 31743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 454: +#line 4212 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_pop_loop_empty_label(thd); + } +#line 31753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 455: +#line 4216 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_empty_label(thd))) + MYSQL_YYABORT; + } +#line 31764 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 456: +#line 4221 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_pop_loop_empty_label(thd); + } +#line 31774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 457: +#line 4225 "/home/buildbot/git/sql/sql_yacc.yy" + + { + // See "The FOR LOOP statement" comments in sql_lex.cc + if (unlikely(Lex->maybe_start_compound_statement(thd))) + MYSQL_YYABORT; + Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block + } +#line 31787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 458: +#line 4232 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_empty_label(thd))) // The inner WHILE block + MYSQL_YYABORT; + if (unlikely(Lex->sp_for_loop_condition_test(thd, (yyvsp[0].for_loop)))) + MYSQL_YYABORT; + } +#line 31800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 459: +#line 4239 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_for_loop_finalize(thd, (yyvsp[-2].for_loop)))) + MYSQL_YYABORT; + Lex->sp_pop_loop_empty_label(thd); // The inner WHILE block + if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-2].for_loop)))) + MYSQL_YYABORT; + } +#line 31814 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 460: +#line 4247 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_push_loop_empty_label(thd))) + MYSQL_YYABORT; + } +#line 31825 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 461: +#line 4252 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_pop_loop_empty_label(thd); + } +#line 31835 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 462: +#line 4259 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; } +#line 31843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 463: +#line 4261 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; } +#line 31851 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 464: +#line 4266 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->trg_chistics.event= TRG_EVENT_INSERT; } +#line 31859 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 465: +#line 4268 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->trg_chistics.event= TRG_EVENT_UPDATE; } +#line 31867 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 466: +#line 4270 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->trg_chistics.event= TRG_EVENT_DELETE; } +#line 31875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 470: +#line 4304 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 31883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 471: +#line 4306 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].ident_sys).str; + } +#line 31894 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 472: +#line 4316 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; + } +#line 31904 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 473: +#line 4322 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; + } +#line 31914 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 478: +#line 4345 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 31922 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 525: +#line 4439 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->data_file_name= (yyvsp[0].lex_str).str; + } +#line 31933 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 526: +#line 4447 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->undo_file_name= (yyvsp[0].lex_str).str; + } +#line 31944 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 527: +#line 4455 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->redo_file_name= (yyvsp[0].lex_str).str; + } +#line 31955 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 528: +#line 4463 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info= (new (thd->mem_root) + st_alter_tablespace()); + if (unlikely(lex->alter_tablespace_info == NULL)) + MYSQL_YYABORT; + lex->alter_tablespace_info->tablespace_name= (yyvsp[0].ident_sys).str; + lex->sql_command= SQLCOM_ALTER_TABLESPACE; + } +#line 31971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 529: +#line 4476 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info= (new (thd->mem_root) + st_alter_tablespace()); + if (unlikely(lex->alter_tablespace_info == NULL)) + MYSQL_YYABORT; + lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].ident_sys).str; + lex->sql_command= SQLCOM_ALTER_TABLESPACE; + } +#line 31987 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 530: +#line 4489 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY; + } +#line 31998 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 531: +#line 4494 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE; + } +#line 32009 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 532: +#line 4499 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE; + } +#line 32020 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 533: +#line 4507 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->initial_size= (yyvsp[0].ulonglong_number); + } +#line 32031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 534: +#line 4515 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->autoextend_size= (yyvsp[0].ulonglong_number); + } +#line 32042 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 535: +#line 4523 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->max_size= (yyvsp[0].ulonglong_number); + } +#line 32053 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 536: +#line 4531 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->extent_size= (yyvsp[0].ulonglong_number); + } +#line 32064 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 537: +#line 4539 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->undo_buffer_size= (yyvsp[0].ulonglong_number); + } +#line 32075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 538: +#line 4547 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->redo_buffer_size= (yyvsp[0].ulonglong_number); + } +#line 32086 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 539: +#line 4555 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)) + my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP")); + lex->alter_tablespace_info->nodegroup_id= (yyvsp[0].ulong_num); + } +#line 32099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 540: +#line 4565 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->alter_tablespace_info->ts_comment != NULL)) + my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT")); + lex->alter_tablespace_info->ts_comment= (yyvsp[0].lex_str).str; + } +#line 32112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 541: +#line 4575 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->alter_tablespace_info->storage_engine != NULL)) + my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE, MYF(0), + "STORAGE ENGINE")); + lex->alter_tablespace_info->storage_engine= (yyvsp[0].db_type); + } +#line 32126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 544: +#line 4591 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->wait_until_completed= TRUE; + } +#line 32137 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 545: +#line 4596 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(!(lex->alter_tablespace_info->wait_until_completed))) + my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT")); + lex->alter_tablespace_info->wait_until_completed= FALSE; + } +#line 32150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 546: +#line 4605 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulonglong_number)= (yyvsp[0].ulonglong_number);} +#line 32158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 547: +#line 4607 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[0].ident_sys).to_size_number(&(yyval.ulonglong_number))) + MYSQL_YYABORT; + } +#line 32169 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 548: +#line 4619 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->create_info.option_list= NULL; } +#line 32177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 549: +#line 4620 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32185 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 550: +#line 4621 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32193 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 551: +#line 4623 "/home/buildbot/git/sql/sql_yacc.yy" + + { + + Lex->create_info.add(DDL_options_st::OPT_LIKE); + TABLE_LIST *src_table= Lex->first_select_lex()-> + add_table_to_list(thd, (yyvsp[0].table), NULL, 0, TL_READ, MDL_SHARED_READ); + if (unlikely(! src_table)) + MYSQL_YYABORT; + /* CREATE TABLE ... LIKE is not allowed for views. */ + src_table->required_type= TABLE_TYPE_NORMAL; + } +#line 32210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 552: +#line 4636 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table)= (yyvsp[0].table); } +#line 32218 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 553: +#line 4637 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table)= (yyvsp[-1].table); } +#line 32226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 554: +#line 4641 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32234 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 556: +#line 4647 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->parsed_insert_select((yyvsp[0].select_lex_unit)->first_select())) + MYSQL_YYABORT; + } +#line 32245 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 557: +#line 4652 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *first_select= (yyvsp[-1].select_lex_unit)->first_select(); + (yyvsp[-1].select_lex_unit)->set_with_clause((yyvsp[-2].with_clause)); + (yyvsp[-2].with_clause)->attach_to(first_select); + if (Lex->parsed_insert_select(first_select)) + MYSQL_YYABORT; + } +#line 32259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 558: +#line 4663 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Remove all tables used in PARTITION clause from the global table + list. Partitioning with subqueries is not allowed anyway. + */ + TABLE_LIST *last_non_sel_table= Lex->create_last_non_select_table; + last_non_sel_table->next_global= 0; + Lex->query_tables_last= &last_non_sel_table->next_global; + } +#line 32275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 559: +#line 4699 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 561: +#line 4705 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->part_info= new (thd->mem_root) partition_info(); + if (unlikely(!lex->part_info)) + MYSQL_YYABORT; + if (lex->sql_command == SQLCOM_ALTER_TABLE) + { + lex->alter_info.partition_flags|= ALTER_PARTITION_INFO; + } + } +#line 32300 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 563: +#line 4720 "/home/buildbot/git/sql/sql_yacc.yy" + + { +#ifdef WITH_PARTITION_STORAGE_ENGINE + LEX_CSTRING partition_name={STRING_WITH_LEN("partition")}; + if (unlikely(!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))) + my_yyabort_error((ER_OPTION_PREVENTS_STATEMENT, MYF(0), + "--skip-partition")); +#else + my_yyabort_error((ER_FEATURE_DISABLED, MYF(0), "partitioning", + "--with-plugin-partition")); +#endif + } +#line 32318 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 564: +#line 4735 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Lex->part_info)) + { + thd->parse_error(ER_PARTITION_ENTRY_ERROR); + MYSQL_YYABORT; + } + if (Lex->main_select_push()) + MYSQL_YYABORT; + /* + We enter here when opening the frm file to translate + partition info string into part_info data structure. + */ + } +#line 32338 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 565: +#line 4749 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 32348 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 566: +#line 4756 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->safe_to_cache_query= 1; } +#line 32356 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 568: +#line 4762 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->list_of_part_fields= TRUE; + part_info->column_list= FALSE; + part_info->part_type= HASH_PARTITION; + } +#line 32369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 569: +#line 4769 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->part_type= HASH_PARTITION; } +#line 32377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 570: +#line 4770 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32385 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 571: +#line 4772 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->part_type= RANGE_PARTITION; } +#line 32393 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 572: +#line 4774 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->part_type= RANGE_PARTITION; } +#line 32401 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 573: +#line 4776 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= IN_PART_FUNC; + } +#line 32411 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 574: +#line 4780 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->part_info->part_type= LIST_PARTITION; + Select->parsing_place= NO_MATTER; + } +#line 32422 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 575: +#line 4785 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->part_type= LIST_PARTITION; } +#line 32430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 576: +#line 4787 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->part_info->vers_init_info(thd))) + MYSQL_YYABORT; + } +#line 32441 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 578: +#line 4795 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32449 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 579: +#line 4797 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->linear_hash_ind= TRUE;} +#line 32457 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 580: +#line 4802 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;} +#line 32465 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 581: +#line 4804 "/home/buildbot/git/sql/sql_yacc.yy" + + { + switch ((yyvsp[0].ulong_num)) { + case 1: + Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_51; + break; + case 2: + Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_55; + break; + default: + thd->parse_error(); + MYSQL_YYABORT; + } + } +#line 32485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 582: +#line 4820 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32493 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 583: +#line 4821 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32501 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 584: +#line 4825 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32509 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 585: +#line 4826 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32517 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 586: +#line 4831 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->num_columns++; + if (unlikely(part_info->part_field_list.push_back((yyvsp[0].ident_sys).str, + thd->mem_root))) + MYSQL_YYABORT; + if (unlikely(part_info->num_columns > MAX_REF_PARTS)) + my_yyabort_error((ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), + "list of partition fields")); + } +#line 32534 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 587: +#line 4845 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->column_list= TRUE; + part_info->list_of_part_fields= TRUE; + } +#line 32546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 588: +#line 4855 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->set_part_expr(thd, (yyvsp[-1].item), FALSE))) + MYSQL_YYABORT; + part_info->num_columns= 1; + part_info->column_list= FALSE; + } +#line 32560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 589: +#line 4866 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->part_info->set_part_expr(thd, (yyvsp[-1].item), TRUE))) + MYSQL_YYABORT; + } +#line 32571 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 590: +#line 4874 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32579 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 591: +#line 4876 "/home/buildbot/git/sql/sql_yacc.yy" + + { + uint num_parts= (yyvsp[0].ulong_num); + partition_info *part_info= Lex->part_info; + if (unlikely(num_parts == 0)) + my_yyabort_error((ER_NO_PARTS_ERROR, MYF(0), "partitions")); + + part_info->num_parts= num_parts; + part_info->use_default_num_partitions= FALSE; + } +#line 32595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 592: +#line 4888 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32603 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 593: +#line 4890 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->subpart_type= HASH_PARTITION; } +#line 32611 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 594: +#line 4891 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 595: +#line 4894 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->subpart_type= HASH_PARTITION; + part_info->list_of_subpart_fields= TRUE; + } +#line 32631 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 596: +#line 4899 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32639 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 597: +#line 4903 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 598: +#line 4904 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32655 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 599: +#line 4909 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->subpart_field_list.push_back((yyvsp[0].ident_sys).str, + thd->mem_root))) + MYSQL_YYABORT; + + if (unlikely(part_info->subpart_field_list.elements > MAX_REF_PARTS)) + my_yyabort_error((ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), + "list of subpartition fields")); + } +#line 32672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 600: +#line 4923 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Lex->safe_to_cache_query)) + { + thd->parse_error(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR); + MYSQL_YYABORT; + } + (yyval.item)=(yyvsp[0].item); + } +#line 32687 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 601: +#line 4934 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 602: +#line 4936 "/home/buildbot/git/sql/sql_yacc.yy" + + { + uint num_parts= (yyvsp[0].ulong_num); + LEX *lex= Lex; + if (unlikely(num_parts == 0)) + my_yyabort_error((ER_NO_PARTS_ERROR, MYF(0), "subpartitions")); + lex->part_info->num_subparts= num_parts; + lex->part_info->use_default_num_subpartitions= FALSE; + } +#line 32710 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 603: +#line 4948 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->part_type == RANGE_PARTITION)) + my_yyabort_error((ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), + "RANGE")); + if (unlikely(part_info->part_type == LIST_PARTITION)) + my_yyabort_error((ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), + "LIST")); + } +#line 32726 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 604: +#line 4958 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + uint count_curr_parts= part_info->partitions.elements; + if (part_info->num_parts != 0) + { + if (unlikely(part_info->num_parts != + count_curr_parts)) + { + thd->parse_error(ER_PARTITION_WRONG_NO_PART_ERROR); + MYSQL_YYABORT; + } + } + else if (count_curr_parts > 0) + { + part_info->num_parts= count_curr_parts; + } + part_info->count_curr_subparts= 0; + } +#line 32751 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 605: +#line 4979 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 606: +#line 4980 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 607: +#line 4985 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + partition_element *p_elem= new (thd->mem_root) partition_element(); + + if (unlikely(!p_elem) || + unlikely(part_info->partitions.push_back(p_elem, thd->mem_root))) + MYSQL_YYABORT; + + p_elem->part_state= PART_NORMAL; + p_elem->id= part_info->partitions.elements - 1; + part_info->curr_part_elem= p_elem; + part_info->current_partition= p_elem; + part_info->use_default_partitions= FALSE; + part_info->use_default_num_partitions= FALSE; + } +#line 32789 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 608: +#line 5004 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32797 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 609: +#line 5009 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + partition_element *p_elem= part_info->curr_part_elem; + if (unlikely(check_ident_length(&(yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + p_elem->partition_name= (yyvsp[0].ident_sys).str; + } +#line 32811 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 610: +#line 5020 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + partition_info *part_info= lex->part_info; + if (! lex->is_partition_management()) + { + if (unlikely(part_info->error_if_requires_values())) + MYSQL_YYABORT; + if (unlikely(part_info->part_type == VERSIONING_PARTITION)) + my_yyabort_error((ER_VERS_WRONG_PARTS, MYF(0), + lex->create_last_non_select_table-> + table_name.str)); + } + else + part_info->part_type= HASH_PARTITION; + } +#line 32833 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 611: +#line 5036 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + partition_info *part_info= lex->part_info; + if (! lex->is_partition_management()) + { + if (unlikely(part_info->part_type != RANGE_PARTITION)) + my_yyabort_error((ER_PARTITION_WRONG_VALUES_ERROR, MYF(0), + "RANGE", "LESS THAN")); + } + else + part_info->part_type= RANGE_PARTITION; + } +#line 32852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 612: +#line 5048 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 613: +#line 5050 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + partition_info *part_info= lex->part_info; + if (! lex->is_partition_management()) + { + if (unlikely(part_info->part_type != LIST_PARTITION)) + my_yyabort_error((ER_PARTITION_WRONG_VALUES_ERROR, MYF(0), + "LIST", "IN")); + } + else + part_info->part_type= LIST_PARTITION; + } +#line 32879 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 614: +#line 5062 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32887 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 615: +#line 5064 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->part_values_current(thd)) + MYSQL_YYABORT; + } +#line 32898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 616: +#line 5069 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->part_values_history(thd)) + MYSQL_YYABORT; + } +#line 32909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 617: +#line 5074 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + partition_info *part_info= lex->part_info; + if (! lex->is_partition_management()) + { + if (unlikely(part_info->part_type != LIST_PARTITION)) + my_yyabort_error((ER_PARTITION_WRONG_VALUES_ERROR, MYF(0), + "LIST", "DEFAULT")); + } + else + part_info->part_type= LIST_PARTITION; + if (unlikely(part_info->init_column_part(thd))) + MYSQL_YYABORT; + if (unlikely(part_info->add_max_value(thd))) + MYSQL_YYABORT; + } +#line 32932 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 618: +#line 5094 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + + if (unlikely(part_info->num_columns && + part_info->num_columns != 1U)) + { + part_info->print_debug("Kilroy II", NULL); + thd->parse_error(ER_PARTITION_COLUMN_LIST_ERROR); + MYSQL_YYABORT; + } + else + part_info->num_columns= 1U; + if (unlikely(part_info->init_column_part(thd))) + MYSQL_YYABORT; + if (unlikely(part_info->add_max_value(thd))) + MYSQL_YYABORT; + } +#line 32956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 619: +#line 5111 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 32964 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 620: +#line 5116 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + partition_info *part_info= lex->part_info; + part_info->print_debug("part_values_in: part_value_item", NULL); + + if (part_info->num_columns != 1U) + { + if (unlikely(!lex->is_partition_management() || + part_info->num_columns == 0 || + part_info->num_columns > MAX_REF_PARTS)) + { + part_info->print_debug("Kilroy III", NULL); + thd->parse_error(ER_PARTITION_COLUMN_LIST_ERROR); + MYSQL_YYABORT; + } + /* + Reorganize the current large array into a list of small + arrays with one entry in each array. This can happen + in the first partition of an ALTER TABLE statement where + we ADD or REORGANIZE partitions. Also can only happen + for LIST partitions. + */ + if (unlikely(part_info->reorganize_into_single_field_col_val(thd))) + MYSQL_YYABORT; + } + } +#line 32997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 621: +#line 5143 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->num_columns < 2U)) + { + thd->parse_error(ER_ROW_SINGLE_PARTITION_FIELD_ERROR); + MYSQL_YYABORT; + } + } +#line 33012 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 622: +#line 5154 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33020 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 623: +#line 5155 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33028 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 624: +#line 5160 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->print_debug("( part_value_item", NULL); + /* Initialisation code needed for each list of value expressions */ + if (unlikely(!(part_info->part_type == LIST_PARTITION && + part_info->num_columns == 1U) && + part_info->init_column_part(thd))) + MYSQL_YYABORT; + } +#line 33044 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 625: +#line 5169 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33052 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 626: +#line 5171 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->print_debug(") part_value_item", NULL); + if (part_info->num_columns == 0) + part_info->num_columns= part_info->curr_list_object; + if (unlikely(part_info->num_columns != part_info->curr_list_object)) + { + /* + All value items lists must be of equal length, in some cases + which is covered by the above if-statement we don't know yet + how many columns is in the partition so the assignment above + ensures that we only report errors when we know we have an + error. + */ + part_info->print_debug("Kilroy I", NULL); + thd->parse_error(ER_PARTITION_COLUMN_LIST_ERROR); + MYSQL_YYABORT; + } + part_info->curr_list_object= 0; + } +#line 33079 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 627: +#line 5194 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 628: +#line 5195 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33095 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 629: +#line 5200 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->part_type == LIST_PARTITION)) + { + thd->parse_error(ER_MAXVALUE_IN_VALUES_IN); + MYSQL_YYABORT; + } + if (unlikely(part_info->add_max_value(thd))) + MYSQL_YYABORT; + } +#line 33112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 630: +#line 5211 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + partition_info *part_info= lex->part_info; + Item *part_expr= (yyvsp[0].item); + + if (unlikely(!lex->safe_to_cache_query)) + { + thd->parse_error(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR); + MYSQL_YYABORT; + } + if (unlikely(part_info->add_column_list_value(thd, part_expr))) + MYSQL_YYABORT; + } +#line 33132 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 631: +#line 5229 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->num_subparts != 0 && + !part_info->use_default_subpartitions)) + { + /* + We come here when we have defined subpartitions on the first + partition but not on all the subsequent partitions. + */ + thd->parse_error(ER_PARTITION_WRONG_NO_SUBPART_ERROR); + MYSQL_YYABORT; + } + } +#line 33152 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 632: +#line 5243 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (part_info->num_subparts != 0) + { + if (unlikely(part_info->num_subparts != + part_info->count_curr_subparts)) + { + thd->parse_error(ER_PARTITION_WRONG_NO_SUBPART_ERROR); + MYSQL_YYABORT; + } + } + else if (part_info->count_curr_subparts > 0) + { + if (unlikely(part_info->partitions.elements > 1)) + { + thd->parse_error(ER_PARTITION_WRONG_NO_SUBPART_ERROR); + MYSQL_YYABORT; + } + part_info->num_subparts= part_info->count_curr_subparts; + } + part_info->count_curr_subparts= 0; + } +#line 33181 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 633: +#line 5268 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33189 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 634: +#line 5269 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33197 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 635: +#line 5274 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + partition_element *curr_part= part_info->current_partition; + partition_element *sub_p_elem= new (thd->mem_root) + partition_element(curr_part); + if (unlikely(part_info->use_default_subpartitions && + part_info->partitions.elements >= 2)) + { + /* + create table t1 (a int) + partition by list (a) subpartition by hash (a) + (partition p0 values in (1), + partition p1 values in (2) subpartition sp11); + causes use to arrive since we are on the second + partition, but still use_default_subpartitions + is set. When we come here we're processing at least + the second partition (the current partition processed + have already been put into the partitions list. + */ + thd->parse_error(ER_PARTITION_WRONG_NO_SUBPART_ERROR); + MYSQL_YYABORT; + } + if (unlikely(!sub_p_elem) || + unlikely(curr_part->subpartitions.push_back(sub_p_elem, thd->mem_root))) + MYSQL_YYABORT; + + sub_p_elem->id= curr_part->subpartitions.elements - 1; + part_info->curr_part_elem= sub_p_elem; + part_info->use_default_subpartitions= FALSE; + part_info->use_default_num_subpartitions= FALSE; + part_info->count_curr_subparts++; + } +#line 33236 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 636: +#line 5306 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33244 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 637: +#line 5311 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(check_ident_length(&(yyvsp[0].lex_str)))) + MYSQL_YYABORT; + Lex->part_info->curr_part_elem->partition_name= (yyvsp[0].lex_str).str; + } +#line 33256 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 638: +#line 5319 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33264 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 639: +#line 5320 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33272 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 640: +#line 5324 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33280 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 641: +#line 5325 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33288 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 642: +#line 5330 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[0].lex_str).str; } +#line 33296 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 643: +#line 5332 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->curr_part_elem->engine_type= (yyvsp[0].db_type); + part_info->default_engine_type= (yyvsp[0].db_type); + } +#line 33308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 644: +#line 5338 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->part_info->curr_part_elem->connect_string.str= (yyvsp[0].lex_str).str; + lex->part_info->curr_part_elem->connect_string.length= (yyvsp[0].lex_str).length; + } +#line 33320 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 645: +#line 5344 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); } +#line 33328 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 646: +#line 5346 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[0].ulonglong_number); } +#line 33336 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 647: +#line 5348 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[0].ulonglong_number); } +#line 33344 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 648: +#line 5350 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[0].lex_str).str; } +#line 33352 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 649: +#line 5352 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[0].lex_str).str; } +#line 33360 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 650: +#line 5354 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; } +#line 33368 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 651: +#line 5358 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33376 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 652: +#line 5360 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + const char *table_name= Lex->create_last_non_select_table->table_name.str; + if (unlikely(part_info->vers_set_interval(thd, (yyvsp[-2].item), (yyvsp[-1].interval), (yyvsp[0].item), table_name))) + MYSQL_YYABORT; + } +#line 33389 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 653: +#line 5367 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + if (unlikely(part_info->vers_set_limit((yyvsp[0].ulonglong_number)))) + { + my_error(ER_PART_WRONG_VALUE, MYF(0), + Lex->create_last_non_select_table->table_name.str, + "LIMIT"); + MYSQL_YYABORT; + } + } +#line 33406 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 654: +#line 5382 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= NULL; + } +#line 33416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 655: +#line 5386 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (yyvsp[0].item); + } +#line 33426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 656: +#line 5396 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33434 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 657: +#line 5397 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33442 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 658: +#line 5401 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 659: +#line 5402 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33458 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 660: +#line 5406 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 661: +#line 5407 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33474 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 662: +#line 5411 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33482 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 663: +#line 5412 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 33490 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 664: +#line 5414 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.schema_comment= thd->make_clex_string((yyvsp[0].lex_str)); + Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; + } +#line 33501 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 665: +#line 5422 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->check_exists= FALSE; + } +#line 33511 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 666: +#line 5426 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->check_exists= TRUE; + } +#line 33521 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 667: +#line 5433 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.object_ddl_options).init(); + } +#line 33531 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 668: +#line 5437 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_NOT_EXISTS); + } +#line 33541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 669: +#line 5444 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.object_ddl_options).init(); + } +#line 33551 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 670: +#line 5448 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.object_ddl_options).set(DDL_options_st::OPT_OR_REPLACE); + } +#line 33561 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 678: +#line 5471 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (!lex->m_sql_cmd) + { + DBUG_ASSERT(lex->sql_command == SQLCOM_ALTER_TABLE); + if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_table())) + MYSQL_YYABORT; + } + Storage_engine_name *opt= + lex->m_sql_cmd->option_storage_engine_name(); + DBUG_ASSERT(opt); // Expect a proper Sql_cmd + *opt= Storage_engine_name((yyvsp[0].lex_str)); + lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; + } +#line 33582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 679: +#line 5486 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.max_rows= (yyvsp[0].ulonglong_number); + Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS; + } +#line 33593 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 680: +#line 5491 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.min_rows= (yyvsp[0].ulonglong_number); + Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS; + } +#line 33604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 681: +#line 5496 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.avg_row_length=(yyvsp[0].ulong_num); + Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH; + } +#line 33615 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 682: +#line 5501 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.password=(yyvsp[0].lex_str).str; + Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD; + } +#line 33626 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 683: +#line 5506 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.comment=(yyvsp[0].lex_str); + Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; + } +#line 33637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 684: +#line 5511 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.auto_increment_value=(yyvsp[0].ulonglong_number); + Lex->create_info.used_fields|= HA_CREATE_USED_AUTO; + } +#line 33648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 685: +#line 5516 "/home/buildbot/git/sql/sql_yacc.yy" + + { + switch((yyvsp[0].ulong_num)) { + case 0: + Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS; + break; + case 1: + Lex->create_info.table_options|= HA_OPTION_PACK_KEYS; + break; + default: + thd->parse_error(); + MYSQL_YYABORT; + } + Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; + } +#line 33669 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 686: +#line 5531 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.table_options&= + ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS); + Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; + } +#line 33681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 687: +#line 5537 "/home/buildbot/git/sql/sql_yacc.yy" + + { + switch((yyvsp[0].ulong_num)) { + case 0: + Lex->create_info.stats_auto_recalc= HA_STATS_AUTO_RECALC_OFF; + break; + case 1: + Lex->create_info.stats_auto_recalc= HA_STATS_AUTO_RECALC_ON; + break; + default: + thd->parse_error(); + MYSQL_YYABORT; + } + Lex->create_info.used_fields|= HA_CREATE_USED_STATS_AUTO_RECALC; + } +#line 33702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 688: +#line 5552 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.stats_auto_recalc= HA_STATS_AUTO_RECALC_DEFAULT; + Lex->create_info.used_fields|= HA_CREATE_USED_STATS_AUTO_RECALC; + } +#line 33713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 689: +#line 5557 "/home/buildbot/git/sql/sql_yacc.yy" + + { + switch((yyvsp[0].ulong_num)) { + case 0: + Lex->create_info.table_options|= HA_OPTION_NO_STATS_PERSISTENT; + break; + case 1: + Lex->create_info.table_options|= HA_OPTION_STATS_PERSISTENT; + break; + default: + thd->parse_error(); + MYSQL_YYABORT; + } + Lex->create_info.used_fields|= HA_CREATE_USED_STATS_PERSISTENT; + } +#line 33734 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 690: +#line 5572 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.table_options&= + ~(HA_OPTION_STATS_PERSISTENT | HA_OPTION_NO_STATS_PERSISTENT); + Lex->create_info.used_fields|= HA_CREATE_USED_STATS_PERSISTENT; + } +#line 33746 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 691: +#line 5578 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* From user point of view STATS_SAMPLE_PAGES can be specified as + STATS_SAMPLE_PAGES=N (where 0<N<=65535, it does not make sense to + scan 0 pages) or STATS_SAMPLE_PAGES=default. Internally we record + =default as 0. See create_frm() in sql/table.cc, we use only two + bytes for stats_sample_pages and this is why we do not allow + larger values. 65535 pages, 16kb each means to sample 1GB, which + is impractical. If at some point this needs to be extended, then + we can store the higher bits from stats_sample_pages in .frm too. */ + if (unlikely((yyvsp[0].ulong_num) == 0 || (yyvsp[0].ulong_num) > 0xffff)) + { + thd->parse_error(); + MYSQL_YYABORT; + } + Lex->create_info.stats_sample_pages=(yyvsp[0].ulong_num); + Lex->create_info.used_fields|= HA_CREATE_USED_STATS_SAMPLE_PAGES; + } +#line 33770 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 692: +#line 5596 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.stats_sample_pages=0; + Lex->create_info.used_fields|= HA_CREATE_USED_STATS_SAMPLE_PAGES; + } +#line 33781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 693: +#line 5601 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; + Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; + } +#line 33792 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 694: +#line 5606 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; + Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; + } +#line 33803 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 695: +#line 5611 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.used_fields|= HA_CREATE_USED_PAGE_CHECKSUM; + Lex->create_info.page_checksum= (yyvsp[0].choice); + } +#line 33814 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 696: +#line 5616 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; + Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE; + } +#line 33825 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 697: +#line 5621 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.row_type= (yyvsp[0].row_type); + Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT; + } +#line 33836 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 698: +#line 5626 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->first_select_lex()->table_list.save_and_clear(&Lex->save_list); + } +#line 33846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 699: +#line 5630 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Move the union list to the merge_list and exclude its tables + from the global list. + */ + LEX *lex=Lex; + lex->create_info.merge_list= lex->first_select_lex()->table_list.first; + lex->first_select_lex()->table_list= lex->save_list; + /* + When excluding union list from the global list we assume that + elements of the former immediately follow elements which represent + table being created/altered and parent tables. + */ + TABLE_LIST *last_non_sel_table= lex->create_last_non_select_table; + DBUG_ASSERT(last_non_sel_table->next_global == + lex->create_info.merge_list); + last_non_sel_table->next_global= 0; + Lex->query_tables_last= &last_non_sel_table->next_global; + + lex->create_info.used_fields|= HA_CREATE_USED_UNION; + } +#line 33874 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 702: +#line 5654 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.merge_insert_method= (yyvsp[0].ulong_num); + Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD; + } +#line 33885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 703: +#line 5659 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.data_file_name= (yyvsp[0].lex_str).str; + Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; + } +#line 33896 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 704: +#line 5664 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.index_file_name= (yyvsp[0].lex_str).str; + Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; + } +#line 33907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 705: +#line 5669 "/home/buildbot/git/sql/sql_yacc.yy" + + {Lex->create_info.tablespace= (yyvsp[0].ident_sys).str;} +#line 33915 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 706: +#line 5671 "/home/buildbot/git/sql/sql_yacc.yy" + + {Lex->create_info.storage_media= HA_SM_DISK;} +#line 33923 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 707: +#line 5673 "/home/buildbot/git/sql/sql_yacc.yy" + + {Lex->create_info.storage_media= HA_SM_MEMORY;} +#line 33931 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 708: +#line 5675 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.connect_string.str= (yyvsp[0].lex_str).str; + Lex->create_info.connect_string.length= (yyvsp[0].lex_str).length; + Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; + } +#line 33943 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 709: +#line 5681 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE; + Lex->create_info.key_block_size= (yyvsp[0].ulong_num); + } +#line 33954 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 710: +#line 5686 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL; + Lex->create_info.transactional= (yyvsp[0].choice); + } +#line 33965 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 711: +#line 5691 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) + my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].lex_str), true, + &Lex->create_info.option_list, + &Lex->option_list_last); + } +#line 33980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 712: +#line 5700 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) + my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), false, + &Lex->create_info.option_list, + &Lex->option_list_last); + } +#line 33995 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 713: +#line 5709 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->create_info.option_list, + &Lex->option_list_last, thd->mem_root); + } +#line 34007 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 714: +#line 5715 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), &Lex->create_info.option_list, + &Lex->option_list_last); + } +#line 34019 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 715: +#line 5721 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.used_fields|= HA_CREATE_USED_SEQUENCE; + Lex->create_info.sequence= ((yyvsp[0].choice) == HA_CHOICE_YES); + } +#line 34030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 719: +#line 5735 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.options & HA_LEX_CREATE_TMP_TABLE)) + { + if (DBUG_EVALUATE_IF("sysvers_force", 0, 1)) + { + my_error(ER_VERS_NOT_SUPPORTED, MYF(0), "CREATE TEMPORARY TABLE"); + MYSQL_YYABORT; + } + } + else + { + Lex->alter_info.flags|= ALTER_ADD_SYSTEM_VERSIONING; + Lex->create_info.options|= HA_VERSIONED_TABLE; + } + } +#line 34052 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 720: +#line 5754 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->create_info.add_table_option_default_charset((yyvsp[0].charset)))) + MYSQL_YYABORT; + } +#line 34063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 721: +#line 5762 "/home/buildbot/git/sql/sql_yacc.yy" + + { + HA_CREATE_INFO *cinfo= &Lex->create_info; + if (unlikely((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) && + cinfo->default_table_charset && (yyvsp[0].charset) && + !((yyvsp[0].charset)= merge_charset_and_collation(cinfo->default_table_charset, + (yyvsp[0].charset))))) + MYSQL_YYABORT; + + Lex->create_info.default_table_charset= (yyvsp[0].charset); + Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; + } +#line 34081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 722: +#line 5777 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Storage_engine_name((yyvsp[0].lex_str)). + resolve_storage_engine_with_error(thd, &(yyval.db_type), + thd->lex->create_info.tmp_table())) + MYSQL_YYABORT; + } +#line 34094 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 723: +#line 5787 "/home/buildbot/git/sql/sql_yacc.yy" + + { + plugin_ref plugin; + if (likely((plugin= ha_resolve_by_name(thd, &(yyvsp[0].lex_str), false)))) + (yyval.db_type)= plugin_hton(plugin); + else + my_yyabort_error((ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str)); + } +#line 34108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 724: +#line 5797 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_DEFAULT; } +#line 34116 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 725: +#line 5798 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_FIXED; } +#line 34124 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 726: +#line 5799 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_DYNAMIC; } +#line 34132 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 727: +#line 5800 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_COMPRESSED; } +#line 34140 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 728: +#line 5801 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_REDUNDANT; } +#line 34148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 729: +#line 5802 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_COMPACT; } +#line 34156 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 730: +#line 5803 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.row_type)= ROW_TYPE_PAGE; } +#line 34164 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 731: +#line 5807 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= MERGE_INSERT_DISABLED; } +#line 34172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 732: +#line 5808 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; } +#line 34180 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 733: +#line 5809 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; } +#line 34188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 734: +#line 5813 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.num) = (int) STRING_RESULT; } +#line 34196 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 735: +#line 5814 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.num) = (int) REAL_RESULT; } +#line 34204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 736: +#line 5815 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.num) = (int) DECIMAL_RESULT; } +#line 34212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 737: +#line 5816 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.num) = (int) INT_RESULT; } +#line 34220 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 738: +#line 5822 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_last_non_select_table= Lex->last_table(); + } +#line 34230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 739: +#line 5829 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_last_non_select_table= Lex->last_table(); + } +#line 34240 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 742: +#line 5840 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 746: +#line 5844 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34256 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 747: +#line 5849 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.create_field)= (yyvsp[0].create_field); } +#line 34264 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 748: +#line 5851 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_column_foreign_key(&((yyvsp[-2].create_field)->field_name), &(yyvsp[-1].lex_str), + (yyvsp[0].table), DDL_options()))) + MYSQL_YYABORT; + (yyval.create_field)= (yyvsp[-2].create_field); + } +#line 34277 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 749: +#line 5861 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_list= NULL; + if (unlikely(Lex->add_key(Key::MULTIPLE, &(yyvsp[-1].lex_str), (yyvsp[0].key_alg), (yyvsp[-2].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 750: +#line 5866 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34297 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 751: +#line 5868 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_list= NULL; + if (unlikely(Lex->add_key(Key::MULTIPLE, &(yyvsp[-2].ident_sys), (yyvsp[0].key_alg), (yyvsp[-3].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34309 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 752: +#line 5873 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34317 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 753: +#line 5875 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_list= NULL; + if (unlikely(Lex->add_key((yyvsp[-3].key_type), &(yyvsp[0].lex_str), HA_KEY_ALG_UNDEF, (yyvsp[-1].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 754: +#line 5880 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34337 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 755: +#line 5882 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_list= NULL; + if (unlikely(Lex->add_key((yyvsp[-3].key_type), &(yyvsp[0].lex_str), HA_KEY_ALG_UNDEF, (yyvsp[-1].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34349 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 756: +#line 5887 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 757: +#line 5891 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_list= NULL; + if (unlikely(Lex->add_key((yyvsp[-3].key_type), (yyvsp[-1].lex_str).str ? &(yyvsp[-1].lex_str) : &(yyvsp[-4].lex_str), (yyvsp[0].key_alg), (yyvsp[-2].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 758: +#line 5896 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 759: +#line 5899 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_list= NULL; + if (unlikely(Lex->add_key((yyvsp[-4].key_type), (yyvsp[-2].ident_sys).str ? &(yyvsp[-2].ident_sys) : &(yyvsp[-5].lex_str), (yyvsp[0].key_alg), (yyvsp[-3].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34389 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 760: +#line 5904 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34397 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 761: +#line 5906 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->check_add_key((yyvsp[-1].object_ddl_options))) || + unlikely(!(Lex->last_key= (new (thd->mem_root) + Key(Key::MULTIPLE, + (yyvsp[-4].lex_str).str ? &(yyvsp[-4].lex_str) : &(yyvsp[0].lex_str), + HA_KEY_ALG_UNDEF, true, (yyvsp[-1].object_ddl_options)))))) + MYSQL_YYABORT; + Lex->option_list= NULL; + } +#line 34413 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 762: +#line 5916 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_table_foreign_key((yyvsp[-5].lex_str).str ? &(yyvsp[-5].lex_str) : &(yyvsp[-9].lex_str), + (yyvsp[-9].lex_str).str ? &(yyvsp[-9].lex_str) : &(yyvsp[-5].lex_str), (yyvsp[0].table), (yyvsp[-6].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 34425 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 763: +#line 5925 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->add_constraint((yyvsp[-1].lex_str), (yyvsp[0].virtual_column), FALSE); + } +#line 34435 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 764: +#line 5933 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Vers_parse_info &info= Lex->vers_get_info(); + info.set_period((yyvsp[-3].ident_sys), (yyvsp[-1].ident_sys)); + } +#line 34446 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 765: +#line 5941 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->add_period((yyvsp[-5].ident_sys), (yyvsp[-3].ident_sys), (yyvsp[-1].ident_sys))) + MYSQL_YYABORT; + } +#line 34457 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 766: +#line 5948 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.virtual_column)= (Virtual_column_info*) 0; } +#line 34465 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 767: +#line 5949 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.virtual_column)= (yyvsp[0].virtual_column);} +#line 34473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 768: +#line 5954 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Virtual_column_info *v= add_virtual_expression(thd, (yyvsp[-1].item)); + if (unlikely(!v)) + MYSQL_YYABORT; + (yyval.virtual_column)= v; + } +#line 34486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 769: +#line 5963 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 770: +#line 5964 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 771: +#line 5968 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= null_clex_str; } +#line 34510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 772: +#line 5969 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= (yyvsp[0].lex_str); } +#line 34518 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 773: +#line 5973 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 34526 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 774: +#line 5978 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Create_field *f= new (thd->mem_root) Create_field(); + + if (unlikely(check_string_char_length(&(yyvsp[0].lex_str), 0, NAME_CHAR_LEN, + system_charset_info, 1))) + my_yyabort_error((ER_TOO_LONG_IDENT, MYF(0), (yyvsp[0].lex_str).str)); + + if (unlikely(!f)) + MYSQL_YYABORT; + + lex->init_last_field(f, &(yyvsp[0].lex_str), NULL); + (yyval.create_field)= f; + lex->parsing_options.lookup_keywords_after_qualifier= true; + } +#line 34548 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 775: +#line 5994 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->parsing_options.lookup_keywords_after_qualifier= false; + (yyval.create_field)= (yyvsp[-2].create_field); + + (yyval.create_field)->check_constraint= (yyvsp[0].virtual_column); + + if (unlikely((yyval.create_field)->check(thd))) + MYSQL_YYABORT; + + lex->alter_info.create_list.push_back((yyval.create_field), thd->mem_root); + + (yyval.create_field)->create_if_not_exists= Lex->check_exists; + if ((yyval.create_field)->flags & PRI_KEY_FLAG) + lex->add_key_to_list(&(yyvsp[-3].lex_str), Key::PRIMARY, lex->check_exists); + else if ((yyval.create_field)->flags & UNIQUE_KEY_FLAG) + lex->add_key_to_list(&(yyvsp[-3].lex_str), Key::UNIQUE, lex->check_exists); + } +#line 34573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 776: +#line 6016 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->set_attributes(thd, (yyvsp[0].Lex_field_type), Lex->charset, + COLUMN_DEFINITION_TABLE_FIELD); + } +#line 34584 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 778: +#line 6022 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->set_handler(&type_handler_ulonglong); + Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG + | UNSIGNED_FLAG | UNIQUE_KEY_FLAG; + } +#line 34596 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 780: +#line 6031 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 781: +#line 6032 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34612 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 782: +#line 6036 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34620 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 784: +#line 6041 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34628 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 785: +#line 6042 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34636 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 786: +#line 6046 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34644 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 788: +#line 6051 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 34652 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 792: +#line 6056 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->vcol_info= (yyvsp[0].virtual_column); + Lex->last_field->flags&= ~NOT_NULL_FLAG; // undo automatic NOT NULL for timestamps + } +#line 34663 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 794: +#line 6062 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->last_field_generated_always_as_row_start()) + MYSQL_YYABORT; + } +#line 34674 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 795: +#line 6067 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->last_field_generated_always_as_row_end()) + MYSQL_YYABORT; + } +#line 34685 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 796: +#line 6074 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34693 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 797: +#line 6075 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34701 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 798: +#line 6080 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->vcol_info->set_stored_in_db_flag(FALSE); + } +#line 34711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 799: +#line 6084 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->vcol_info->set_stored_in_db_flag(FALSE); + } +#line 34721 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 800: +#line 6088 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->vcol_info->set_stored_in_db_flag(TRUE); + } +#line 34731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 801: +#line 6092 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->vcol_info->set_stored_in_db_flag(TRUE); + } +#line 34741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 802: +#line 6098 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 803: +#line 6099 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34757 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 804: +#line 6103 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 34765 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 806: +#line 6109 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->last_field->flags|= UNIQUE_KEY_FLAG; + lex->alter_info.flags|= ALTER_ADD_INDEX; + } +#line 34777 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 807: +#line 6115 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->last_field->flags|= UNIQUE_KEY_FLAG; + lex->alter_info.flags|= ALTER_ADD_INDEX; + } +#line 34789 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 808: +#line 6120 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->comment= (yyvsp[0].lex_str); } +#line 34797 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 809: +#line 6122 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->invisible= INVISIBLE_USER; + } +#line 34807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 810: +#line 6129 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + "PARSE_VCOL_EXPR" can only be used by the SQL server + when reading a '*.frm' file. + Prevent the end user from invoking this command. + */ + MYSQL_YYABORT_UNLESS(Lex->parse_vcol_expr); + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 34824 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 811: +#line 6140 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Virtual_column_info *v= add_virtual_expression(thd, (yyvsp[0].item)); + if (unlikely(!v)) + MYSQL_YYABORT; + Lex->last_field->vcol_info= v; + Lex->pop_select(); //main select + } +#line 34838 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 813: +#line 6152 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[0].item_list)->push_front((yyvsp[-2].item), thd->mem_root); + (yyval.item)= new (thd->mem_root) Item_row(thd, *(yyvsp[0].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 34851 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 814: +#line 6162 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Virtual_column_info *v= + add_virtual_expression(thd, (yyvsp[-1].item)); + if (unlikely(!v)) + MYSQL_YYABORT; + (yyval.virtual_column)= v; + } +#line 34865 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 815: +#line 6170 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item; + if (!(item= new (thd->mem_root) Item_singlerow_subselect(thd, (yyvsp[0].select_lex)))) + MYSQL_YYABORT; + Virtual_column_info *v= add_virtual_expression(thd, item); + if (unlikely(!v)) + MYSQL_YYABORT; + (yyval.virtual_column)= v; + } +#line 34881 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 819: +#line 6186 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.virtual_column)= add_virtual_expression(thd, (yyvsp[0].item))))) + MYSQL_YYABORT; + } +#line 34892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 820: +#line 6193 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->map_data_type(Lex_ident_sys(), &((yyval.Lex_field_type)= (yyvsp[0].Lex_field_type))); + } +#line 34902 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 821: +#line 6200 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->map_data_type(Lex_ident_sys(), &((yyval.Lex_field_type)= (yyvsp[0].Lex_field_type))); + } +#line 34912 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 822: +#line 6204 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->map_data_type((yyvsp[-2].ident_sys), &((yyval.Lex_field_type)= (yyvsp[0].Lex_field_type)))) + MYSQL_YYABORT; + } +#line 34923 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 828: +#line 6217 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->set_field_type_udt(&(yyval.Lex_field_type), (yyvsp[-2].ident_sys), (yyvsp[-1].Lex_length_and_dec))) + MYSQL_YYABORT; + } +#line 34934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 829: +#line 6222 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->set_field_type_udt(&(yyval.Lex_field_type), (yyvsp[-2].kwd), (yyvsp[-1].Lex_length_and_dec))) + MYSQL_YYABORT; + } +#line 34945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 830: +#line 6227 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->set_field_type_udt(&(yyval.Lex_field_type), (yyvsp[-2].kwd), (yyvsp[-1].Lex_length_and_dec))) + MYSQL_YYABORT; + } +#line 34956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 831: +#line 6235 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set_handler_length_flags((yyvsp[-2].type_handler), (yyvsp[-1].const_simple_string), (uint32) (yyvsp[0].ulong_num)); + } +#line 34966 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 832: +#line 6238 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set((yyvsp[-2].type_handler), (yyvsp[-1].Lex_length_and_dec)); } +#line 34974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 833: +#line 6240 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_float, (yyvsp[-1].Lex_length_and_dec)); + if ((yyvsp[-1].Lex_length_and_dec).length() && !(yyvsp[-1].Lex_length_and_dec).dec()) + { + int err; + ulonglong tmp_length= my_strtoll10((yyvsp[-1].Lex_length_and_dec).length(), NULL, &err); + if (unlikely(err || tmp_length > PRECISION_FOR_DOUBLE)) + my_yyabort_error((ER_WRONG_FIELD_SPEC, MYF(0), + Lex->last_field->field_name.str)); + if (tmp_length > PRECISION_FOR_FLOAT) + (yyval.Lex_field_type).set(&type_handler_double); + else + (yyval.Lex_field_type).set(&type_handler_float); + } + } +#line 34996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 834: +#line 6256 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_bit, (yyvsp[0].const_simple_string)); + } +#line 35006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 835: +#line 6260 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_stiny, "1"); + } +#line 35016 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 836: +#line 6264 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_stiny, "1"); + } +#line 35026 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 837: +#line 6268 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} +#line 35034 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 838: +#line 6270 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[-1].Lex_length_and_dec).length() != 0) + (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec)); + else + (yyval.Lex_field_type).set(&type_handler_double); + } +#line 35047 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 839: +#line 6277 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} +#line 35055 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 840: +#line 6279 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} +#line 35063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 845: +#line 6292 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].const_simple_string)); + } +#line 35073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 846: +#line 6296 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].const_simple_string)); + bincmp_collation(national_charset_info, (yyvsp[0].num)); + } +#line 35084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 847: +#line 6301 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[0].const_simple_string)); + } +#line 35095 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 848: +#line 6306 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); + } +#line 35105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 849: +#line 6310 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); + } +#line 35115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 850: +#line 6314 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-2].const_simple_string)); + bincmp_collation(national_charset_info, (yyvsp[0].num)); + } +#line 35126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 851: +#line 6319 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); + } +#line 35137 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 852: +#line 6324 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset= &my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); + } +#line 35148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 853: +#line 6332 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[-1].const_simple_string)) + { + errno= 0; + ulong length= strtoul((yyvsp[-1].const_simple_string), NULL, 10); + if (errno == 0 && length <= MAX_FIELD_BLOBLENGTH && length != 4) + { + char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1]; + my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length); + push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, + ER_WARN_DEPRECATED_SYNTAX, + ER_THD(thd, ER_WARN_DEPRECATED_SYNTAX), + buff, "YEAR(4)"); + } + } + (yyval.Lex_field_type).set(&type_handler_year, (yyvsp[-1].const_simple_string)); + } +#line 35172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 854: +#line 6349 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_newdate); } +#line 35180 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 855: +#line 6351 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? + static_cast<const Type_handler*>(&type_handler_time2) : + static_cast<const Type_handler*>(&type_handler_time), + (yyvsp[0].const_simple_string)); + } +#line 35193 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 856: +#line 6358 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? + static_cast<const Type_handler*>(&type_handler_timestamp2): + static_cast<const Type_handler*>(&type_handler_timestamp), + (yyvsp[0].const_simple_string)); + } +#line 35206 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 857: +#line 6365 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_field_type).set(thd->type_handler_for_datetime(), (yyvsp[0].const_simple_string)); + } +#line 35216 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 858: +#line 6373 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_tiny_blob); + } +#line 35227 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 859: +#line 6378 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); + } +#line 35238 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 860: +#line 6383 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); + } +#line 35249 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 861: +#line 6388 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_long_blob); + } +#line 35260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 862: +#line 6393 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_medium_blob); + } +#line 35271 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 863: +#line 6398 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_long_blob); + } +#line 35282 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 864: +#line 6403 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_medium_blob); + } +#line 35293 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 865: +#line 6408 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 35301 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 866: +#line 6410 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_tiny_blob); } +#line 35309 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 867: +#line 6412 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } +#line 35317 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 868: +#line 6414 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 35325 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 869: +#line 6416 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_long_blob); } +#line 35333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 870: +#line 6418 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_long_blob); } +#line 35341 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 871: +#line 6420 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 35349 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 872: +#line 6422 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset= &my_charset_utf8mb4_bin; + (yyval.Lex_field_type).set(&type_handler_json_longtext); + } +#line 35360 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 873: +#line 6430 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_enum); } +#line 35368 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 874: +#line 6432 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_field_type).set(&type_handler_set); } +#line 35376 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 875: +#line 6436 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35384 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 876: +#line 6440 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 877: +#line 6441 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 878: +#line 6445 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 879: +#line 6446 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 880: +#line 6450 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 881: +#line 6451 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35432 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 882: +#line 6452 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35440 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 883: +#line 6453 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 884: +#line 6454 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 885: +#line 6458 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_slong; } +#line 35464 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 886: +#line 6459 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_stiny; } +#line 35472 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 887: +#line 6460 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_sshort; } +#line 35480 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 888: +#line 6461 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_sint24; } +#line 35488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 889: +#line 6462 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_slonglong; } +#line 35496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 890: +#line 6467 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.type_handler)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? + static_cast<const Type_handler *>(&type_handler_float) : + static_cast<const Type_handler *>(&type_handler_double); + } +#line 35508 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 891: +#line 6472 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_double; } +#line 35516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 892: +#line 6473 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.type_handler)= &type_handler_double; } +#line 35524 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 893: +#line 6478 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->srid= 0; } +#line 35532 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 894: +#line 6481 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->srid=atoi((yyvsp[0].lex_str).str); + } +#line 35542 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 895: +#line 6487 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_length_and_dec).set(0, 0); } +#line 35550 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 896: +#line 6488 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), 0); } +#line 35558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 897: +#line 6489 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } +#line 35566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 898: +#line 6493 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_length_and_dec).set((yyvsp[-3].lex_str).str, (yyvsp[-1].lex_str).str); } +#line 35574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 899: +#line 6497 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 0; } +#line 35582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 900: +#line 6498 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 0; } +#line 35590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 901: +#line 6499 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= UNSIGNED_FLAG; } +#line 35598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 902: +#line 6500 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= UNSIGNED_FLAG | ZEROFILL_FLAG; } +#line 35606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 903: +#line 6501 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= UNSIGNED_FLAG | ZEROFILL_FLAG; } +#line 35614 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 904: +#line 6502 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= UNSIGNED_FLAG | ZEROFILL_FLAG; } +#line 35622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 905: +#line 6506 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->flags|= ((yyval.ulong_num)= (yyvsp[0].ulong_num)); } +#line 35630 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 906: +#line 6510 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } +#line 35638 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 907: +#line 6511 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } +#line 35646 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 908: +#line 6512 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } +#line 35654 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 909: +#line 6513 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } +#line 35662 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 910: +#line 6517 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (char*) 0; /* use default length */ } +#line 35670 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 911: +#line 6518 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } +#line 35678 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 912: +#line 6522 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_length_and_dec).set(0, 0); } +#line 35686 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 913: +#line 6523 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } +#line 35694 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 914: +#line 6528 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 916: +#line 6533 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->flags&= ~ NOT_NULL_FLAG; } +#line 35710 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 917: +#line 6534 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->default_value= (yyvsp[0].virtual_column); } +#line 35718 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 918: +#line 6536 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + Lex->last_field->on_update= item; + } +#line 35731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 919: +#line 6542 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; } +#line 35739 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 920: +#line 6544 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_KEY_FLAG; + lex->alter_info.flags|= ALTER_ADD_INDEX; + } +#line 35751 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 921: +#line 6550 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->charset && !my_charset_same(Lex->charset,(yyvsp[0].charset)))) + my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), + (yyvsp[0].charset)->name,Lex->charset->csname)); + Lex->last_field->charset= (yyvsp[0].charset); + } +#line 35764 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 923: +#line 6560 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= NULL; } +#line 35772 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 924: +#line 6561 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.const_simple_string)= (yyvsp[0].ident_sys).str; } +#line 35780 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 925: +#line 6565 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35788 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 926: +#line 6566 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 35796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 927: +#line 6570 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 35804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 928: +#line 6571 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 35812 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 929: +#line 6576 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->last_field->set_compressed((yyvsp[0].const_simple_string)))) + MYSQL_YYABORT; + } +#line 35823 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 930: +#line 6584 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->last_field->set_compressed_deprecated(thd, (yyvsp[0].const_simple_string)))) + MYSQL_YYABORT; + } +#line 35834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 931: +#line 6592 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->last_field-> + set_compressed_deprecated_column_attribute(thd, (yyvsp[-1].kwd).pos(), (yyvsp[0].const_simple_string)))) + MYSQL_YYABORT; + } +#line 35846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 932: +#line 6601 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->flags|= NOT_NULL_FLAG; + } +#line 35856 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 933: +#line 6605 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->last_field->flags|= PRI_KEY_FLAG | NOT_NULL_FLAG; + lex->alter_info.flags|= ALTER_ADD_INDEX; + } +#line 35868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 936: +#line 6616 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) + my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].lex_str), true, + &Lex->last_field->option_list, + &Lex->option_list_last); + } +#line 35883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 937: +#line 6625 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) + my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), false, + &Lex->last_field->option_list, + &Lex->option_list_last); + } +#line 35898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 938: +#line 6634 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->last_field->option_list, + &Lex->option_list_last, thd->mem_root); + } +#line 35910 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 939: +#line 6640 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), &Lex->last_field->option_list, + &Lex->option_list_last); + } +#line 35922 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 940: +#line 6646 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_field->versioning= (yyvsp[-1].vers_column_versioning); + Lex->create_info.options|= HA_VERSIONED_TABLE; + if (Lex->alter_info.flags & ALTER_DROP_SYSTEM_VERSIONING) + { + my_yyabort_error((ER_VERS_NOT_VERSIONED, MYF(0), + Lex->create_last_non_select_table->table_name.str)); + } + } +#line 35938 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 941: +#line 6659 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_COLUMN_UNVERSIONED; + Lex->create_info.vers_info.versioned_fields= true; + (yyval.vers_column_versioning)= Column_definition::WITH_VERSIONING; + } +#line 35950 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 942: +#line 6665 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_COLUMN_UNVERSIONED; + Lex->create_info.vers_info.unversioned_fields= true; + (yyval.vers_column_versioning)= Column_definition::WITHOUT_VERSIONING; + } +#line 35962 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 943: +#line 6674 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.kwd)= (yyvsp[-1].kwd); } +#line 35970 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 944: +#line 6675 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.kwd)= (yyvsp[0].kwd); } +#line 35978 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 945: +#line 6680 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0))))) + my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); + } +#line 35989 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 946: +#line 6684 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)= &my_charset_bin; } +#line 35997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 947: +#line 6688 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=(yyvsp[0].charset); } +#line 36005 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 948: +#line 6689 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=NULL; } +#line 36013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 949: +#line 6693 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)= NULL; } +#line 36021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 950: +#line 6694 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)= (yyvsp[0].charset); } +#line 36029 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 951: +#line 6699 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str, + MY_CS_PRIMARY,MYF(0))) && + !((yyval.charset)=get_old_charset_by_name((yyvsp[0].lex_str).str)))) + my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); + } +#line 36042 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 952: +#line 6705 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)= &my_charset_bin; } +#line 36050 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 953: +#line 6709 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=(yyvsp[0].charset); } +#line 36058 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 954: +#line 6710 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=NULL; } +#line 36066 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 955: +#line 6715 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.charset)= mysqld_collation_get_by_name((yyvsp[0].lex_str).str)))) + MYSQL_YYABORT; + } +#line 36077 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 956: +#line 6722 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=NULL; } +#line 36085 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 957: +#line 6723 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=(yyvsp[0].charset); } +#line 36093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 958: +#line 6727 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=(yyvsp[0].charset); } +#line 36101 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 959: +#line 6728 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)=NULL; } +#line 36109 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 960: +#line 6732 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 961: +#line 6733 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 962: +#line 6737 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)= (yyvsp[0].charset); } +#line 36133 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 963: +#line 6738 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.charset)= &my_charset_latin1; } +#line 36141 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 964: +#line 6740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.charset)= get_charset_by_csname("ucs2", MY_CS_PRIMARY,MYF(0))))) + my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2")); + } +#line 36152 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 965: +#line 6747 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset= (yyvsp[0].charset); + } +#line 36162 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 966: +#line 6753 "/home/buildbot/git/sql/sql_yacc.yy" + + { bincmp_collation(NULL, false); } +#line 36170 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 967: +#line 6754 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 968: +#line 6758 "/home/buildbot/git/sql/sql_yacc.yy" + + { bincmp_collation(&my_charset_bin, false); } +#line 36186 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 969: +#line 6759 "/home/buildbot/git/sql/sql_yacc.yy" + + { bincmp_collation((yyvsp[-1].charset), (yyvsp[0].num)); } +#line 36194 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 970: +#line 6760 "/home/buildbot/git/sql/sql_yacc.yy" + + { bincmp_collation(NULL, true); } +#line 36202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 971: +#line 6761 "/home/buildbot/git/sql/sql_yacc.yy" + + { bincmp_collation((yyvsp[0].charset), true); } +#line 36210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 972: +#line 6763 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!my_charset_same(Lex->charset, (yyvsp[-1].charset))) + my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), + Lex->charset->name, (yyvsp[-1].charset)->csname)); + } +#line 36222 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 973: +#line 6768 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 36230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 974: +#line 6772 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= false; } +#line 36238 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 975: +#line 6773 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= true; } +#line 36246 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 976: +#line 6778 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].ulong_num) == 0)) + { + thd->parse_error(); + MYSQL_YYABORT; + } + } +#line 36260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 977: +#line 6786 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[-2].ulong_num); } +#line 36268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 978: +#line 6790 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 0; } +#line 36276 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 979: +#line 6791 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 1 << MY_STRXFRM_DESC_SHIFT; } +#line 36284 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 980: +#line 6795 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 1 << MY_STRXFRM_REVERSE_SHIFT; } +#line 36292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 981: +#line 6798 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 0; } +#line 36300 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 982: +#line 6799 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num); } +#line 36308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 983: +#line 6800 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[-1].ulong_num) | (yyvsp[0].ulong_num); } +#line 36316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 984: +#line 6801 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num) ; } +#line 36324 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 985: +#line 6806 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.ulong_num)= (yyvsp[0].ulong_num) < 1 ? 1 : ((yyvsp[0].ulong_num) > MY_STRXFRM_NLEVELS ? MY_STRXFRM_NLEVELS : (yyvsp[0].ulong_num)); + (yyval.ulong_num)--; + } +#line 36335 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 986: +#line 6814 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.ulong_num)= (1 | (yyvsp[0].ulong_num)) << (yyvsp[-1].ulong_num); + } +#line 36345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 987: +#line 6820 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num); } +#line 36353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 988: +#line 6821 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)|= (yyvsp[0].ulong_num); } +#line 36361 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 989: +#line 6826 "/home/buildbot/git/sql/sql_yacc.yy" + + { + uint start= (yyvsp[-2].ulong_num); + uint end= (yyvsp[0].ulong_num); + for ((yyval.ulong_num)= 0; start <= end; start++) + (yyval.ulong_num)|= (1 << start); + } +#line 36374 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 990: +#line 6835 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num); } +#line 36382 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 991: +#line 6836 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num); } +#line 36390 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 992: +#line 6840 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 0; } +#line 36398 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 993: +#line 6841 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num); } +#line 36406 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 996: +#line 6855 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.table)=(yyvsp[-3].table); + } +#line 36416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 997: +#line 6862 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ref_list.empty(); } +#line 36424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 999: +#line 6868 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Key_part_spec *key= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); + if (unlikely(key == NULL)) + MYSQL_YYABORT; + Lex->ref_list.push_back(key, thd->mem_root); + } +#line 36437 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1000: +#line 6875 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Key_part_spec *key= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); + if (unlikely(key == NULL)) + MYSQL_YYABORT; + LEX *lex= Lex; + lex->ref_list.empty(); + lex->ref_list.push_back(key, thd->mem_root); + } +#line 36452 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1001: +#line 6887 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; } +#line 36460 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1002: +#line 6889 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; } +#line 36468 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1003: +#line 6891 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; } +#line 36476 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1004: +#line 6893 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; } +#line 36484 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1005: +#line 6898 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->fk_update_opt= FK_OPTION_UNDEF; + lex->fk_delete_opt= FK_OPTION_UNDEF; + } +#line 36496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1006: +#line 6904 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->fk_update_opt= (yyvsp[0].m_fk_option); + lex->fk_delete_opt= FK_OPTION_UNDEF; + } +#line 36508 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1007: +#line 6910 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->fk_update_opt= FK_OPTION_UNDEF; + lex->fk_delete_opt= (yyvsp[0].m_fk_option); + } +#line 36520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1008: +#line 6917 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->fk_update_opt= (yyvsp[-3].m_fk_option); + lex->fk_delete_opt= (yyvsp[0].m_fk_option); + } +#line 36532 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1009: +#line 6924 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->fk_update_opt= (yyvsp[0].m_fk_option); + lex->fk_delete_opt= (yyvsp[-3].m_fk_option); + } +#line 36544 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1010: +#line 6932 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_fk_option)= FK_OPTION_RESTRICT; } +#line 36552 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1011: +#line 6933 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_fk_option)= FK_OPTION_CASCADE; } +#line 36560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1012: +#line 6934 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_fk_option)= FK_OPTION_SET_NULL; } +#line 36568 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1013: +#line 6935 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_fk_option)= FK_OPTION_NO_ACTION; } +#line 36576 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1014: +#line 6936 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_fk_option)= FK_OPTION_SET_DEFAULT; } +#line 36584 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1015: +#line 6940 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_type)= Key::PRIMARY; } +#line 36592 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1016: +#line 6941 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_type)= Key::UNIQUE; } +#line 36600 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1017: +#line 6945 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1018: +#line 6946 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36616 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1019: +#line 6950 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36624 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1021: +#line 6955 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1022: +#line 6956 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1023: +#line 6957 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1024: +#line 6961 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_type)= Key::FULLTEXT;} +#line 36656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1025: +#line 6966 "/home/buildbot/git/sql/sql_yacc.yy" + + { +#ifdef HAVE_SPATIAL + (yyval.key_type)= Key::SPATIAL; +#else + my_yyabort_error((ER_FEATURE_DISABLED, MYF(0), sym_group_geom.name, + sym_group_geom.needed_define)); +#endif + } +#line 36671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1026: +#line 6977 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36679 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1027: +#line 6978 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_key->option_list= Lex->option_list; } +#line 36687 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1028: +#line 6982 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1029: +#line 6983 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_key->option_list= Lex->option_list; } +#line 36703 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1030: +#line 6987 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1031: +#line 6988 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_key->option_list= Lex->option_list; } +#line 36719 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1038: +#line 7007 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } +#line 36727 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1039: +#line 7008 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 36735 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1040: +#line 7013 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } +#line 36743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1041: +#line 7014 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 36751 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1042: +#line 7015 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 36759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1043: +#line 7020 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } +#line 36767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1044: +#line 7022 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } +#line 36775 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1045: +#line 7027 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_key->key_create_info.block_size= (yyvsp[0].ulong_num); + Lex->last_key->key_create_info.flags|= HA_USES_BLOCK_SIZE; + } +#line 36786 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1046: +#line 7032 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_key->key_create_info.comment= (yyvsp[0].lex_str); } +#line 36794 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1047: +#line 7034 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* This is mainly for MySQL 8.0 compatiblity */ + } +#line 36804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1048: +#line 7038 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) + my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].lex_str), true, &Lex->option_list, + &Lex->option_list_last); + } +#line 36818 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1049: +#line 7046 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) + my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), false, &Lex->option_list, + &Lex->option_list_last); + } +#line 36832 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1050: +#line 7054 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->option_list, + &Lex->option_list_last, thd->mem_root); + } +#line 36844 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1051: +#line 7060 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (void) new (thd->mem_root) + engine_option_value((yyvsp[-2].ident_sys), &Lex->option_list, + &Lex->option_list_last); + } +#line 36856 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1056: +#line 7079 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (likely(plugin_is_ready(&(yyvsp[0].ident_sys), MYSQL_FTPARSER_PLUGIN))) + Lex->last_key->key_create_info.parser_name= (yyvsp[0].ident_sys); + else + my_yyabort_error((ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[0].ident_sys).str)); + } +#line 36869 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1057: +#line 7088 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= HA_KEY_ALG_BTREE; } +#line 36877 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1058: +#line 7089 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= HA_KEY_ALG_RTREE; } +#line 36885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1059: +#line 7090 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.key_alg)= HA_KEY_ALG_HASH; } +#line 36893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1060: +#line 7095 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); + } +#line 36903 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1061: +#line 7099 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); + } +#line 36913 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1062: +#line 7105 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 36921 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1063: +#line 7107 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_key->without_overlaps= true; + Lex->last_key->period= (yyvsp[-2].ident_sys); + } +#line 36932 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1064: +#line 7115 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.key_part)= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); + if (unlikely((yyval.key_part) == NULL)) + MYSQL_YYABORT; + } +#line 36944 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1065: +#line 7121 "/home/buildbot/git/sql/sql_yacc.yy" + + { + int key_part_len= atoi((yyvsp[-1].lex_str).str); + if (unlikely(!key_part_len)) + my_yyabort_error((ER_KEY_PART_0, MYF(0), (yyvsp[-3].ident_sys).str)); + (yyval.key_part)= new (thd->mem_root) Key_part_spec(&(yyvsp[-3].ident_sys), (uint) key_part_len); + if (unlikely((yyval.key_part) == NULL)) + MYSQL_YYABORT; + } +#line 36959 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1066: +#line 7132 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= null_clex_str; } +#line 36967 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1067: +#line 7133 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= (yyvsp[0].lex_str); } +#line 36975 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1068: +#line 7138 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } +#line 36983 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1069: +#line 7140 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } +#line 36991 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1070: +#line 7149 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->name= null_clex_str; + Lex->table_type= TABLE_TYPE_UNKNOWN; + Lex->sql_command= SQLCOM_ALTER_TABLE; + Lex->duplicates= DUP_ERROR; + Lex->first_select_lex()->order_list.empty(); + Lex->create_info.init(); + Lex->create_info.row_type= ROW_TYPE_NOT_USED; + Lex->alter_info.reset(); + Lex->no_write_to_binlog= 0; + Lex->create_info.storage_media= HA_SM_DEFAULT; + if (Lex->main_select_push()) + MYSQL_YYABORT; + DBUG_ASSERT(!Lex->m_sql_cmd); + } +#line 37013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1071: +#line 7165 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.set((yyvsp[-2].object_ddl_options)); + if (!Lex->first_select_lex()-> + add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, + TL_READ_NO_INSERT, MDL_SHARED_UPGRADABLE)) + MYSQL_YYABORT; + Lex->first_select_lex()->db= + (Lex->first_select_lex()->table_list.first)->db; + Lex->create_last_non_select_table= Lex->last_table(); + Lex->mark_first_table_as_inserting(); + } +#line 37031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1072: +#line 7177 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (likely(!Lex->m_sql_cmd)) + { + /* Create a generic ALTER TABLE statment. */ + Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_table(); + if (unlikely(Lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } + Lex->pop_select(); //main select + } +#line 37048 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1073: +#line 7188 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.default_table_charset= NULL; + Lex->create_info.schema_comment= NULL; + Lex->create_info.used_fields= 0; + if (Lex->main_select_push(true)) + MYSQL_YYABORT; + } +#line 37062 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1074: +#line 7196 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command=SQLCOM_ALTER_DB; + lex->name= (yyvsp[-2].ident_sys); + if (lex->name.str == NULL && + unlikely(lex->copy_db_to(&lex->name))) + MYSQL_YYABORT; + Lex->pop_select(); //main select + } +#line 37078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1075: +#line 7206 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.default_table_charset= NULL; + Lex->create_info.used_fields= 0; + Lex->create_info.schema_comment= thd->make_clex_string((yyvsp[0].lex_str)); + Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; + } +#line 37091 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1076: +#line 7213 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command=SQLCOM_ALTER_DB; + lex->name= Lex_ident_sys(); + if (lex->name.str == NULL && + unlikely(lex->copy_db_to(&lex->name))) + MYSQL_YYABORT; + } +#line 37106 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1077: +#line 7222 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "DATABASE")); + lex->sql_command= SQLCOM_ALTER_DB_UPGRADE; + lex->name= (yyvsp[-4].ident_sys); + } +#line 37120 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1078: +#line 7230 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_alter_procedure_start((yyvsp[0].spname))) + MYSQL_YYABORT; + } +#line 37131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1079: +#line 7235 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1080: +#line 7237 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_alter_function_start((yyvsp[0].spname))) + MYSQL_YYABORT; + } +#line 37150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1081: +#line 7242 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1082: +#line 7244 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + if (Lex->add_alter_view(thd, (yyvsp[-4].num), (yyvsp[-2].view_suid), (yyvsp[0].table))) + MYSQL_YYABORT; + } +#line 37171 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1083: +#line 7250 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1084: +#line 7257 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + if (Lex->add_alter_view(thd, VIEW_ALGORITHM_INHERIT, (yyvsp[-2].view_suid), (yyvsp[0].table))) + MYSQL_YYABORT; + } +#line 37192 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1085: +#line 7263 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37200 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1086: +#line 7265 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + /* + It is safe to use Lex->spname because + ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO + is not allowed. Lex->spname is used in the case of RENAME TO + If it had to be supported spname had to be added to + Event_parse_data. + */ + + if (unlikely(!(Lex->event_parse_data= Event_parse_data::new_instance(thd)))) + MYSQL_YYABORT; + Lex->event_parse_data->identifier= (yyvsp[0].spname); + + Lex->sql_command= SQLCOM_ALTER_EVENT; + Lex->stmt_definition_begin= (yyvsp[-2].simple_string); + } +#line 37225 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1087: +#line 7288 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyvsp[-4].num) || (yyvsp[-3].num) || (yyvsp[-2].num) || (yyvsp[-1].num) || (yyvsp[0].num)))) + { + thd->parse_error(); + MYSQL_YYABORT; + } + /* + sql_command is set here because some rules in ev_sql_stmt + can overwrite it + */ + Lex->sql_command= SQLCOM_ALTER_EVENT; + Lex->stmt_definition_end= (char*)YYLIP->get_cpp_ptr(); + + Lex->pop_select(); //main select + } +#line 37247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1088: +#line 7304 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE; + } +#line 37258 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1089: +#line 7309 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP; + } +#line 37269 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1090: +#line 7314 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE; + } +#line 37280 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1091: +#line 7319 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE; + } +#line 37291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1092: +#line 7324 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_ALTER_SERVER; + lex->server_options.reset((yyvsp[0].lex_str)); + } +#line 37303 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1093: +#line 7328 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 37311 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1094: +#line 7332 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_info.set((yyvsp[-5].object_ddl_options)); + Lex->sql_command= SQLCOM_ALTER_USER; + } +#line 37322 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1095: +#line 7337 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->name= null_clex_str; + lex->table_type= TABLE_TYPE_UNKNOWN; + lex->sql_command= SQLCOM_ALTER_SEQUENCE; + lex->create_info.init(); + lex->no_write_to_binlog= 0; + DBUG_ASSERT(!lex->m_sql_cmd); + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 37340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1096: +#line 7349 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (!(lex->create_info.seq_create_info= new (thd->mem_root) + sequence_definition()) || + !lex->first_select_lex()-> + add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_SEQUENCE, + TL_WRITE, MDL_EXCLUSIVE)) + MYSQL_YYABORT; + } +#line 37356 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1097: +#line 7359 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* Create a generic ALTER SEQUENCE statment. */ + Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence((yyvsp[-4].object_ddl_options)); + if (unlikely(Lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1098: +#line 7364 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1099: +#line 7369 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.account_locked= ACCOUNTLOCK_LOCKED; + } +#line 37387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1100: +#line 7373 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.account_locked= ACCOUNTLOCK_UNLOCKED; + } +#line 37397 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1101: +#line 7380 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.password_expire= PASSWORD_EXPIRE_NOW; + } +#line 37407 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1102: +#line 7384 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.password_expire= PASSWORD_EXPIRE_NEVER; + } +#line 37417 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1103: +#line 7388 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.password_expire= PASSWORD_EXPIRE_DEFAULT; + } +#line 37427 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1104: +#line 7392 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.password_expire= PASSWORD_EXPIRE_INTERVAL; + if (!(Lex->account_options.num_expiration_days= atoi((yyvsp[-1].lex_str).str))) + my_yyabort_error((ER_WRONG_VALUE, MYF(0), "DAY", (yyvsp[-1].lex_str).str)); + } +#line 37439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1110: +#line 7408 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0;} +#line 37447 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1111: +#line 7409 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 37455 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1112: +#line 7410 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 37463 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1113: +#line 7411 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 37471 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1114: +#line 7415 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0;} +#line 37479 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1115: +#line 7417 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Use lex's spname to hold the new name. + The original name is in the Event_parse_data object + */ + Lex->spname= (yyvsp[0].spname); + (yyval.num)= 1; + } +#line 37494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1116: +#line 7428 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0;} +#line 37502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1117: +#line 7429 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 37510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1118: +#line 7434 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ident_sys)= Lex_ident_sys(); } +#line 37518 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1121: +#line 7441 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_discard_import_tablespace( + Sql_cmd_discard_import_tablespace::DISCARD_TABLESPACE); + if (unlikely(Lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37532 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1122: +#line 7449 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_discard_import_tablespace( + Sql_cmd_discard_import_tablespace::IMPORT_TABLESPACE); + if (unlikely(Lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1128: +#line 7471 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.partition_flags|= ALTER_PARTITION_DROP; + DBUG_ASSERT(!Lex->if_exists()); + Lex->create_info.add((yyvsp[-1].object_ddl_options)); + } +#line 37558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1129: +#line 7478 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_info.partition_flags|= ALTER_PARTITION_REBUILD; + lex->no_write_to_binlog= (yyvsp[-1].num); + } +#line 37570 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1130: +#line 7485 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->no_write_to_binlog= (yyvsp[-1].num); + lex->check_opt.init(); + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_alter_table_optimize_partition(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37587 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1132: +#line 7498 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->no_write_to_binlog= (yyvsp[-1].num); + lex->check_opt.init(); + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_alter_table_analyze_partition(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1133: +#line 7509 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->check_opt.init(); + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_alter_table_check_partition(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37620 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1135: +#line 7521 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->no_write_to_binlog= (yyvsp[-1].num); + lex->check_opt.init(); + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_alter_table_repair_partition(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1137: +#line 7533 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_info.partition_flags|= ALTER_PARTITION_COALESCE; + lex->no_write_to_binlog= (yyvsp[-1].num); + lex->alter_info.num_parts= (yyvsp[0].ulong_num); + } +#line 37650 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1138: +#line 7540 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->check_opt.init(); + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_alter_table_truncate_partition(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 37666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1140: +#line 7552 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_alter_table_exchange_partition((yyvsp[-1].table))) + MYSQL_YYABORT; + } +#line 37677 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1141: +#line 7560 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.partition_flags|= ALTER_PARTITION_REMOVE; + } +#line 37687 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1142: +#line 7567 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.partition_flags|= ALTER_PARTITION_ALL; + } +#line 37697 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1144: +#line 7576 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->part_info= new (thd->mem_root) partition_info(); + if (unlikely(!lex->part_info)) + MYSQL_YYABORT; + + lex->alter_info.partition_flags|= ALTER_PARTITION_ADD; + DBUG_ASSERT(!Lex->create_info.if_not_exists()); + lex->create_info.set((yyvsp[-1].object_ddl_options)); + lex->no_write_to_binlog= (yyvsp[0].num); + } +#line 37715 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1145: +#line 7588 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37723 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1147: +#line 7594 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->part_info->num_parts= lex->part_info->partitions.elements; + } +#line 37734 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1148: +#line 7599 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->part_info->num_parts= (yyvsp[0].ulong_num); + } +#line 37744 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1149: +#line 7606 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->part_info= new (thd->mem_root) partition_info(); + if (unlikely(!lex->part_info)) + MYSQL_YYABORT; + + lex->no_write_to_binlog= (yyvsp[0].num); + } +#line 37759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1151: +#line 7619 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.partition_flags|= ALTER_PARTITION_TABLE_REORG; + } +#line 37769 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1152: +#line 7623 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.partition_flags|= ALTER_PARTITION_REORGANIZE; + } +#line 37779 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1153: +#line 7627 "/home/buildbot/git/sql/sql_yacc.yy" + + { + partition_info *part_info= Lex->part_info; + part_info->num_parts= part_info->partitions.elements; + } +#line 37790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1154: +#line 7634 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37798 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1155: +#line 7635 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 37806 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1156: +#line 7640 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->alter_info.partition_names.push_back((yyvsp[0].ident_sys).str, + thd->mem_root))) + MYSQL_YYABORT; + } +#line 37818 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1160: +#line 7662 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->create_last_non_select_table= lex->last_table(); + lex->alter_info.flags|= ALTER_PARSER_ADD_COLUMN; + (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); + } +#line 37831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1161: +#line 7669 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->create_last_non_select_table= Lex->last_table(); + Lex->alter_info.flags|= ALTER_ADD_INDEX; + } +#line 37842 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1162: +#line 7674 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_ADD_PERIOD; + } +#line 37852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1163: +#line 7679 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Table_period_info &period= Lex->create_info.period_info; + period.create_if_not_exists= Lex->check_exists; + Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; + } +#line 37864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1164: +#line 7685 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->alter_info.flags|= ALTER_PARSER_ADD_COLUMN; + if (!lex->alter_info.key_list.is_empty()) + lex->alter_info.flags|= ALTER_ADD_INDEX; + } +#line 37877 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1165: +#line 7692 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; + } +#line 37887 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1166: +#line 7696 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; + Lex->add_constraint((yyvsp[-1].lex_str), (yyvsp[0].virtual_column), TRUE); + } +#line 37898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1167: +#line 7702 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_CHANGE_COLUMN | ALTER_RENAME_COLUMN; + Lex->create_last_non_select_table= Lex->last_table(); + (yyvsp[-1].create_field)->change= (yyvsp[-2].lex_str); + (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); + } +#line 37911 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1168: +#line 7710 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_CHANGE_COLUMN; + Lex->create_last_non_select_table= Lex->last_table(); + (yyvsp[-1].create_field)->change= (yyvsp[-1].create_field)->field_name; + (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); + } +#line 37924 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1169: +#line 7717 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_drop *ad= (new (thd->mem_root) + Alter_drop(Alter_drop::COLUMN, (yyvsp[-1].lex_str).str, (yyvsp[-2].num))); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + lex->alter_info.drop_list.push_back(ad, thd->mem_root); + lex->alter_info.flags|= ALTER_PARSER_DROP_COLUMN; + } +#line 37940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1170: +#line 7727 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_drop *ad= (new (thd->mem_root) + Alter_drop(Alter_drop::CHECK_CONSTRAINT, + (yyvsp[0].lex_str).str, (yyvsp[-1].num))); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + lex->alter_info.drop_list.push_back(ad, thd->mem_root); + lex->alter_info.flags|= ALTER_DROP_CHECK_CONSTRAINT; + } +#line 37957 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1171: +#line 7738 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_drop *ad= (new (thd->mem_root) + Alter_drop(Alter_drop::FOREIGN_KEY, (yyvsp[0].lex_str).str, (yyvsp[-1].num))); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + lex->alter_info.drop_list.push_back(ad, thd->mem_root); + lex->alter_info.flags|= ALTER_DROP_FOREIGN_KEY; + } +#line 37973 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1172: +#line 7748 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_drop *ad= (new (thd->mem_root) + Alter_drop(Alter_drop::KEY, primary_key_name, + FALSE)); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + lex->alter_info.drop_list.push_back(ad, thd->mem_root); + lex->alter_info.flags|= ALTER_DROP_INDEX; + } +#line 37990 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1173: +#line 7759 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_drop *ad= (new (thd->mem_root) + Alter_drop(Alter_drop::KEY, (yyvsp[0].lex_str).str, (yyvsp[-1].num))); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + lex->alter_info.drop_list.push_back(ad, thd->mem_root); + lex->alter_info.flags|= ALTER_DROP_INDEX; + } +#line 38006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1174: +#line 7769 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->alter_info.keys_onoff= Alter_info::DISABLE; + lex->alter_info.flags|= ALTER_KEYS_ONOFF; + } +#line 38018 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1175: +#line 7775 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->alter_info.keys_onoff= Alter_info::ENABLE; + lex->alter_info.flags|= ALTER_KEYS_ONOFF; + } +#line 38030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1176: +#line 7781 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (check_expression((yyvsp[0].virtual_column), &(yyvsp[-3].lex_str), VCOL_DEFAULT)) + MYSQL_YYABORT; + if (unlikely(Lex->add_alter_list((yyvsp[-3].lex_str), (yyvsp[0].virtual_column), (yyvsp[-4].num)))) + MYSQL_YYABORT; + } +#line 38043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1177: +#line 7788 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_alter_list((yyvsp[-2].lex_str), (Virtual_column_info*) 0, (yyvsp[-3].num)))) + MYSQL_YYABORT; + } +#line 38054 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1178: +#line 7793 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->first_select_lex()->db= (yyvsp[0].table)->db; + if (lex->first_select_lex()->db.str == NULL && + lex->copy_db_to(&lex->first_select_lex()->db)) + MYSQL_YYABORT; + if (unlikely(check_table_name((yyvsp[0].table)->table.str,(yyvsp[0].table)->table.length, + FALSE)) || + ((yyvsp[0].table)->db.str && unlikely(check_db_name((LEX_STRING*) &(yyvsp[0].table)->db)))) + my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[0].table)->table.str)); + lex->name= (yyvsp[0].table)->table; + lex->alter_info.flags|= ALTER_RENAME; + } +#line 38074 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1179: +#line 7807 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_alter_list((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), (yyvsp[-3].num)))) + MYSQL_YYABORT; + } +#line 38085 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1180: +#line 7812 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_rename_key *ak= new (thd->mem_root) + Alter_rename_key((yyvsp[-2].lex_str), (yyvsp[0].lex_str), (yyvsp[-3].num)); + if (ak == NULL) + MYSQL_YYABORT; + lex->alter_info.alter_rename_key_list.push_back(ak); + lex->alter_info.flags|= ALTER_RENAME_INDEX; + } +#line 38101 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1181: +#line 7822 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!(yyvsp[-1].charset)) + { + (yyvsp[-1].charset)= thd->variables.collation_database; + } + (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset) : (yyvsp[-1].charset); + if (unlikely(!my_charset_same((yyvsp[-1].charset),(yyvsp[0].charset)))) + my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), + (yyvsp[0].charset)->name, (yyvsp[-1].charset)->csname)); + if (unlikely(Lex->create_info.add_alter_list_item_convert_to_charset((yyvsp[0].charset)))) + MYSQL_YYABORT; + Lex->alter_info.flags|= ALTER_CONVERT_TO; + } +#line 38121 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1182: +#line 7836 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->alter_info.flags|= ALTER_OPTIONS; + } +#line 38132 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1183: +#line 7841 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_RECREATE; + } +#line 38142 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1184: +#line 7845 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->alter_info.flags|= ALTER_ORDER; + } +#line 38153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1187: +#line 7852 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_ADD_SYSTEM_VERSIONING; + Lex->create_info.options|= HA_VERSIONED_TABLE; + } +#line 38164 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1188: +#line 7857 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_DROP_SYSTEM_VERSIONING; + Lex->create_info.options&= ~HA_VERSIONED_TABLE; + } +#line 38175 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1189: +#line 7862 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.flags|= ALTER_DROP_PERIOD; + } +#line 38185 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1190: +#line 7866 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Alter_drop *ad= new Alter_drop(Alter_drop::PERIOD, (yyvsp[0].ident_sys).str, (yyvsp[-2].num)); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + Lex->alter_info.drop_list.push_back(ad, thd->mem_root); + Lex->alter_info.flags|= ALTER_DROP_CHECK_CONSTRAINT; + } +#line 38199 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1196: +#line 7885 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.set_requested_algorithm( + Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT); + } +#line 38210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1197: +#line 7890 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->alter_info.set_requested_algorithm(&(yyvsp[0].ident_sys)))) + my_yyabort_error((ER_UNKNOWN_ALTER_ALGORITHM, MYF(0), (yyvsp[0].ident_sys).str)); + } +#line 38221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1198: +#line 7898 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.requested_lock= + Alter_info::ALTER_TABLE_LOCK_DEFAULT; + } +#line 38232 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1199: +#line 7903 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->alter_info.set_requested_lock(&(yyvsp[0].ident_sys)))) + my_yyabort_error((ER_UNKNOWN_ALTER_LOCK, MYF(0), (yyvsp[0].ident_sys).str)); + } +#line 38243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1200: +#line 7910 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38251 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1201: +#line 7911 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1202: +#line 7915 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ignore= 0;} +#line 38267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1203: +#line 7916 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ignore= 1;} +#line 38275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1204: +#line 7920 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ignore= 0;} +#line 38283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1210: +#line 7934 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ignore= 1;} +#line 38291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1211: +#line 7936 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.requested_lock= + Alter_info::ALTER_TABLE_LOCK_NONE; + } +#line 38302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1212: +#line 7943 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->drop_mode= DROP_DEFAULT; } +#line 38310 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1213: +#line 7944 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->drop_mode= DROP_RESTRICT; } +#line 38318 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1214: +#line 7945 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->drop_mode= DROP_CASCADE; } +#line 38326 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1215: +#line 7949 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= null_clex_str; } +#line 38334 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1216: +#line 7951 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_str)= (yyvsp[0].ident_sys); + Lex->alter_info.flags |= ALTER_COLUMN_ORDER; + } +#line 38345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1217: +#line 7956 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_str).str= first_keyword; + (yyval.lex_str).length= 5; /* Length of "first" */ + Lex->alter_info.flags |= ALTER_COLUMN_ORDER; + } +#line 38357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1218: +#line 7964 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1219: +#line 7965 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1220: +#line 7966 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1221: +#line 7967 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38389 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1222: +#line 7972 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_SLAVE_START; + lex->type = 0; + /* If you change this code don't forget to update SLAVE START too */ + } +#line 38402 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1223: +#line 7979 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38410 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1224: +#line 7981 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_SLAVE_ALL_START; + lex->type = 0; + /* If you change this code don't forget to update STOP SLAVE too */ + } +#line 38423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1225: +#line 7987 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38431 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1226: +#line 7989 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_SLAVE_STOP; + lex->type = 0; + /* If you change this code don't forget to update SLAVE STOP too */ + } +#line 38444 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1227: +#line 7996 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_SLAVE_ALL_STOP; + lex->type = 0; + /* If you change this code don't forget to update SLAVE STOP too */ + } +#line 38457 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1228: +#line 8006 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_BEGIN; + /* READ ONLY and READ WRITE are mutually exclusive. */ + if (unlikely(((yyvsp[0].num) & MYSQL_START_TRANS_OPT_READ_WRITE) && + ((yyvsp[0].num) & MYSQL_START_TRANS_OPT_READ_ONLY))) + { + thd->parse_error(); + MYSQL_YYABORT; + } + lex->start_transaction_opt= (yyvsp[0].num); + } +#line 38476 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1229: +#line 8022 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= 0; + } +#line 38486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1230: +#line 8026 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= (yyvsp[0].num); + } +#line 38496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1231: +#line 8033 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= (yyvsp[0].num); + } +#line 38506 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1232: +#line 8037 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= (yyvsp[-2].num) | (yyvsp[0].num); + } +#line 38516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1233: +#line 8044 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT; + } +#line 38526 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1234: +#line 8048 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= MYSQL_START_TRANS_OPT_READ_ONLY; + } +#line 38536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1235: +#line 8052 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= MYSQL_START_TRANS_OPT_READ_WRITE; + } +#line 38546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1236: +#line 8058 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->slave_thd_opt= 0; } +#line 38554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1237: +#line 8060 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1240: +#line 8069 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38570 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1241: +#line 8070 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->slave_thd_opt|=SLAVE_SQL; } +#line 38578 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1242: +#line 8071 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->slave_thd_opt|=SLAVE_IO; } +#line 38586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1243: +#line 8075 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38594 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1244: +#line 8077 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(((lex->mi.log_file_name || lex->mi.pos) && + (lex->mi.relay_log_name || lex->mi.relay_log_pos)) || + !((lex->mi.log_file_name && lex->mi.pos) || + (lex->mi.relay_log_name && lex->mi.relay_log_pos)))) + my_yyabort_error((ER_BAD_SLAVE_UNTIL_COND, MYF(0))); + } +#line 38609 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1245: +#line 8086 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mi.gtid_pos_str = (yyvsp[0].lex_str); + } +#line 38619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1248: +#line 8098 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_CHECKSUM; + /* Will be overridden during execution. */ + YYPS->m_lock_type= TL_UNLOCK; + } +#line 38632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1249: +#line 8105 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1250: +#line 8109 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags= 0; } +#line 38648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1251: +#line 8110 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags= T_QUICK; } +#line 38656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1252: +#line 8111 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags= T_EXTEND; } +#line 38664 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1254: +#line 8117 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->table_type= TABLE_TYPE_VIEW; } +#line 38672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1256: +#line 8123 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_REPAIR; + lex->no_write_to_binlog= (yyvsp[0].num); + lex->check_opt.init(); + lex->alter_info.reset(); + /* Will be overridden during execution. */ + YYPS->m_lock_type= TL_UNLOCK; + } +#line 38688 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1257: +#line 8133 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_repair_table(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 38702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1258: +#line 8143 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags = T_MEDIUM; } +#line 38710 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1259: +#line 8144 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38718 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1260: +#line 8148 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38726 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1261: +#line 8149 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38734 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1262: +#line 8153 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_QUICK; } +#line 38742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1263: +#line 8154 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_EXTEND; } +#line 38750 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1264: +#line 8155 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.sql_flags|= TT_USEFRM; } +#line 38758 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1265: +#line 8159 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 38766 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1266: +#line 8160 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } +#line 38774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1267: +#line 8165 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_ANALYZE; + lex->no_write_to_binlog= (yyvsp[-1].num); + lex->check_opt.init(); + lex->alter_info.reset(); + /* Will be overridden during execution. */ + YYPS->m_lock_type= TL_UNLOCK; + } +#line 38790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1268: +#line 8175 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_analyze_table(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 38804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1272: +#line 8195 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38812 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1273: +#line 8197 "/home/buildbot/git/sql/sql_yacc.yy" + + { + thd->lex->with_persistent_for_clause= TRUE; + } +#line 38822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1274: +#line 8204 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38830 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1275: +#line 8206 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38838 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1276: +#line 8210 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1277: +#line 8212 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + lex->column_list= new (thd->mem_root) List<LEX_STRING>; + if (unlikely(lex->column_list == NULL)) + MYSQL_YYABORT; + } +#line 38859 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1278: +#line 8220 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 38867 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1279: +#line 8224 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1280: +#line 8226 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + lex->index_list= new (thd->mem_root) List<LEX_STRING>; + if (unlikely(lex->index_list == NULL)) + MYSQL_YYABORT; + } +#line 38888 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1281: +#line 8234 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 38896 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1282: +#line 8239 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38904 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1283: +#line 8241 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->column_list->push_back((LEX_STRING*) + thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); + } +#line 38915 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1284: +#line 8246 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->column_list->push_back((LEX_STRING*) + thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); + } +#line 38926 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1285: +#line 8254 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 38934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1288: +#line 8261 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->index_list->push_back((LEX_STRING*) + thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), + thd->mem_root); + } +#line 38946 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1289: +#line 8268 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX_STRING str= {(char*) "PRIMARY", 7}; + Lex->index_list->push_back((LEX_STRING*) + thd->memdup(&str, sizeof(LEX_STRING)), + thd->mem_root); + } +#line 38959 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1290: +#line 8278 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; + Lex->comment= (yyvsp[0].lex_str); + Lex->ident.str= NULL; + Lex->ident.length= 0; + } +#line 38972 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1291: +#line 8286 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; + Lex->comment= (yyvsp[-3].lex_str); + Lex->ident= (yyvsp[0].lex_str); + } +#line 38984 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1293: +#line 8296 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->table_type= TABLE_TYPE_VIEW; } +#line 38992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1295: +#line 8301 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + + lex->sql_command = SQLCOM_CHECK; + lex->check_opt.init(); + lex->alter_info.reset(); + /* Will be overridden during execution. */ + YYPS->m_lock_type= TL_UNLOCK; + } +#line 39008 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1296: +#line 8311 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "CHECK")); + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_check_table(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 39024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1297: +#line 8323 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags = T_MEDIUM; } +#line 39032 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1298: +#line 8324 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 39040 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1299: +#line 8328 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 39048 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1300: +#line 8329 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 39056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1301: +#line 8333 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_QUICK; } +#line 39064 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1302: +#line 8334 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_FAST; } +#line 39072 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1303: +#line 8335 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_MEDIUM; } +#line 39080 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1304: +#line 8336 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_EXTEND; } +#line 39088 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1305: +#line 8337 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } +#line 39096 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1306: +#line 8338 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } +#line 39104 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1307: +#line 8342 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 39112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1308: +#line 8343 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } +#line 39120 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1309: +#line 8348 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_OPTIMIZE; + lex->no_write_to_binlog= (yyvsp[-1].num); + lex->check_opt.init(); + lex->alter_info.reset(); + /* Will be overridden during execution. */ + YYPS->m_lock_type= TL_UNLOCK; + } +#line 39136 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1310: +#line 8358 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_optimize_table(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 39150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1311: +#line 8368 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 39158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1312: +#line 8369 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 39166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1313: +#line 8370 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 39174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1314: +#line 8375 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_RENAME_TABLE; + Lex->create_info.set((yyvsp[0].object_ddl_options)); + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 39187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1315: +#line 8382 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 39197 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1316: +#line 8386 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_RENAME_USER; + } +#line 39207 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1317: +#line 8393 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[-2].lex_user), thd->mem_root) || + Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 39219 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1318: +#line 8399 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[-2].lex_user), thd->mem_root) || + Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 39231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1321: +#line 8413 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + SELECT_LEX *sl= lex->current_select; + if (unlikely(!sl->add_table_to_list(thd, (yyvsp[-3].table),NULL, + TL_OPTION_UPDATING, + TL_IGNORE, MDL_EXCLUSIVE)) || + unlikely(!sl->add_table_to_list(thd, (yyvsp[0].table), NULL, + TL_OPTION_UPDATING, + TL_IGNORE, MDL_EXCLUSIVE))) + MYSQL_YYABORT; + } +#line 39249 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1322: +#line 8428 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.reset(); + } +#line 39259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1323: +#line 8432 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE; + lex->ident= (yyvsp[0].lex_str); + } +#line 39271 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1328: +#line 8451 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, 0, TL_READ, + MDL_SHARED_READ, + Select-> + pop_index_hints()))) + MYSQL_YYABORT; + } +#line 39285 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1329: +#line 8462 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, 0, TL_READ, + MDL_SHARED_READ, + Select-> + pop_index_hints()))) + MYSQL_YYABORT; + } +#line 39299 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1330: +#line 8472 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= (yyvsp[0].ident_sys); } +#line 39307 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1331: +#line 8473 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str) = default_key_cache_base; } +#line 39315 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1332: +#line 8478 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command=SQLCOM_PRELOAD_KEYS; + lex->alter_info.reset(); + if (lex->main_select_push()) + MYSQL_YYABORT; + } +#line 39329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1333: +#line 8486 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 39339 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1338: +#line 8503 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, (yyvsp[0].num), TL_READ, + MDL_SHARED_READ, + Select-> + pop_index_hints()))) + MYSQL_YYABORT; + } +#line 39353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1339: +#line 8514 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-3].table), NULL, (yyvsp[0].num), TL_READ, + MDL_SHARED_READ, + Select-> + pop_index_hints()))) + MYSQL_YYABORT; + } +#line 39367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1340: +#line 8525 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->alter_info.partition_flags|= ALTER_PARTITION_ADMIN; + } +#line 39377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1342: +#line 8532 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->first_select_lex()->alloc_index_hints(thd); + Select->set_index_hint_type(INDEX_HINT_USE, + INDEX_HINT_MASK_ALL); + } +#line 39389 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1344: +#line 8541 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 39397 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1346: +#line 8547 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 39405 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1347: +#line 8548 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= TL_OPTION_IGNORE_LEAVES; } +#line 39413 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1348: +#line 8558 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->push_select((yyvsp[0].select_lex_unit)->fake_select_lex ? + (yyvsp[0].select_lex_unit)->fake_select_lex : + (yyvsp[0].select_lex_unit)->first_select())) + MYSQL_YYABORT; + } +#line 39426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1349: +#line 8565 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); + (yyvsp[-2].select_lex_unit)->set_with_clause(NULL); + if (Lex->select_finalize((yyvsp[-2].select_lex_unit), (yyvsp[0].select_lock))) + MYSQL_YYABORT; + } +#line 39439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1350: +#line 8572 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->push_select((yyvsp[0].select_lex_unit)->fake_select_lex ? + (yyvsp[0].select_lex_unit)->fake_select_lex : + (yyvsp[0].select_lex_unit)->first_select())) + MYSQL_YYABORT; + } +#line 39452 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1351: +#line 8579 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); + (yyvsp[-2].select_lex_unit)->set_with_clause((yyvsp[-3].with_clause)); + (yyvsp[-3].with_clause)->attach_to((yyvsp[-2].select_lex_unit)->first_select()); + if (Lex->select_finalize((yyvsp[-2].select_lex_unit), (yyvsp[0].select_lock))) + MYSQL_YYABORT; + } +#line 39466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1352: +#line 8590 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->push_select((yyvsp[0].select_lex))) + MYSQL_YYABORT; + } +#line 39477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1353: +#line 8595 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX_UNIT *unit; + if (!(unit = Lex->create_unit((yyvsp[-2].select_lex)))) + MYSQL_YYABORT; + if ((yyvsp[0].order_limit_lock)) + unit= Lex->add_tail_to_query_expression_body(unit, (yyvsp[0].order_limit_lock)); + if (Lex->select_finalize(unit)) + MYSQL_YYABORT; + } +#line 39493 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1354: +#line 8606 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->push_select((yyvsp[0].select_lex))) + MYSQL_YYABORT; + } +#line 39504 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1355: +#line 8611 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX_UNIT *unit; + if (!(unit = Lex->create_unit((yyvsp[-2].select_lex)))) + MYSQL_YYABORT; + if ((yyvsp[0].order_limit_lock)) + unit= Lex->add_tail_to_query_expression_body(unit, (yyvsp[0].order_limit_lock)); + unit->set_with_clause((yyvsp[-3].with_clause)); + (yyvsp[-3].with_clause)->attach_to((yyvsp[-2].select_lex)); + if (Lex->select_finalize(unit)) + MYSQL_YYABORT; + } +#line 39522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1356: +#line 8625 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 39530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1357: +#line 8626 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 39538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1358: +#line 8631 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->parsed_TVC_start()) + MYSQL_YYABORT; + } +#line 39549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1359: +#line 8636 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.select_lex)= Lex->parsed_TVC_end())) + MYSQL_YYABORT; + } +#line 39560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1360: +#line 8644 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel; + LEX *lex= Lex; + if (!(sel= lex->alloc_select(TRUE)) || lex->push_select(sel)) + MYSQL_YYABORT; + sel->init_select(); + sel->braces= FALSE; + } +#line 39575 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1361: +#line 8653 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= SELECT_LIST; + } +#line 39585 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1362: +#line 8657 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= NO_MATTER; + } +#line 39595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1363: +#line 8669 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lex)= Lex->pop_select(); + } +#line 39605 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1364: +#line 8682 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lex)= Lex->pop_select(); + } +#line 39615 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1365: +#line 8740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[0].select_lex_unit)->set_with_clause(NULL); + (yyval.select_lex_unit)= (yyvsp[0].select_lex_unit); + } +#line 39626 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1366: +#line 8746 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[0].select_lex_unit)->set_with_clause((yyvsp[-1].with_clause)); + (yyvsp[-1].with_clause)->attach_to((yyvsp[0].select_lex_unit)->first_select()); + (yyval.select_lex_unit)= (yyvsp[0].select_lex_unit); + } +#line 39638 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1367: +#line 8759 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex_unit)= (yyvsp[0].select_lex_unit); } +#line 39646 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1368: +#line 8760 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex_unit)= (yyvsp[0].select_lex_unit); } +#line 39654 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1369: +#line 8775 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[0].select_lex_unit)->first_select()->next_select()) + { + if (Lex->parsed_multi_operand_query_expression_body((yyvsp[0].select_lex_unit))) + MYSQL_YYABORT; + } + } +#line 39668 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1370: +#line 8783 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!(yyvsp[0].order_limit_lock)) + (yyval.select_lex_unit)= (yyvsp[-2].select_lex_unit); + else + (yyval.select_lex_unit)= Lex->add_tail_to_query_expression_body((yyvsp[-2].select_lex_unit), (yyvsp[0].order_limit_lock)); + } +#line 39681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1371: +#line 8790 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->push_select(!(yyvsp[0].select_lex_unit)->first_select()->next_select() ? + (yyvsp[0].select_lex_unit)->first_select() : (yyvsp[0].select_lex_unit)->fake_select_lex); + } +#line 39692 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1372: +#line 8795 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.select_lex_unit)= Lex->add_tail_to_query_expression_body_ext_parens((yyvsp[-2].select_lex_unit), (yyvsp[0].order_limit_lock)))) + MYSQL_YYABORT; + } +#line 39703 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1373: +#line 8803 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex_unit)= (yyvsp[-1].select_lex_unit); } +#line 39711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1374: +#line 8805 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= (yyvsp[-1].select_lex_unit)->first_select()->next_select() ? + (yyvsp[-1].select_lex_unit)->fake_select_lex : (yyvsp[-1].select_lex_unit)->first_select(); + sel->braces= true; + (yyval.select_lex_unit)= (yyvsp[-1].select_lex_unit); + } +#line 39724 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1375: +#line 8820 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->push_select((yyvsp[0].select_lex)); + if (!((yyval.select_lex_unit)= Lex->create_unit((yyvsp[0].select_lex)))) + MYSQL_YYABORT; + } +#line 39736 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1376: +#line 8827 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!(yyvsp[-1].select_lex_unit)->first_select()->next_select()) + { + Lex->pop_select(); + } + } +#line 39749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1377: +#line 8834 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.select_lex_unit)= Lex->add_primary_to_query_expression_body((yyvsp[-3].select_lex_unit), (yyvsp[0].select_lex), + (yyvsp[-2].unit_operation).unit_type, + (yyvsp[-2].unit_operation).distinct))) + MYSQL_YYABORT; + } +#line 39762 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1378: +#line 8843 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.select_lex_unit)= Lex->add_primary_to_query_expression_body_ext_parens( + (yyvsp[-2].select_lex_unit), (yyvsp[0].select_lex), + (yyvsp[-1].unit_operation).unit_type, + (yyvsp[-1].unit_operation).distinct))) + MYSQL_YYABORT; + } +#line 39776 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1379: +#line 8859 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 39784 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1380: +#line 8861 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex)= (yyvsp[0].select_lex_unit)->first_select(); } +#line 39792 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1381: +#line 8870 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_lex)= (yyvsp[0].select_lex);} +#line 39800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1382: +#line 8875 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.select_lex)= Lex->parsed_subselect((yyvsp[0].select_lex_unit)))) + YYABORT; + } +#line 39811 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1383: +#line 8916 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!(yyvsp[0].select_lex_unit)->fake_select_lex) + (yyvsp[0].select_lex_unit)->first_select()->braces= false; + else + (yyvsp[0].select_lex_unit)->fake_select_lex->braces= false; + if (!((yyval.select_lex)= Lex->parsed_subselect((yyvsp[0].select_lex_unit)))) + YYABORT; + } +#line 39826 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1384: +#line 8925 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].select_lex_unit)->set_with_clause((yyvsp[-2].with_clause)); + (yyvsp[-2].with_clause)->attach_to((yyvsp[-1].select_lex_unit)->first_select()); + if (!((yyval.select_lex)= Lex->parsed_subselect((yyvsp[-1].select_lex_unit)))) + YYABORT; + } +#line 39839 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1388: +#line 8944 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->context.table_list= + Select->context.first_name_resolution_table= + Select->table_list.first; + } +#line 39851 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1391: +#line 8959 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((Select->options & SELECT_DISTINCT) && + (Select->options & SELECT_ALL))) + my_yyabort_error((ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT")); + } +#line 39863 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1392: +#line 8968 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.vers_range_unit)= VERS_TIMESTAMP; + } +#line 39873 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1393: +#line 8972 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.vers_range_unit)= VERS_TRX_ID; + } +#line 39883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1394: +#line 8976 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.vers_range_unit)= VERS_TIMESTAMP; + } +#line 39893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1395: +#line 8983 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item; + if (!(item= type_handler_datetime.create_literal_item(thd, + (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, + YYCSCL, true))) + MYSQL_YYABORT; + (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, item); + } +#line 39908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1396: +#line 8992 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, (yyvsp[0].item)); + } +#line 39918 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1397: +#line 8996 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.vers_history_point)= Vers_history_point((yyvsp[-1].vers_range_unit), (yyvsp[0].item)); + } +#line 39928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1398: +#line 9004 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(0 == strcasecmp((yyvsp[-4].ident_sys).str, "SYSTEM_TIME"))) + { + thd->parse_error(ER_SYNTAX_ERROR, (yyvsp[-5].simple_string)); + MYSQL_YYABORT; + } + Lex->period_conditions.init(SYSTEM_TIME_FROM_TO, + Vers_history_point(VERS_TIMESTAMP, (yyvsp[-2].item)), + Vers_history_point(VERS_TIMESTAMP, (yyvsp[0].item)), + (yyvsp[-4].ident_sys)); + } +#line 39946 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1399: +#line 9019 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= false; + } +#line 39956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1400: +#line 9023 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= true; + } +#line 39966 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1401: +#line 9030 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= false; + } +#line 39976 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1402: +#line 9034 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= true; + } +#line 39986 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1403: +#line 9041 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->vers_conditions.init(SYSTEM_TIME_AS_OF, (yyvsp[0].vers_history_point)); + } +#line 39996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1404: +#line 9045 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->vers_conditions.init(SYSTEM_TIME_ALL); + } +#line 40006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1405: +#line 9049 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->vers_conditions.init(SYSTEM_TIME_FROM_TO, (yyvsp[-2].vers_history_point), (yyvsp[0].vers_history_point)); + } +#line 40016 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1406: +#line 9053 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->vers_conditions.init(SYSTEM_TIME_BETWEEN, (yyvsp[-2].vers_history_point), (yyvsp[0].vers_history_point)); + } +#line 40026 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1410: +#line 9066 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Allow this flag once per query. + */ + if (Select->options & OPTION_NO_QUERY_CACHE) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "SQL_NO_CACHE")); + Select->options|= OPTION_NO_QUERY_CACHE; + } +#line 40041 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1411: +#line 9075 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Allow this flag once per query. + */ + if (Select->options & OPTION_TO_QUERY_CACHE) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "SQL_CACHE")); + Select->options|= OPTION_TO_QUERY_CACHE; + } +#line 40056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1412: +#line 9088 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock)= (yyvsp[0].select_lock); + (yyval.select_lock).defined_lock= TRUE; + (yyval.select_lock).update_lock= TRUE; + } +#line 40068 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1413: +#line 9094 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock)= (yyvsp[0].select_lock); + (yyval.select_lock).defined_lock= TRUE; + (yyval.select_lock).update_lock= FALSE; + } +#line 40080 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1414: +#line 9104 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock).empty(); + } +#line 40090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1415: +#line 9108 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock)= (yyvsp[0].select_lock); + } +#line 40100 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1416: +#line 9116 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock).empty(); + } +#line 40110 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1417: +#line 9120 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock).defined_timeout= TRUE; + (yyval.select_lock).timeout= (yyvsp[0].ulong_num); + } +#line 40121 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1418: +#line 9125 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock).defined_timeout= TRUE; + (yyval.select_lock).timeout= 0; + } +#line 40132 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1421: +#line 9135 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) + Item_field(thd, &thd->lex->current_select->context, + star_clex_str); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + if (unlikely(add_item_to_list(thd, item))) + MYSQL_YYABORT; + (thd->lex->current_select->with_wild)++; + } +#line 40149 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1422: +#line 9149 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_item_to_list(thd, (yyvsp[-1].item)))) + MYSQL_YYABORT; + } +#line 40160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1423: +#line 9154 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT((yyvsp[-3].simple_string) < (yyvsp[-1].simple_string)); + + if (unlikely(add_item_to_list(thd, (yyvsp[-2].item)))) + MYSQL_YYABORT; + if ((yyvsp[0].lex_str).str) + { + if (unlikely(Lex->sql_command == SQLCOM_CREATE_VIEW && + check_column_name((yyvsp[0].lex_str).str))) + my_yyabort_error((ER_WRONG_COLUMN_NAME, MYF(0), (yyvsp[0].lex_str).str)); + (yyvsp[-2].item)->common_flags&= ~IS_AUTO_GENERATED_NAME; + (yyvsp[-2].item)->set_name(thd, (yyvsp[0].lex_str)); + } + else if (!(yyvsp[-2].item)->name.str || (yyvsp[-2].item)->name.str == item_empty_name) + { + (yyvsp[-2].item)->set_name(thd, (yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); + } + } +#line 40185 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1424: +#line 9175 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.simple_string)= (char*) YYLIP->get_tok_start(); + } +#line 40195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1425: +#line 9181 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start(); + } +#line 40205 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1426: +#line 9187 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end_rtrim(); + } +#line 40215 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1427: +#line 9193 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=null_clex_str;} +#line 40223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1428: +#line 9194 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].ident_sys); } +#line 40231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1429: +#line 9195 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 40239 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1430: +#line 9196 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].ident_sys); } +#line 40247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1431: +#line 9197 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 40255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1432: +#line 9201 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= NOT_FIXED_DEC; } +#line 40263 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1433: +#line 9202 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= NOT_FIXED_DEC; } +#line 40271 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1434: +#line 9203 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (yyvsp[-1].ulong_num); } +#line 40279 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1435: +#line 9207 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 40287 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1436: +#line 9208 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 40295 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1437: +#line 9209 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (yyvsp[-1].ulong_num); } +#line 40303 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1438: +#line 9213 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 40311 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1439: +#line 9214 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 40319 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1440: +#line 9220 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Design notes: + Do not use a manually maintained stack like thd->lex->xxx_list, + but use the internal bison stack ($$, $1 and $3) instead. + Using the bison stack is: + - more robust to changes in the grammar, + - guaranteed to be in sync with the parser state, + - better for performances (no memory allocation). + */ + Item_cond_or *item1; + Item_cond_or *item3; + if (is_cond_or((yyvsp[-2].item))) + { + item1= (Item_cond_or*) (yyvsp[-2].item); + if (is_cond_or((yyvsp[0].item))) + { + item3= (Item_cond_or*) (yyvsp[0].item); + /* + (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2) + */ + item3->add_at_head(item1->argument_list()); + (yyval.item) = (yyvsp[0].item); + } + else + { + /* + (X1 OR X2) OR Y ==> OR (X1, X2, Y) + */ + item1->add((yyvsp[0].item), thd->mem_root); + (yyval.item) = (yyvsp[-2].item); + } + } + else if (is_cond_or((yyvsp[0].item))) + { + item3= (Item_cond_or*) (yyvsp[0].item); + /* + X OR (Y1 OR Y2) ==> OR (X, Y1, Y2) + */ + item3->add_at_head((yyvsp[-2].item), thd->mem_root); + (yyval.item) = (yyvsp[0].item); + } + else + { + /* X OR Y */ + (yyval.item)= new (thd->mem_root) Item_cond_or(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } + } +#line 40376 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1441: +#line 9271 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* XOR is a proprietary extension */ + (yyval.item)= new (thd->mem_root) Item_func_xor(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40389 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1442: +#line 9278 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* See comments in rule expr: expr or expr */ + Item_cond_and *item1; + Item_cond_and *item3; + if (is_cond_and((yyvsp[-2].item))) + { + item1= (Item_cond_and*) (yyvsp[-2].item); + if (is_cond_and((yyvsp[0].item))) + { + item3= (Item_cond_and*) (yyvsp[0].item); + /* + (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2) + */ + item3->add_at_head(item1->argument_list()); + (yyval.item) = (yyvsp[0].item); + } + else + { + /* + (X1 AND X2) AND Y ==> AND (X1, X2, Y) + */ + item1->add((yyvsp[0].item), thd->mem_root); + (yyval.item) = (yyvsp[-2].item); + } + } + else if (is_cond_and((yyvsp[0].item))) + { + item3= (Item_cond_and*) (yyvsp[0].item); + /* + X AND (Y1 AND Y2) ==> AND (X, Y1, Y2) + */ + item3->add_at_head((yyvsp[-2].item), thd->mem_root); + (yyval.item) = (yyvsp[0].item); + } + else + { + /* X AND Y */ + (yyval.item)= new (thd->mem_root) Item_cond_and(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } + } +#line 40438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1443: +#line 9321 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= negate_expression(thd, (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1444: +#line 9327 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_istrue(thd, (yyvsp[-2].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40462 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1445: +#line 9333 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isnottrue(thd, (yyvsp[-3].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40474 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1446: +#line 9339 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isfalse(thd, (yyvsp[-2].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1447: +#line 9345 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isnotfalse(thd, (yyvsp[-3].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40498 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1448: +#line 9351 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isnull(thd, (yyvsp[-2].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1449: +#line 9357 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isnotnull(thd, (yyvsp[-3].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1450: +#line 9363 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isnull(thd, (yyvsp[-2].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40534 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1451: +#line 9369 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_isnotnull(thd, (yyvsp[-3].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1452: +#line 9375 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_equal(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1453: +#line 9381 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (*(yyvsp[-1].boolfunc2creator))(0)->create(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40570 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1454: +#line 9387 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= all_any_subquery_creator(thd, (yyvsp[-5].item), (yyvsp[-4].boolfunc2creator), (yyvsp[-3].num), (yyvsp[-1].select_lex)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1456: +#line 9397 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_in_subselect(thd, (yyvsp[-2].item), (yyvsp[0].select_lex)); + if (unlikely(!(yyval.item))) + MYSQL_YYABORT; + } +#line 40594 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1457: +#line 9403 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_in_subselect(thd, (yyvsp[-3].item), (yyvsp[0].select_lex)); + if (unlikely(!item)) + MYSQL_YYABORT; + (yyval.item)= negate_expression(thd, item); + if (unlikely(!(yyval.item))) + MYSQL_YYABORT; + } +#line 40609 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1458: +#line 9412 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[-4].item), true, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40621 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1459: +#line 9418 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); + (yyvsp[-1].item_list)->push_front((yyvsp[-6].item), thd->mem_root); + (yyval.item)= new (thd->mem_root) Item_func_in(thd, *(yyvsp[-1].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1460: +#line 9426 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[-5].item), false, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1461: +#line 9432 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); + (yyvsp[-1].item_list)->push_front((yyvsp[-7].item), thd->mem_root); + Item_func_in *item= new (thd->mem_root) Item_func_in(thd, *(yyvsp[-1].item_list)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= item->neg_transformer(thd); + } +#line 40662 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1462: +#line 9441 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_between(thd, (yyvsp[-4].item), (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40674 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1463: +#line 9447 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item_func_between *item; + item= new (thd->mem_root) Item_func_between(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= item->neg_transformer(thd); + } +#line 40688 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1464: +#line 9455 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item1= new (thd->mem_root) Item_func_soundex(thd, (yyvsp[-3].item)); + Item *item4= new (thd->mem_root) Item_func_soundex(thd, (yyvsp[0].item)); + if (unlikely(item1 == NULL) || unlikely(item4 == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_func_eq(thd, item1, item4); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40704 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1465: +#line 9465 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_like(thd, (yyvsp[-2].item), (yyvsp[0].item), escape(thd), false); + if (unlikely(!(yyval.item))) + MYSQL_YYABORT; + } +#line 40716 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1466: +#line 9471 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->escape_used= true; + (yyval.item)= new (thd->mem_root) Item_func_like(thd, (yyvsp[-4].item), (yyvsp[-2].item), (yyvsp[0].item), true); + if (unlikely(!(yyval.item))) + MYSQL_YYABORT; + } +#line 40729 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1467: +#line 9478 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_func_like(thd, (yyvsp[-3].item), (yyvsp[0].item), escape(thd), false); + if (unlikely(!item)) + MYSQL_YYABORT; + (yyval.item)= item->neg_transformer(thd); + } +#line 40742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1468: +#line 9485 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->escape_used= true; + Item *item= new (thd->mem_root) Item_func_like(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[0].item), true); + if (unlikely(!item)) + MYSQL_YYABORT; + (yyval.item)= item->neg_transformer(thd); + } +#line 40756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1469: +#line 9493 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_regex(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40768 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1470: +#line 9499 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_func_regex(thd, (yyvsp[-3].item), (yyvsp[0].item)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= negate_expression(thd, item); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40783 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1472: +#line 9512 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_bit_or(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40795 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1473: +#line 9518 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_bit_and(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1474: +#line 9524 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_shift_left(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40819 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1475: +#line 9530 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_shift_right(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1476: +#line 9536 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_concat_operator_oracle(thd, + (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40844 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1477: +#line 9543 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_plus(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40856 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1478: +#line 9549 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_minus(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1479: +#line 9555 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].interval), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40880 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1480: +#line 9561 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].interval), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1481: +#line 9568 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40904 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1482: +#line 9574 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1483: +#line 9580 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1484: +#line 9586 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_mul(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1485: +#line 9592 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_div(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1486: +#line 9598 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40964 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1487: +#line 9604 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_int_div(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40976 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1488: +#line 9610 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 40988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1489: +#line 9616 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_bit_xor(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41000 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1499: +#line 9645 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.boolfunc2creator) = &comp_eq_creator; } +#line 41008 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1500: +#line 9646 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.boolfunc2creator) = &comp_ge_creator; } +#line 41016 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1501: +#line 9647 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.boolfunc2creator) = &comp_gt_creator; } +#line 41024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1502: +#line 9648 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.boolfunc2creator) = &comp_le_creator; } +#line 41032 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1503: +#line 9649 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.boolfunc2creator) = &comp_lt_creator; } +#line 41040 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1504: +#line 9650 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.boolfunc2creator) = &comp_ne_creator; } +#line 41048 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1505: +#line 9654 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 1; } +#line 41056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1506: +#line 9655 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 0; } +#line 41064 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1507: +#line 9660 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_dyncol_type).set(DYN_COL_NULL); /* automatic type */ + Lex->charset= NULL; + } +#line 41075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1508: +#line 9664 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } +#line 41083 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1509: +#line 9668 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } +#line 41091 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1510: +#line 9669 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } +#line 41099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1511: +#line 9670 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } +#line 41107 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1512: +#line 9674 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_INT); } +#line 41115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1513: +#line 9675 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_UINT); } +#line 41123 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1514: +#line 9676 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 41131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1515: +#line 9677 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 41139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1516: +#line 9678 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 41147 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1517: +#line 9679 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_DECIMAL, (yyvsp[0].Lex_length_and_dec)); } +#line 41155 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1518: +#line 9683 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_DATE); } +#line 41163 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1519: +#line 9684 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_TIME, 0, (yyvsp[0].const_simple_string)); } +#line 41171 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1520: +#line 9685 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_dyncol_type).set(DYN_COL_DATETIME, 0, (yyvsp[0].const_simple_string)); } +#line 41179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1521: +#line 9690 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->charset= thd->variables.collation_connection; } +#line 41187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1522: +#line 9692 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_dyncol_type).set(DYN_COL_STRING); + } +#line 41197 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1523: +#line 9696 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_dyncol_type).set(DYN_COL_STRING); + Lex->charset= national_charset_info; + } +#line 41208 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1524: +#line 9704 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + (yyval.dyncol_def)= (DYNCALL_CREATE_DEF *) + alloc_root(thd->mem_root, sizeof(DYNCALL_CREATE_DEF)); + if (unlikely((yyval.dyncol_def) == NULL)) + MYSQL_YYABORT; + (yyval.dyncol_def)->key= (yyvsp[-3].item); + (yyval.dyncol_def)->value= (yyvsp[-1].item); + (yyval.dyncol_def)->type= (DYNAMIC_COLUMN_TYPE)(yyvsp[0].Lex_dyncol_type).dyncol_type(); + (yyval.dyncol_def)->cs= lex->charset; + if ((yyvsp[0].Lex_dyncol_type).length()) + (yyval.dyncol_def)->len= strtoul((yyvsp[0].Lex_dyncol_type).length(), NULL, 10); + else + (yyval.dyncol_def)->len= 0; + if ((yyvsp[0].Lex_dyncol_type).dec()) + (yyval.dyncol_def)->frac= strtoul((yyvsp[0].Lex_dyncol_type).dec(), NULL, 10); + else + (yyval.dyncol_def)->len= 0; + } +#line 41234 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1525: +#line 9727 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.dyncol_def_list)= new (thd->mem_root) List<DYNCALL_CREATE_DEF>; + if (unlikely((yyval.dyncol_def_list) == NULL)) + MYSQL_YYABORT; + (yyval.dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); + } +#line 41247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1526: +#line 9734 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-2].dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); + (yyval.dyncol_def_list)= (yyvsp[-2].dyncol_def_list); + } +#line 41258 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1527: +#line 9742 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ISOPEN; } +#line 41266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1528: +#line 9743 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_FOUND; } +#line 41274 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1529: +#line 9744 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_NOTFOUND; } +#line 41282 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1530: +#line 9745 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ROWCOUNT; } +#line 41290 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1531: +#line 9750 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_plsql_cursor_attr(thd, &(yyvsp[-2].ident_sys), (yyvsp[0].plsql_cursor_attr))))) + MYSQL_YYABORT; + } +#line 41301 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1532: +#line 9758 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } +#line 41309 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1533: +#line 9759 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_LEADING, (yyvsp[-2].item), (yyvsp[0].item)); } +#line 41317 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1534: +#line 9760 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_TRAILING, (yyvsp[-2].item), (yyvsp[0].item)); } +#line 41325 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1535: +#line 9761 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } +#line 41333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1536: +#line 9762 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_LEADING, (yyvsp[0].item)); } +#line 41341 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1537: +#line 9763 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_TRAILING, (yyvsp[0].item)); } +#line 41349 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1538: +#line 9764 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } +#line 41357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1539: +#line 9765 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } +#line 41365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1546: +#line 9803 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item_param); } +#line 41373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1548: +#line 9806 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!Lex->select_stack_top) + { + my_error(ER_INVALID_GROUP_FUNC_USE, MYF(0)); + MYSQL_YYABORT; + } + } +#line 41387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1549: +#line 9814 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!Lex->select_stack_top) + { + my_error(ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION, MYF(0)); + MYSQL_YYABORT; + } + } +#line 41401 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1551: +#line 9823 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); + (yyval.item)= new (thd->mem_root) Item_row(thd, *(yyvsp[-1].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41414 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1552: +#line 9830 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_exists_subselect(thd, (yyvsp[-1].select_lex)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1553: +#line 9836 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= (yyvsp[-1].item)->make_odbc_literal(thd, &(yyvsp[-2].ident_sys))))) + MYSQL_YYABORT; + } +#line 41437 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1554: +#line 9841 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-5].item_list)->push_front((yyvsp[-2].item), thd->mem_root); + Item_func_match *i1= new (thd->mem_root) Item_func_match(thd, *(yyvsp[-5].item_list), + (yyvsp[-1].num)); + if (unlikely(i1 == NULL)) + MYSQL_YYABORT; + Select->add_ftfunc_to_list(thd, i1); + (yyval.item)= i1; + } +#line 41453 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1555: +#line 9851 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= (yyvsp[-1].Lex_cast_type).create_typecast_item_or_error(thd, (yyvsp[-3].item), + Lex->charset)))) + MYSQL_YYABORT; + } +#line 41465 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1556: +#line 9857 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= new(thd->mem_root) Item_func_case_searched(thd, *(yyvsp[-1].item_list))))) + MYSQL_YYABORT; + } +#line 41476 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1557: +#line 9862 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].item_list)->push_front((yyvsp[-2].item), thd->mem_root); + if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_case_simple(thd, *(yyvsp[-1].item_list))))) + MYSQL_YYABORT; + } +#line 41488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1558: +#line 9868 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= (yyvsp[-1].Lex_cast_type).create_typecast_item_or_error(thd, (yyvsp[-3].item), + Lex->charset)))) + MYSQL_YYABORT; + } +#line 41500 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1559: +#line 9874 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_conv_charset(thd, (yyvsp[-3].item), (yyvsp[-1].charset)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41512 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1560: +#line 9880 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item_splocal *il= (yyvsp[-1].item)->get_item_splocal(); + if (unlikely(il)) + my_yyabort_error((ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str)); + (yyval.item)= new (thd->mem_root) Item_default_value(thd, Lex->current_context(), + (yyvsp[-1].item), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->default_used= TRUE; + } +#line 41529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1561: +#line 9891 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_insert_value(thd, Lex->current_context(), + (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41542 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1562: +#line 9898 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[0].table))))) + MYSQL_YYABORT; + } +#line 41553 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1563: +#line 9903 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[-1].table))))) + MYSQL_YYABORT; + } +#line 41564 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1564: +#line 9908 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[0].table))))) + MYSQL_YYABORT; + } +#line 41575 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1565: +#line 9913 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[-1].table))))) + MYSQL_YYABORT; + } +#line 41586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1566: +#line 9918 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-3].table), (yyvsp[-1].longlong_number), 0, 1)))) + MYSQL_YYABORT; + } +#line 41597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1567: +#line 9923 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-5].table), (yyvsp[-3].longlong_number), 0, (yyvsp[-1].ulong_num))))) + MYSQL_YYABORT; + } +#line 41608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1568: +#line 9928 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-7].table), (yyvsp[-5].longlong_number), (yyvsp[-1].ulonglong_number), (yyvsp[-3].ulong_num))))) + MYSQL_YYABORT; + } +#line 41619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1571: +#line 9937 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[-1].item); } +#line 41627 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1572: +#line 9939 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.item)= Lex->create_item_query_expression(thd, (yyvsp[0].select_lex)->master_unit()))) + MYSQL_YYABORT; + } +#line 41638 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1574: +#line 9948 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_set_collation(thd, (yyvsp[-2].item), (yyvsp[0].charset))))) + MYSQL_YYABORT; + } +#line 41649 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1576: +#line 9957 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Type_cast_attributes at(&my_charset_bin); + if (unlikely(!((yyval.item)= type_handler_long_blob.create_typecast_item(thd, (yyvsp[0].item), at)))) + MYSQL_YYABORT; + } +#line 41661 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1577: +#line 9963 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (yyvsp[0].item); + } +#line 41671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1578: +#line 9967 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (yyvsp[0].item)->neg(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41683 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1579: +#line 9973 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_bit_neg(thd, (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1580: +#line 9979 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= negate_expression(thd, (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1582: +#line 9989 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_concat(thd, (yyvsp[-2].item), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41719 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1583: +#line 9998 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_datetime_typecast(thd, (yyvsp[-1].item), + AUTO_SEC_PART_DIGITS); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41732 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1584: +#line 10005 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_timestamp(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41744 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1585: +#line 10019 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_char(thd, *(yyvsp[-1].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1586: +#line 10025 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_char(thd, *(yyvsp[-3].item_list), (yyvsp[-1].charset)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41768 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1587: +#line 10031 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_current_user(thd, + Lex->current_context()); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); + Lex->safe_to_cache_query= 0; + } +#line 41783 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1588: +#line 10040 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_current_role(thd, + Lex->current_context()); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); + Lex->safe_to_cache_query= 0; + } +#line 41798 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1589: +#line 10049 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_typecast(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1590: +#line 10055 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_dayofmonth(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1591: +#line 10061 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_hour(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1592: +#line 10067 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_insert(thd, (yyvsp[-7].item), (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1593: +#line 10073 "/home/buildbot/git/sql/sql_yacc.yy" + + { + List<Item> *list= new (thd->mem_root) List<Item>; + if (unlikely(list == NULL)) + MYSQL_YYABORT; + if (unlikely(list->push_front((yyvsp[-1].item), thd->mem_root)) || + unlikely(list->push_front((yyvsp[-3].item), thd->mem_root))) + MYSQL_YYABORT; + Item_row *item= new (thd->mem_root) Item_row(thd, *list); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_func_interval(thd, item); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41867 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1594: +#line 10088 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); + (yyvsp[-1].item_list)->push_front((yyvsp[-5].item), thd->mem_root); + Item_row *item= new (thd->mem_root) Item_row(thd, *(yyvsp[-1].item_list)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_func_interval(thd, item); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41884 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1595: +#line 10099 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_left(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41896 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1596: +#line 10105 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_minute(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1597: +#line 10111 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_month(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41920 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1598: +#line 10117 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_right(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41932 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1599: +#line 10123 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_second(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41944 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1600: +#line 10129 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_oracle_sql_rowcount(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); + Lex->safe_to_cache_query= 0; + } +#line 41958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1601: +#line 10137 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_time_typecast(thd, (yyvsp[-1].item), + AUTO_SEC_PART_DIGITS); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 41971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1602: +#line 10144 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (yyvsp[0].item); + } +#line 41981 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1603: +#line 10148 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim(thd)))) + MYSQL_YYABORT; + } +#line 41992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1604: +#line 10153 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_user(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); + Lex->safe_to_cache_query=0; + } +#line 42006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1605: +#line 10161 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_year(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42018 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1606: +#line 10182 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-3].item), (yyvsp[-1].item), + INTERVAL_DAY, 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1607: +#line 10189 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1608: +#line 10195 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_curdate_local(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1609: +#line 10202 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_curtime_local(thd, (yyvsp[0].num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1610: +#line 10209 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1611: +#line 10215 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1612: +#line 10221 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_date_format(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1613: +#line 10227 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_date_format(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1614: +#line 10233 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_decode(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42129 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1615: +#line 10239 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); + if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_decode_oracle(thd, *(yyvsp[-1].item_list))))) + MYSQL_YYABORT; + } +#line 42141 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1616: +#line 10245 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)=new (thd->mem_root) Item_extract(thd, (yyvsp[-3].interval), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1617: +#line 10251 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_get_format(thd, (yyvsp[-3].date_time_type), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42165 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1618: +#line 10257 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1619: +#line 10264 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_locate(thd, (yyvsp[-1].item), (yyvsp[-3].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42190 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1620: +#line 10270 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-3].item), (yyvsp[-1].item), + INTERVAL_DAY, 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42203 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1621: +#line 10277 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42215 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1622: +#line 10283 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) + MYSQL_YYABORT; + } +#line 42226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1623: +#line 10288 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-3].item), (yyvsp[-1].item))))) + MYSQL_YYABORT; + } +#line 42237 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1624: +#line 10293 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) + MYSQL_YYABORT; + } +#line 42248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1625: +#line 10298 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-3].item), (yyvsp[-1].item))))) + MYSQL_YYABORT; + } +#line 42259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1626: +#line 10303 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Unlike other time-related functions, SYSDATE() is + replication-unsafe because it is not affected by the + TIMESTAMP variable. It is unsafe even if + sysdate_is_now=1, because the slave may have + sysdate_is_now=0. + */ + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); + if (global_system_variables.sysdate_is_now == 0) + (yyval.item)= new (thd->mem_root) Item_func_sysdate_local(thd, (yyvsp[0].num)); + else + (yyval.item)= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1627: +#line 10321 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-1].item), (yyvsp[-3].item), (yyvsp[-5].interval_time_st), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42295 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1628: +#line 10327 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_timestamp_diff(thd, (yyvsp[-3].item), (yyvsp[-1].item), (yyvsp[-5].interval_time_st)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42307 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1629: +#line 10333 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim_oracle(thd)))) + MYSQL_YYABORT; + } +#line 42318 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1630: +#line 10338 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_curdate_utc(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42331 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1631: +#line 10345 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_curtime_utc(thd, (yyvsp[0].num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42344 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1632: +#line 10352 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_now_utc(thd, (yyvsp[0].num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1633: +#line 10360 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= create_func_dyncol_add(thd, (yyvsp[-3].item), *(yyvsp[-1].dyncol_def_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1634: +#line 10367 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= create_func_dyncol_delete(thd, (yyvsp[-3].item), *(yyvsp[-1].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1635: +#line 10374 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_dyncol_check(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42393 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1636: +#line 10381 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= create_func_dyncol_create(thd, *(yyvsp[-1].dyncol_def_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42405 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1637: +#line 10388 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + (yyval.item)= create_func_dyncol_get(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].Lex_cast_type).type_handler(), + (yyvsp[-1].Lex_cast_type).length(), (yyvsp[-1].Lex_cast_type).dec(), + lex->charset); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1638: +#line 10405 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_ascii(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42432 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1639: +#line 10411 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_charset(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42444 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1640: +#line 10417 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_coalesce(thd, *(yyvsp[-1].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1641: +#line 10423 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_collation(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42468 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1642: +#line 10429 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_database(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->safe_to_cache_query=0; + } +#line 42481 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1643: +#line 10436 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_if(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42493 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1644: +#line 10442 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_format(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42505 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1645: +#line 10448 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_format(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42517 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1646: +#line 10457 "/home/buildbot/git/sql/sql_yacc.yy" + + { + List<Item> *list= new (thd->mem_root) List<Item>; + if (unlikely(list == NULL)) + MYSQL_YYABORT; + list->push_back((yyvsp[-1].item), thd->mem_root); + + (yyval.item)= new (thd->mem_root) Item_func_last_value(thd, *list); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42534 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1647: +#line 10468 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-3].item_list)->push_back((yyvsp[-1].item), thd->mem_root); + (yyval.item)= new (thd->mem_root) Item_func_last_value(thd, *(yyvsp[-3].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1648: +#line 10475 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_microsecond(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42559 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1649: +#line 10481 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42571 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1650: +#line 10487 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) + Item_func_password(thd, (yyvsp[-1].item), Item_func_password::OLD); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42584 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1651: +#line 10494 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item* i1; + i1= new (thd->mem_root) Item_func_password(thd, (yyvsp[-1].item)); + if (unlikely(i1 == NULL)) + MYSQL_YYABORT; + (yyval.item)= i1; + } +#line 42598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1652: +#line 10502 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_quarter(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42610 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1653: +#line 10508 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_repeat(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1654: +#line 10514 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_func_replace(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) + MYSQL_YYABORT; + } +#line 42633 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1655: +#line 10519 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_reverse(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42645 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1656: +#line 10525 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_row_count(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); + Lex->safe_to_cache_query= 0; + } +#line 42659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1657: +#line 10533 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_round(thd, (yyvsp[-3].item), (yyvsp[-1].item), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1658: +#line 10539 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_week(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42683 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1659: +#line 10545 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_week(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1660: +#line 10551 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-2].item), 0, 0, (yyvsp[-1].ulong_num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1661: +#line 10557 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) + Item_func_weight_string(thd, (yyvsp[-5].item), 0, (yyvsp[-2].ulong_num), + (yyvsp[-1].ulong_num) | MY_STRXFRM_PAD_WITH_SPACE); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42721 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1662: +#line 10565 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_char_typecast(thd, (yyvsp[-4].item), (yyvsp[-1].ulong_num), + &my_charset_bin); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) + Item_func_weight_string(thd, item, 0, (yyvsp[-1].ulong_num), + MY_STRXFRM_PAD_WITH_SPACE); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42739 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1663: +#line 10577 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-7].item), (yyvsp[-5].ulong_num), (yyvsp[-3].ulong_num), + (yyvsp[-1].ulong_num)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 42752 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1664: +#line 10596 "/home/buildbot/git/sql/sql_yacc.yy" + + { +#ifdef HAVE_DLOPEN + udf_func *udf= 0; + LEX *lex= Lex; + if (using_udf_functions && + (udf= find_udf((yyvsp[-1].ident_sys).str, (yyvsp[-1].ident_sys).length)) && + udf->type == UDFTYPE_AGGREGATE) + { + if (unlikely(lex->current_select->inc_in_sum_expr())) + { + thd->parse_error(); + MYSQL_YYABORT; + } + } + /* Temporary placing the result of find_udf in $3 */ + (yyval.udf)= udf; +#endif + } +#line 42777 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1665: +#line 10615 "/home/buildbot/git/sql/sql_yacc.yy" + + { + const Type_handler *h; + Create_func *builder; + Item *item= NULL; + + if (unlikely(check_routine_name(&(yyvsp[-4].ident_sys)))) + MYSQL_YYABORT; + + /* + Implementation note: + names are resolved with the following order: + - MySQL native functions, + - User Defined Functions, + - Constructors, like POINT(1,1) + - Stored Functions (assuming the current <use> database) + + This will be revised with WL#2128 (SQL PATH) + */ + if ((builder= find_native_function_builder(thd, &(yyvsp[-4].ident_sys)))) + { + item= builder->create_func(thd, &(yyvsp[-4].ident_sys), (yyvsp[-1].item_list)); + } + else if ((h= Type_handler::handler_by_name(thd, (yyvsp[-4].ident_sys))) && + (item= h->make_constructor_item(thd, (yyvsp[-1].item_list)))) + { + // Found a constructor with a proper argument count + } + else + { +#ifdef HAVE_DLOPEN + /* Retrieving the result of find_udf */ + udf_func *udf= (yyvsp[-2].udf); + + if (udf) + { + if (udf->type == UDFTYPE_AGGREGATE) + { + Select->in_sum_expr--; + } + + item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[-1].item_list)); + } + else +#endif + { + builder= find_qualified_function_builder(thd); + DBUG_ASSERT(builder); + item= builder->create_func(thd, &(yyvsp[-4].ident_sys), (yyvsp[-1].item_list)); + } + } + + if (unlikely(! ((yyval.item)= item))) + MYSQL_YYABORT; + } +#line 42838 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1666: +#line 10670 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.item)= Lex->make_item_func_call_native_or_parse_error(thd, + (yyvsp[-3].kwd), (yyvsp[-1].item_list)))) + MYSQL_YYABORT; + } +#line 42850 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1667: +#line 10676 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.item)= Lex->make_item_func_call_native_or_parse_error(thd, + (yyvsp[-3].kwd), (yyvsp[-1].item_list)))) + MYSQL_YYABORT; + } +#line 42862 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1668: +#line 10682 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.item)= Lex->make_item_func_call_native_or_parse_error(thd, + (yyvsp[-3].kwd), (yyvsp[-1].item_list)))) + MYSQL_YYABORT; + } +#line 42874 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1669: +#line 10688 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_func_call_generic(thd, &(yyvsp[-5].ident_cli), &(yyvsp[-3].ident_cli), (yyvsp[-1].item_list))))) + MYSQL_YYABORT; + } +#line 42885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1670: +#line 10696 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } +#line 42893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1671: +#line 10698 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= FT_BOOL; } +#line 42901 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1672: +#line 10702 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= FT_NL; } +#line 42909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1673: +#line 10703 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= FT_NL; } +#line 42917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1674: +#line 10707 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 42925 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1675: +#line 10708 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= FT_EXPAND; } +#line 42933 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1676: +#line 10712 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= NULL; } +#line 42941 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1677: +#line 10713 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= (yyvsp[0].item_list); } +#line 42949 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1678: +#line 10718 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_list)= new (thd->mem_root) List<Item>; + if (unlikely((yyval.item_list) == NULL)) + MYSQL_YYABORT; + (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root); + } +#line 42962 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1679: +#line 10725 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); + (yyval.item_list)= (yyvsp[-2].item_list); + } +#line 42973 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1680: +#line 10733 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Use Item::name as a storage for the attribute value of user + defined function argument. It is safe to use Item::name + because the syntax will not allow having an explicit name here. + See WL#1017 re. udf attributes. + */ + if ((yyvsp[0].lex_str).str) + { + (yyvsp[-2].item)->common_flags&= ~IS_AUTO_GENERATED_NAME; + (yyvsp[-2].item)->set_name(thd, (yyvsp[0].lex_str)); + } + /* + A field has to have its proper name in order for name + resolution to work, something we are only guaranteed if we + parse it out. If we hijack the input stream with + remember_name we may get quoted or escaped names. + */ + else if ((yyvsp[-2].item)->type() != Item::FIELD_ITEM && + (yyvsp[-2].item)->type() != Item::REF_ITEM /* For HAVING */ ) + (yyvsp[-2].item)->set_name(thd, (yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); + (yyval.item)= (yyvsp[-2].item); + } +#line 43003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1681: +#line 10760 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_avg(thd, (yyvsp[-1].item), FALSE); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43015 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1682: +#line 10766 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_avg(thd, (yyvsp[-1].item), TRUE); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1683: +#line 10772 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_and(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1684: +#line 10778 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_or(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1685: +#line 10784 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_xor(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1686: +#line 10790 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *item= new (thd->mem_root) Item_int(thd, (int32) 0L, 1); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_sum_count(thd, item); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1687: +#line 10799 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_count(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1688: +#line 10805 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->in_sum_expr++; } +#line 43098 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1689: +#line 10807 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->in_sum_expr--; } +#line 43106 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1690: +#line 10809 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_count(thd, *(yyvsp[-2].item_list)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43118 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1691: +#line 10815 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_min(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43130 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1692: +#line 10826 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_min(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43142 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1693: +#line 10832 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_max(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43154 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1694: +#line 10838 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_max(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1695: +#line 10844 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_std(thd, (yyvsp[-1].item), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1696: +#line 10850 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_variance(thd, (yyvsp[-1].item), 0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43190 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1697: +#line 10856 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_std(thd, (yyvsp[-1].item), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1698: +#line 10862 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_variance(thd, (yyvsp[-1].item), 1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43214 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1699: +#line 10868 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_sum(thd, (yyvsp[-1].item), FALSE); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1700: +#line 10874 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_sum(thd, (yyvsp[-1].item), TRUE); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43238 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1701: +#line 10880 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->in_sum_expr++; } +#line 43246 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1702: +#line 10884 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->in_sum_expr--; + (yyval.item)= new (thd->mem_root) + Item_func_group_concat(thd, Lex->current_context(), + (yyvsp[-6].num), (yyvsp[-4].item_list), + sel->gorder_list, (yyvsp[-2].string), (yyvsp[-1].num), + sel->select_limit, + sel->offset_limit); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + sel->select_limit= NULL; + sel->offset_limit= NULL; + sel->explicit_limit= 0; + (yyvsp[-4].item_list)->empty(); + sel->gorder_list.empty(); + } +#line 43270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1703: +#line 10902 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->in_sum_expr++; } +#line 43278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1704: +#line 10905 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + List<Item> *args= (yyvsp[-3].item_list); + sel->in_sum_expr--; + if (args && args->elements > 1) + { + /* JSON_ARRAYAGG supports only one parameter */ + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), "JSON_ARRAYAGG"); + MYSQL_YYABORT; + } + String* s= new (thd->mem_root) String(",", 1, &my_charset_latin1); + if (unlikely(s == NULL)) + MYSQL_YYABORT; + + (yyval.item)= new (thd->mem_root) + Item_func_json_arrayagg(thd, Lex->current_context(), + (yyvsp[-5].num), args, + sel->gorder_list, s, (yyvsp[-1].num), + sel->select_limit, + sel->offset_limit); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + sel->select_limit= NULL; + sel->offset_limit= NULL; + sel->explicit_limit= 0; + (yyvsp[-3].item_list)->empty(); + sel->gorder_list.empty(); + } +#line 43313 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1705: +#line 10934 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->in_sum_expr++; } +#line 43321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1706: +#line 10936 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->in_sum_expr--; + + (yyval.item)= new (thd->mem_root) Item_func_json_objectagg(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43336 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1707: +#line 10948 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_window_func(thd, (Item_sum *) (yyvsp[-2].item), (yyvsp[0].lex_str_ptr)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) + MYSQL_YYABORT; + } +#line 43350 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1708: +#line 10957 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(Select->add_window_spec(thd, lex->win_ref, + Select->group_list, + Select->order_list, + lex->win_frame))) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_window_func(thd, (Item_sum *) (yyvsp[-2].item), + thd->lex->win_spec); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) + MYSQL_YYABORT; + } +#line 43371 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1710: +#line 10977 "/home/buildbot/git/sql/sql_yacc.yy" + + { + ((Item_sum *) (yyvsp[0].item))->mark_as_window_func_sum_expr(); + } +#line 43381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1711: +#line 10982 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item* item = (Item*)(yyvsp[0].item); + /* Only UDF aggregate here possible */ + if ((item == NULL) || + (item->type() != Item::SUM_FUNC_ITEM) + || (((Item_sum *)item)->sum_func() != Item_sum::UDF_SUM_FUNC)) + { + thd->parse_error(); + MYSQL_YYABORT; + } + + ((Item_sum *) (yyvsp[0].item))->mark_as_window_func_sum_expr(); + } +#line 43401 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1712: +#line 10999 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_row_number(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43413 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1713: +#line 11006 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_rank(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43425 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1714: +#line 11013 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_dense_rank(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43437 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1715: +#line 11020 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_percent_rank(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43449 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1716: +#line 11027 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_cume_dist(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1717: +#line 11034 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_ntile(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1718: +#line 11041 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_first_value(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1719: +#line 11048 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_last_value(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43497 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1720: +#line 11055 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_nth_value(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43509 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1721: +#line 11062 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* No second argument defaults to 1. */ + Item* item_offset= new (thd->mem_root) Item_uint(thd, 1); + if (unlikely(item_offset == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_sum_lead(thd, (yyvsp[-1].item), item_offset); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43525 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1722: +#line 11073 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_lead(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43537 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1723: +#line 11080 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* No second argument defaults to 1. */ + Item* item_offset= new (thd->mem_root) Item_uint(thd, 1); + if (unlikely(item_offset == NULL)) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_sum_lag(thd, (yyvsp[-1].item), item_offset); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43553 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1724: +#line 11091 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_lag(thd, (yyvsp[-3].item), (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1725: +#line 11103 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(Select->add_window_spec(thd, lex->win_ref, + Select->group_list, + Select->order_list, + NULL))) + MYSQL_YYABORT; + (yyval.item)= new (thd->mem_root) Item_window_func(thd, (Item_sum *) (yyvsp[-4].item), + thd->lex->win_spec); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) + MYSQL_YYABORT; + } +#line 43586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1726: +#line 11121 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->prepare_add_window_spec(thd); } +#line 43594 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1727: +#line 11123 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (yyvsp[-6].item); + } +#line 43604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1728: +#line 11127 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *args= new (thd->mem_root) Item_decimal(thd, "0.5", 3, + thd->charset()); + if (unlikely(args == NULL) || unlikely(thd->is_error())) + MYSQL_YYABORT; + Select->prepare_add_window_spec(thd); + if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),FALSE))) + MYSQL_YYABORT; + + (yyval.item)= new (thd->mem_root) Item_sum_percentile_cont(thd, args); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43624 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1729: +#line 11144 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_percentile_cont(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43636 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1730: +#line 11150 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_sum_percentile_disc(thd, (yyvsp[-1].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 43648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1731: +#line 11159 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) + MYSQL_YYABORT; + } +#line 43659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1732: +#line 11168 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_str_ptr)= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); + if (unlikely((yyval.lex_str_ptr) == NULL)) + MYSQL_YYABORT; + } +#line 43671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1733: +#line 11177 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(! Lex->parsing_options.allows_variable)) + my_yyabort_error((ER_VIEW_SELECT_VARIABLE, MYF(0))); + } +#line 43682 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1734: +#line 11182 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= (yyvsp[0].item); + } +#line 43692 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1735: +#line 11189 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item_func_set_user_var *item; + (yyval.item)= item= new (thd->mem_root) Item_func_set_user_var(thd, &(yyvsp[-2].lex_str), (yyvsp[0].item)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + LEX *lex= Lex; + lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + lex->set_var_list.push_back(item, thd->mem_root); + } +#line 43708 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1736: +#line 11199 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + LEX *lex= Lex; + lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + } +#line 43722 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1737: +#line 11207 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_sysvar(thd, (yyvsp[-1].var_type), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 43733 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1738: +#line 11212 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_sysvar(thd, (yyvsp[-3].var_type), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 43744 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1739: +#line 11219 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 0; } +#line 43752 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1740: +#line 11220 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 1; } +#line 43760 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1741: +#line 11225 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.string)= new (thd->mem_root) String(",", 1, &my_charset_latin1); + if (unlikely((yyval.string) == NULL)) + MYSQL_YYABORT; + } +#line 43772 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1742: +#line 11230 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.string) = (yyvsp[0].string); } +#line 43780 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1745: +#line 11240 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) + MYSQL_YYABORT; + } +#line 43791 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1746: +#line 11245 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) + MYSQL_YYABORT; + } +#line 43802 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1747: +#line 11252 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 0; } +#line 43810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1748: +#line 11253 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 1; } +#line 43818 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1749: +#line 11257 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 43826 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1750: +#line 11262 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); + } +#line 43836 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1751: +#line 11269 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->select_limit= (yyvsp[0].item); + sel->offset_limit= 0; + sel->explicit_limit= 1; + } +#line 43849 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1752: +#line 11276 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->select_limit= (yyvsp[0].item); + sel->offset_limit= (yyvsp[-2].item); + sel->explicit_limit= 1; + } +#line 43862 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1753: +#line 11283 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->select_limit= (yyvsp[-2].item); + sel->offset_limit= (yyvsp[0].item); + sel->explicit_limit= 1; + } +#line 43875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1754: +#line 11295 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->current_select->inc_in_sum_expr())) + { + thd->parse_error(); + MYSQL_YYABORT; + } + } +#line 43890 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1755: +#line 11304 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->in_sum_expr--; + (yyval.item)= (yyvsp[0].item); + } +#line 43901 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1756: +#line 11312 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].const_simple_string)); Lex->charset= &my_charset_bin; } +#line 43909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1757: +#line 11314 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->charset= thd->variables.collation_connection; } +#line 43917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1758: +#line 11316 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } +#line 43925 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1759: +#line 11318 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->charset= thd->variables.collation_connection; } +#line 43933 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1760: +#line 11320 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } +#line 43941 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1761: +#line 11322 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->charset= thd->variables.collation_connection; } +#line 43949 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1762: +#line 11324 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } +#line 43957 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1763: +#line 11326 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->charset= national_charset_info; + (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].const_simple_string), 0); + } +#line 43968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1764: +#line 11330 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } +#line 43976 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1765: +#line 11331 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } +#line 43984 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1766: +#line 11333 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->set_cast_type_udt(&(yyval.Lex_cast_type), (yyvsp[0].ident_sys))) + MYSQL_YYABORT; + } +#line 43995 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1767: +#line 11338 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->set_cast_type_udt(&(yyval.Lex_cast_type), (yyvsp[0].kwd))) + MYSQL_YYABORT; + } +#line 44006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1768: +#line 11343 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->set_cast_type_udt(&(yyval.Lex_cast_type), (yyvsp[0].kwd))) + MYSQL_YYABORT; + } +#line 44017 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1769: +#line 11350 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_slonglong); } +#line 44025 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1770: +#line 11351 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_slonglong); } +#line 44033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1771: +#line 11352 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_slonglong); } +#line 44041 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1772: +#line 11353 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } +#line 44049 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1773: +#line 11354 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } +#line 44057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1774: +#line 11355 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_newdecimal, (yyvsp[0].Lex_length_and_dec)); } +#line 44065 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1775: +#line 11356 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_float); } +#line 44073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1776: +#line 11357 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_double, (yyvsp[0].Lex_length_and_dec)); } +#line 44081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1777: +#line 11361 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_newdate); } +#line 44089 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1778: +#line 11362 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_time2, 0, (yyvsp[0].const_simple_string)); } +#line 44097 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1779: +#line 11363 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.Lex_cast_type).set(&type_handler_datetime2, 0, (yyvsp[0].const_simple_string)); } +#line 44105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1780: +#line 11365 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.Lex_cast_type).set(&type_handler_interval_DDhhmmssff, 0, (yyvsp[0].const_simple_string)); + } +#line 44115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1781: +#line 11371 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= NULL; } +#line 44123 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1782: +#line 11372 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= (yyvsp[0].item_list);} +#line 44131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1783: +#line 11377 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_list)= List<Item>::make(thd->mem_root, (yyvsp[0].item))))) + MYSQL_YYABORT; + } +#line 44142 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1784: +#line 11382 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); + (yyval.item_list)= (yyvsp[-2].item_list); + } +#line 44153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1785: +#line 11389 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= (yyvsp[0].item_list); } +#line 44161 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1786: +#line 11390 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item_list)= (yyvsp[-1].item_list); } +#line 44169 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1787: +#line 11395 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_list)= new (thd->mem_root) List<Item>; + if (unlikely((yyval.item_list) == NULL) || + unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 44182 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1788: +#line 11402 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); + (yyval.item_list)= (yyvsp[-2].item_list); + } +#line 44193 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1789: +#line 11410 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_list)= new (thd->mem_root) List<Item>; + if (unlikely((yyval.item_list) == NULL)) + MYSQL_YYABORT; + if (unlikely((yyval.item_list)->push_back((yyvsp[-2].item), thd->mem_root) || + (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 44208 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1790: +#line 11419 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-4].item_list)->push_back((yyvsp[-2].item), thd->mem_root) || + (yyvsp[-4].item_list)->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + (yyval.item_list)= (yyvsp[-4].item_list); + } +#line 44221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1792: +#line 11430 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + (yyval.item_list)= (yyvsp[-2].item_list); + } +#line 44233 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1793: +#line 11439 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_list)= new (thd->mem_root) List<Item>; + if (unlikely((yyval.item_list) == NULL) || + unlikely((yyval.item_list)->push_back((yyvsp[-2].item), thd->mem_root)) || + unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + + } +#line 44248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1794: +#line 11448 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_list)= (yyvsp[-2].item_list); + if (unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 44260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1795: +#line 11459 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 44268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1796: +#line 11461 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(!((yyval.table_list)= lex->current_select->nest_last_join(thd)))) + { + thd->parse_error(); + MYSQL_YYABORT; + } + } +#line 44283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1797: +#line 11472 "/home/buildbot/git/sql/sql_yacc.yy" + + { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); } +#line 44291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1798: +#line 11483 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)=(yyvsp[0].table_list); } +#line 44299 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1799: +#line 11484 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)=(yyvsp[-1].table_list); } +#line 44307 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1800: +#line 11491 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.table_list)=(yyvsp[0].table_list); + Select->add_joined_table((yyvsp[0].table_list)); + } +#line 44318 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1801: +#line 11496 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); + Select->add_joined_table((yyvsp[0].table_list)); + } +#line 44329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1802: +#line 11510 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); + if (unlikely(Select->add_cross_joined_table((yyvsp[-2].table_list), (yyvsp[0].table_list), (yyvsp[-1].num)))) + MYSQL_YYABORT; + } +#line 44341 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1803: +#line 11517 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); + Select->add_joined_table((yyvsp[-3].table_list)); + Select->add_joined_table((yyvsp[-1].table_list)); + /* Change the current name resolution context to a local context. */ + if (unlikely(push_new_name_resolution_context(thd, (yyvsp[-3].table_list), (yyvsp[-1].table_list)))) + MYSQL_YYABORT; + Select->parsing_place= IN_ON; + } +#line 44357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1804: +#line 11527 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-3].table_list)->straight=(yyvsp[-4].num); + add_join_on(thd, (yyvsp[-3].table_list), (yyvsp[0].item)); + (yyvsp[-3].table_list)->on_context= Lex->pop_context(); + Select->parsing_place= NO_MATTER; + } +#line 44370 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1805: +#line 11535 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); + Select->add_joined_table((yyvsp[-3].table_list)); + Select->add_joined_table((yyvsp[-1].table_list)); + } +#line 44382 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1806: +#line 11541 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[-5].table_list)->straight=(yyvsp[-6].num); + add_join_natural((yyvsp[-7].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); + (yyval.table_list)=(yyvsp[-5].table_list); + } +#line 44394 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1807: +#line 11547 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); + Select->add_joined_table((yyvsp[-3].table_list)); + Select->add_joined_table((yyvsp[0].table_list)); + (yyvsp[0].table_list)->straight=(yyvsp[-1].num); + add_join_natural((yyvsp[-3].table_list),(yyvsp[0].table_list),NULL,Select); + } +#line 44408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1808: +#line 11558 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); + Select->add_joined_table((yyvsp[-5].table_list)); + Select->add_joined_table((yyvsp[-1].table_list)); + /* Change the current name resolution context to a local context. */ + if (unlikely(push_new_name_resolution_context(thd, (yyvsp[-5].table_list), (yyvsp[-1].table_list)))) + MYSQL_YYABORT; + Select->parsing_place= IN_ON; + } +#line 44424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1809: +#line 11568 "/home/buildbot/git/sql/sql_yacc.yy" + + { + add_join_on(thd, (yyvsp[-3].table_list), (yyvsp[0].item)); + (yyvsp[-3].table_list)->on_context= Lex->pop_context(); + (yyvsp[-3].table_list)->outer_join|=JOIN_TYPE_LEFT; + (yyval.table_list)=(yyvsp[-3].table_list); + Select->parsing_place= NO_MATTER; + } +#line 44438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1810: +#line 11576 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); + Select->add_joined_table((yyvsp[-4].table_list)); + Select->add_joined_table((yyvsp[0].table_list)); + } +#line 44450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1811: +#line 11582 "/home/buildbot/git/sql/sql_yacc.yy" + + { + add_join_natural((yyvsp[-9].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); + (yyvsp[-5].table_list)->outer_join|=JOIN_TYPE_LEFT; + (yyval.table_list)=(yyvsp[-5].table_list); + } +#line 44462 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1812: +#line 11588 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); + Select->add_joined_table((yyvsp[-5].table_list)); + Select->add_joined_table((yyvsp[0].table_list)); + add_join_natural((yyvsp[-5].table_list),(yyvsp[0].table_list),NULL,Select); + (yyvsp[0].table_list)->outer_join|=JOIN_TYPE_LEFT; + (yyval.table_list)=(yyvsp[0].table_list); + } +#line 44477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1813: +#line 11600 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); + Select->add_joined_table((yyvsp[-5].table_list)); + Select->add_joined_table((yyvsp[-1].table_list)); + /* Change the current name resolution context to a local context. */ + if (unlikely(push_new_name_resolution_context(thd, (yyvsp[-5].table_list), (yyvsp[-1].table_list)))) + MYSQL_YYABORT; + Select->parsing_place= IN_ON; + } +#line 44493 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1814: +#line 11610 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) + MYSQL_YYABORT; + add_join_on(thd, (yyval.table_list), (yyvsp[0].item)); + (yyvsp[-7].table_list)->on_context= Lex->pop_context(); + Select->parsing_place= NO_MATTER; + } +#line 44508 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1815: +#line 11619 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); + Select->add_joined_table((yyvsp[-4].table_list)); + Select->add_joined_table((yyvsp[0].table_list)); + } +#line 44520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1816: +#line 11625 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) + MYSQL_YYABORT; + add_join_natural((yyval.table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); + } +#line 44533 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1817: +#line 11632 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); + Select->add_joined_table((yyvsp[-5].table_list)); + Select->add_joined_table((yyvsp[0].table_list)); + add_join_natural((yyvsp[0].table_list),(yyvsp[-5].table_list),NULL,Select); + LEX *lex= Lex; + if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) + MYSQL_YYABORT; + } +#line 44549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1818: +#line 11645 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 0; } +#line 44557 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1819: +#line 11646 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 0; } +#line 44565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1820: +#line 11647 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 1; } +#line 44573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1821: +#line 11651 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = (yyvsp[0].num); } +#line 44581 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1822: +#line 11652 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 0; } +#line 44589 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1823: +#line 11660 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.string_list)= 0;} +#line 44597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1825: +#line 11666 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.string_list)= (yyvsp[-2].string_list); + Select->parsing_place= Select->save_parsing_place; + Select->save_parsing_place= NO_MATTER; + } +#line 44609 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1826: +#line 11674 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 44617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1827: +#line 11675 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 44625 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1828: +#line 11677 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[0].table_list)->nested_join->nest_type= 0; + (yyval.table_list)= (yyvsp[0].table_list); + } +#line 44636 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1829: +#line 11681 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 44644 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1830: +#line 11685 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 44652 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1831: +#line 11686 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[-1].table_list); } +#line 44660 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1832: +#line 11690 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 44668 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1833: +#line 11691 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[-1].table_list); } +#line 44676 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1834: +#line 11695 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[-1].table_list); } +#line 44684 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1835: +#line 11697 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.table_list)= Select->end_nested_join(thd))) + MYSQL_YYABORT; + } +#line 44695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1836: +#line 11705 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Select->init_nested_join(thd)) + MYSQL_YYABORT; + Select->add_joined_table((yyvsp[-2].table_list)); + Select->add_joined_table((yyvsp[0].table_list)); + (yyval.table_list)= (yyvsp[-2].table_list)->embedding; + } +#line 44709 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1837: +#line 11713 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->add_joined_table((yyvsp[0].table_list)); + (yyval.table_list)= (yyvsp[-2].table_list); + } +#line 44720 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1838: +#line 11720 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[-1].table_list); } +#line 44728 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1839: +#line 11722 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (!((yyval.table_list)= lex->current_select->nest_last_join(thd))) + { + thd->parse_error(); + MYSQL_YYABORT; + } + } +#line 44743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1840: +#line 11736 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->table_join_options= 0; + if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-4].table), (yyvsp[-1].lex_str_ptr), + Select->get_table_join_options(), + YYPS->m_lock_type, + YYPS->m_mdl_type, + Select->pop_index_hints(), + (yyvsp[-3].string_list)))) + MYSQL_YYABORT; + if ((yyvsp[-2].num)) + (yyval.table_list)->vers_conditions= Lex->vers_conditions; + } +#line 44763 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1841: +#line 11754 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.table_list)= Lex->parsed_derived_table((yyvsp[-2].select_lex)->master_unit(), (yyvsp[-1].num), (yyvsp[0].lex_str_ptr)))) + MYSQL_YYABORT; + } +#line 44774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1842: +#line 11761 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 44782 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1843: +#line 11762 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 44790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1844: +#line 11767 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= thd->variables.old_mode ? INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; + } +#line 44800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1845: +#line 11770 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= INDEX_HINT_MASK_JOIN; } +#line 44808 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1846: +#line 11771 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= INDEX_HINT_MASK_ORDER; } +#line 44816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1847: +#line 11772 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= INDEX_HINT_MASK_GROUP; } +#line 44824 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1848: +#line 11776 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.index_hint)= INDEX_HINT_FORCE; } +#line 44832 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1849: +#line 11777 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.index_hint)= INDEX_HINT_IGNORE; } +#line 44840 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1850: +#line 11782 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num)); + } +#line 44850 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1852: +#line 11787 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num)); + } +#line 44860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1857: +#line 11800 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->alloc_index_hints(thd); } +#line 44868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1859: +#line 11804 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->clear_index_hints(); } +#line 44876 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1861: +#line 11809 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->add_index_hint(thd, NULL, 0); } +#line 44884 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1862: +#line 11810 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 44892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1863: +#line 11815 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->add_index_hint(thd, (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length); } +#line 44900 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1864: +#line 11817 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->add_index_hint(thd, "PRIMARY", 7); } +#line 44908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1867: +#line 11827 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.string_list)= new (thd->mem_root) List<String>))) + MYSQL_YYABORT; + String *s= new (thd->mem_root) String((const char *) (yyvsp[0].ident_sys).str, + (yyvsp[0].ident_sys).length, + system_charset_info); + if (unlikely(unlikely(s == NULL))) + MYSQL_YYABORT; + (yyval.string_list)->push_back(s, thd->mem_root); + } +#line 44925 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1868: +#line 11838 "/home/buildbot/git/sql/sql_yacc.yy" + + { + String *s= new (thd->mem_root) String((const char *) (yyvsp[0].ident_sys).str, + (yyvsp[0].ident_sys).length, + system_charset_info); + if (unlikely(unlikely(s == NULL))) + MYSQL_YYABORT; + if (unlikely((yyvsp[-2].string_list)->push_back(s, thd->mem_root))) + MYSQL_YYABORT; + (yyval.string_list)= (yyvsp[-2].string_list); + } +#line 44942 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1869: +#line 11851 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 44950 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1870: +#line 11852 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_DAY_HOUR; } +#line 44958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1871: +#line 11853 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_DAY_MICROSECOND; } +#line 44966 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1872: +#line 11854 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_DAY_MINUTE; } +#line 44974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1873: +#line 11855 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_DAY_SECOND; } +#line 44982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1874: +#line 11856 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; } +#line 44990 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1875: +#line 11857 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_HOUR_MINUTE; } +#line 44998 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1876: +#line 11858 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_HOUR_SECOND; } +#line 45006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1877: +#line 11859 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; } +#line 45014 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1878: +#line 11860 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_MINUTE_SECOND; } +#line 45022 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1879: +#line 11861 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; } +#line 45030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1880: +#line 11862 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval)=INTERVAL_YEAR_MONTH; } +#line 45038 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1881: +#line 11866 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_DAY; } +#line 45046 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1882: +#line 11867 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_WEEK; } +#line 45054 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1883: +#line 11868 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_HOUR; } +#line 45062 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1884: +#line 11869 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_MINUTE; } +#line 45070 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1885: +#line 11870 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_MONTH; } +#line 45078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1886: +#line 11871 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_QUARTER; } +#line 45086 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1887: +#line 11872 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_SECOND; } +#line 45094 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1888: +#line 11873 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_MICROSECOND; } +#line 45102 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1889: +#line 11874 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.interval_time_st)=INTERVAL_YEAR; } +#line 45110 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1890: +#line 11878 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;} +#line 45118 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1891: +#line 11879 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;} +#line 45126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1892: +#line 11880 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} +#line 45134 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1893: +#line 11881 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} +#line 45142 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1897: +#line 11891 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str_ptr)=0; } +#line 45150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1898: +#line 11892 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str_ptr)= (yyvsp[0].lex_str_ptr); } +#line 45158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1899: +#line 11897 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_str_ptr)= (LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys),sizeof(LEX_STRING)); + if (unlikely((yyval.lex_str_ptr) == NULL)) + MYSQL_YYABORT; + } +#line 45170 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1902: +#line 11910 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->where= 0; } +#line 45178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1903: +#line 11912 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= IN_WHERE; + } +#line 45188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1904: +#line 11916 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *select= Select; + select->where= normalize_cond(thd, (yyvsp[0].item)); + select->parsing_place= NO_MATTER; + if ((yyvsp[0].item)) + (yyvsp[0].item)->top_level_item(); + } +#line 45202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1906: +#line 11928 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= IN_HAVING; + } +#line 45212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1907: +#line 11932 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->having= normalize_cond(thd, (yyvsp[0].item)); + sel->parsing_place= NO_MATTER; + if ((yyvsp[0].item)) + (yyvsp[0].item)->top_level_item(); + } +#line 45226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1910: +#line 11952 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) + MYSQL_YYABORT; + } +#line 45237 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1911: +#line 11957 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) + MYSQL_YYABORT; + } +#line 45248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1912: +#line 11964 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 45256 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1913: +#line 11966 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + 'WITH CUBE' is reserved in the MySQL syntax, but not implemented, + and cause LALR(2) conflicts. + This syntax is not standard. + MySQL syntax: GROUP BY col1, col2, col3 WITH CUBE + SQL-2003: GROUP BY ... CUBE(col1, col2, col3) + */ + LEX *lex=Lex; + if (unlikely(lex->current_select->get_linkage() == GLOBAL_OPTIONS_TYPE)) + my_yyabort_error((ER_WRONG_USAGE, MYF(0), "WITH CUBE", + "global union parameters")); + lex->current_select->olap= CUBE_TYPE; + + my_yyabort_error((ER_NOT_SUPPORTED_YET, MYF(0), "CUBE")); + } +#line 45279 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1914: +#line 11983 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + 'WITH ROLLUP' is needed for backward compatibility, + and cause LALR(2) conflicts. + This syntax is not standard. + MySQL syntax: GROUP BY col1, col2, col3 WITH ROLLUP + SQL-2003: GROUP BY ... ROLLUP(col1, col2, col3) + */ + LEX *lex= Lex; + if (unlikely(lex->current_select->get_linkage() == GLOBAL_OPTIONS_TYPE)) + my_yyabort_error((ER_WRONG_USAGE, MYF(0), "WITH ROLLUP", + "global union parameters")); + lex->current_select->olap= ROLLUP_TYPE; + } +#line 45300 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1915: +#line 12005 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 45308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1916: +#line 12008 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 45316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1919: +#line 12018 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(Select->add_window_def(thd, (yyvsp[-2].lex_str_ptr), lex->win_ref, + Select->group_list, + Select->order_list, + lex->win_frame))) + MYSQL_YYABORT; + } +#line 45331 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1920: +#line 12030 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->prepare_add_window_spec(thd); } +#line 45339 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1921: +#line 12034 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 45347 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1922: +#line 12038 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 45355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1923: +#line 12040 "/home/buildbot/git/sql/sql_yacc.yy" + + { + thd->lex->win_ref= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); + if (unlikely(thd->lex->win_ref == NULL)) + MYSQL_YYABORT; + } +#line 45367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1924: +#line 12048 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 45375 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1926: +#line 12053 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 45383 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1927: +#line 12054 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->order_list= *((yyvsp[0].select_order)); } +#line 45391 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1928: +#line 12058 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 45399 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1929: +#line 12060 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->win_frame= + new (thd->mem_root) Window_frame((yyvsp[-2].frame_units), + lex->frame_top_bound, + lex->frame_bottom_bound, + (yyvsp[0].frame_exclusion)); + if (unlikely(lex->win_frame == NULL)) + MYSQL_YYABORT; + } +#line 45416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1930: +#line 12073 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_units)= Window_frame::UNITS_ROWS; } +#line 45424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1931: +#line 12074 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_units)= Window_frame::UNITS_RANGE; } +#line 45432 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1932: +#line 12079 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->frame_top_bound= (yyvsp[0].window_frame_bound); + lex->frame_bottom_bound= + new (thd->mem_root) + Window_frame_bound(Window_frame_bound::CURRENT, NULL); + if (unlikely(lex->frame_bottom_bound == NULL)) + MYSQL_YYABORT; + } +#line 45448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1933: +#line 12089 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->frame_top_bound= (yyvsp[-2].window_frame_bound); + lex->frame_bottom_bound= (yyvsp[0].window_frame_bound); + } +#line 45460 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1934: +#line 12098 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.window_frame_bound)= new (thd->mem_root) + Window_frame_bound(Window_frame_bound::PRECEDING, NULL); + if (unlikely((yyval.window_frame_bound) == NULL)) + MYSQL_YYABORT; + } +#line 45473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1935: +#line 12105 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.window_frame_bound)= new (thd->mem_root) + Window_frame_bound(Window_frame_bound::CURRENT, NULL); + if (unlikely((yyval.window_frame_bound) == NULL)) + MYSQL_YYABORT; + } +#line 45486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1936: +#line 12112 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.window_frame_bound)= new (thd->mem_root) + Window_frame_bound(Window_frame_bound::PRECEDING, (yyvsp[-1].item)); + if (unlikely((yyval.window_frame_bound) == NULL)) + MYSQL_YYABORT; + } +#line 45499 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1937: +#line 12121 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.window_frame_bound)= (yyvsp[0].window_frame_bound); } +#line 45507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1938: +#line 12123 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.window_frame_bound)= new (thd->mem_root) + Window_frame_bound(Window_frame_bound::FOLLOWING, NULL); + if (unlikely((yyval.window_frame_bound) == NULL)) + MYSQL_YYABORT; + } +#line 45520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1939: +#line 12130 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.window_frame_bound)= new (thd->mem_root) + Window_frame_bound(Window_frame_bound::FOLLOWING, (yyvsp[-1].item)); + if (unlikely((yyval.window_frame_bound) == NULL)) + MYSQL_YYABORT; + } +#line 45533 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1940: +#line 12139 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } +#line 45541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1941: +#line 12141 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_exclusion)= Window_frame::EXCL_CURRENT_ROW; } +#line 45549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1942: +#line 12143 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_exclusion)= Window_frame::EXCL_GROUP; } +#line 45557 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1943: +#line 12145 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_exclusion)= Window_frame::EXCL_TIES; } +#line 45565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1944: +#line 12147 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } +#line 45573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1945: +#line 12149 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } +#line 45581 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1949: +#line 12167 "/home/buildbot/git/sql/sql_yacc.yy" + + { + bool ascending= ((yyvsp[0].num) == 1) ? true : false; + if (unlikely(add_order_to_list(thd, (yyvsp[-1].item), ascending))) + MYSQL_YYABORT; + } +#line 45593 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1950: +#line 12180 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_order)= NULL; } +#line 45601 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1951: +#line 12182 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_order)= (yyvsp[0].select_order); } +#line 45609 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1952: +#line 12187 "/home/buildbot/git/sql/sql_yacc.yy" + + { + thd->where= "ORDER clause"; + } +#line 45619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1953: +#line 12191 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_order)= (yyvsp[0].select_order); + } +#line 45629 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1954: +#line 12198 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_order)= (yyvsp[-3].select_order); + if (add_to_list(thd, *(yyval.select_order), (yyvsp[-1].item),(bool) (yyvsp[0].num))) + MYSQL_YYABORT; + } +#line 45641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1955: +#line 12204 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_order)= new (thd->mem_root) SQL_I_List<ORDER>(); + if (add_to_list(thd, *(yyval.select_order), (yyvsp[-1].item), (bool) (yyvsp[0].num))) + MYSQL_YYABORT; + } +#line 45653 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1956: +#line 12212 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) = 1; } +#line 45661 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1957: +#line 12213 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) =1; } +#line 45669 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1958: +#line 12214 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num) =0; } +#line 45677 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1959: +#line 12219 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_limit).empty(); } +#line 45685 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1960: +#line 12221 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.select_limit)= (yyvsp[0].select_limit); } +#line 45693 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1961: +#line 12226 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_limit)= (yyvsp[0].select_limit); + if (!(yyval.select_limit).select_limit->basic_const_item() || + (yyval.select_limit).select_limit->val_int() > 0) + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); + } +#line 45706 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1962: +#line 12234 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_limit)= (yyvsp[-3].select_limit); + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); + } +#line 45717 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1963: +#line 12239 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_limit).select_limit= 0; + (yyval.select_limit).offset_limit= 0; + (yyval.select_limit).explicit_limit= 0; + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); + } +#line 45730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1964: +#line 12249 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->explicit_limit= (yyvsp[0].select_limit).explicit_limit; + Select->select_limit= (yyvsp[0].select_limit).select_limit; + Select->offset_limit= (yyvsp[0].select_limit).offset_limit; + } +#line 45742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1965: +#line 12258 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_limit).select_limit= (yyvsp[0].item); + (yyval.select_limit).offset_limit= 0; + (yyval.select_limit).explicit_limit= 1; + } +#line 45754 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1966: +#line 12264 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_limit).select_limit= (yyvsp[0].item); + (yyval.select_limit).offset_limit= (yyvsp[-2].item); + (yyval.select_limit).explicit_limit= 1; + } +#line 45766 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1967: +#line 12270 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_limit).select_limit= (yyvsp[-2].item); + (yyval.select_limit).offset_limit= (yyvsp[0].item); + (yyval.select_limit).explicit_limit= 1; + } +#line 45778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1968: +#line 12279 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 45789 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1969: +#line 12284 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 45800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1970: +#line 12289 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[0].item_param)->limit_clause_param= TRUE; + } +#line 45810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1971: +#line 12293 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 45822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1972: +#line 12299 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 45834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1973: +#line 12305 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 45846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1974: +#line 12314 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->limit_rows_examined= (yyvsp[0].item); + } +#line 45857 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1975: +#line 12322 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->current_select->select_limit= 0; + } +#line 45868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1976: +#line 12327 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->select_limit= (yyvsp[0].item); + Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); + sel->explicit_limit= 1; + } +#line 45881 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1977: +#line 12333 "/home/buildbot/git/sql/sql_yacc.yy" + + { thd->parse_error(); MYSQL_YYABORT; } +#line 45889 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1978: +#line 12334 "/home/buildbot/git/sql/sql_yacc.yy" + + { thd->parse_error(); MYSQL_YYABORT; } +#line 45897 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1979: +#line 12339 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.order_limit_lock)= (yyvsp[0].order_limit_lock); + (yyval.order_limit_lock)->lock.empty(); + } +#line 45908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1980: +#line 12344 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.order_limit_lock)= (yyvsp[-1].order_limit_lock); + (yyval.order_limit_lock)->lock= (yyvsp[0].select_lock); + } +#line 45919 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1981: +#line 12349 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.order_limit_lock)= new(thd->mem_root) Lex_order_limit_lock; + if (!(yyval.order_limit_lock)) + YYABORT; + (yyval.order_limit_lock)->order_list= NULL; + (yyval.order_limit_lock)->limit.empty(); + (yyval.order_limit_lock)->lock= (yyvsp[0].select_lock); + } +#line 45934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1982: +#line 12361 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); + (yyval.order_limit_lock)= NULL; + } +#line 45945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1983: +#line 12365 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.order_limit_lock)= (yyvsp[0].order_limit_lock); } +#line 45953 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1986: +#line 12378 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock).empty(); + } +#line 45963 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1987: +#line 12382 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.select_lock)= (yyvsp[0].select_lock); + } +#line 45973 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1988: +#line 12386 "/home/buildbot/git/sql/sql_yacc.yy" + + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + ER_WARN_DEPRECATED_SYNTAX, + ER_THD(thd, ER_WARN_DEPRECATED_SYNTAX), + "<select expression> INTO <destination>;", + "'SELECT <select list> INTO <destination>" + " FROM...'"); + (yyval.select_lock)= (yyvsp[0].select_lock); + } +#line 45989 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1989: +#line 12399 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.order_limit_lock)= new(thd->mem_root) Lex_order_limit_lock; + if (!(yyval.order_limit_lock)) + YYABORT; + (yyval.order_limit_lock)->order_list= (yyvsp[-1].select_order); + (yyval.order_limit_lock)->limit= (yyvsp[0].select_limit); + } +#line 46003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1990: +#line 12407 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_order_limit_lock *op= (yyval.order_limit_lock)= new(thd->mem_root) Lex_order_limit_lock; + if (!(yyval.order_limit_lock)) + YYABORT; + op->order_list= NULL; + op->limit= (yyvsp[0].select_limit); + (yyval.order_limit_lock)->order_list= NULL; + (yyval.order_limit_lock)->limit= (yyvsp[0].select_limit); + } +#line 46019 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1993: +#line 12425 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.num)= (int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1994: +#line 12426 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46035 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1995: +#line 12430 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1996: +#line 12431 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= strtoul((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 46051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1997: +#line 12432 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46059 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1998: +#line 12433 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46067 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 1999: +#line 12434 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2000: +#line 12435 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46083 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2001: +#line 12439 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46091 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2002: +#line 12440 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 46099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2003: +#line 12441 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46107 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2004: +#line 12442 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2005: +#line 12443 "/home/buildbot/git/sql/sql_yacc.yy" + + { MYSQL_YYABORT; } +#line 46123 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2006: +#line 12447 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2007: +#line 12448 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2008: +#line 12449 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46147 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2009: +#line 12450 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46155 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2010: +#line 12454 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46163 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2011: +#line 12455 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46171 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2012: +#line 12456 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2013: +#line 12457 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2014: +#line 12458 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2015: +#line 12462 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46203 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2016: +#line 12463 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46211 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2017: +#line 12464 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 46219 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2018: +#line 12465 "/home/buildbot/git/sql/sql_yacc.yy" + + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 46227 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2019: +#line 12466 "/home/buildbot/git/sql/sql_yacc.yy" + + { MYSQL_YYABORT; } +#line 46235 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2020: +#line 12471 "/home/buildbot/git/sql/sql_yacc.yy" + + { thd->parse_error(ER_ONLY_INTEGERS_ALLOWED); } +#line 46243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2023: +#line 12480 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.choice)= (yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; } +#line 46251 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2024: +#line 12481 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.choice)= HA_CHOICE_UNDEF; } +#line 46259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2025: +#line 12485 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= (yyvsp[0].ulong_num) != 0; } +#line 46267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2026: +#line 12486 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 1; } +#line 46275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2027: +#line 12487 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ulong_num)= 0; } +#line 46283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2028: +#line 12492 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + + lex->proc_list.elements=0; + lex->proc_list.first=0; + lex->proc_list.next= &lex->proc_list.first; + Item_field *item= new (thd->mem_root) + Item_field(thd, &lex->current_select->context, + (yyvsp[0].ident_sys)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + if (unlikely(add_proc_to_list(thd, item))) + MYSQL_YYABORT; + Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + + /* + PROCEDURE CLAUSE cannot handle subquery as one of its parameter, + so disallow any subqueries further. + Alow subqueries back once the parameters are reduced. + */ + Lex->clause_that_disallows_subselect= "PROCEDURE"; + Select->options|= OPTION_PROCEDURE_CLAUSE; + } +#line 46313 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2029: +#line 12516 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* Subqueries are allowed from now.*/ + Lex->clause_that_disallows_subselect= NULL; + } +#line 46324 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2030: +#line 12523 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46332 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2031: +#line 12524 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2034: +#line 12534 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(add_proc_to_list(thd, (yyvsp[-1].item)))) + MYSQL_YYABORT; + if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) + (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); + } +#line 46353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2035: +#line 12543 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (!lex->describe && + unlikely((!(lex->result= new (thd->mem_root) + select_dumpvar(thd))))) + MYSQL_YYABORT; + } +#line 46367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2036: +#line 12551 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46375 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2038: +#line 12556 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46383 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2039: +#line 12560 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->result) + { + if (unlikely((yyvsp[0].myvar) == NULL)) + MYSQL_YYABORT; + ((select_dumpvar *)Lex->result)->var_list.push_back((yyvsp[0].myvar), thd->mem_root); + } + else + { + /* + The parser won't create select_result instance only + if it's an EXPLAIN. + */ + DBUG_ASSERT(Lex->describe); + } + } +#line 46406 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2040: +#line 12580 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.myvar) = Lex->result ? new (thd->mem_root) my_var_user(&(yyvsp[0].lex_str)) : NULL; + } +#line 46416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2041: +#line 12584 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[0].lex_str))) && Lex->result)) + MYSQL_YYABORT; + } +#line 46427 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2042: +#line 12589 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))) && Lex->result)) + MYSQL_YYABORT; + } +#line 46438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2043: +#line 12597 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46446 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2044: +#line 12602 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + if (unlikely(!(lex->exchange= + new (thd->mem_root) sql_exchange((yyvsp[0].lex_str).str, 0))) || + unlikely(!(lex->result= + new (thd->mem_root) + select_export(thd, lex->exchange)))) + MYSQL_YYABORT; + } +#line 46463 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2045: +#line 12613 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->exchange->cs= (yyvsp[0].charset); } +#line 46471 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2047: +#line 12616 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (!lex->describe) + { + lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + if (unlikely(!(lex->exchange= + new (thd->mem_root) sql_exchange((yyvsp[0].lex_str).str,1)))) + MYSQL_YYABORT; + if (unlikely(!(lex->result= + new (thd->mem_root) + select_dump(thd, lex->exchange)))) + MYSQL_YYABORT; + } + } +#line 46492 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2048: +#line 12631 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + } +#line 46502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2049: +#line 12642 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_DO; + if (lex->main_select_push(true)) + MYSQL_YYABORT; + mysql_init_select(lex); + } +#line 46516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2050: +#line 12650 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->insert_list= (yyvsp[0].item_list); + Lex->pop_select(); //main select + if (Lex->check_cte_dependencies_and_resolve_references()) + MYSQL_YYABORT; + } +#line 46529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2051: +#line 12664 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->set_command(SQLCOM_DROP_TABLE, (yyvsp[-2].num), (yyvsp[0].object_ddl_options)); + YYPS->m_lock_type= TL_UNLOCK; + YYPS->m_mdl_type= MDL_EXCLUSIVE; + } +#line 46542 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2052: +#line 12671 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46550 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2053: +#line 12673 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 46561 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2054: +#line 12678 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Alter_drop *ad= (new (thd->mem_root) + Alter_drop(Alter_drop::KEY, (yyvsp[-3].ident_sys).str, (yyvsp[-4].num))); + if (unlikely(ad == NULL)) + MYSQL_YYABORT; + lex->sql_command= SQLCOM_DROP_INDEX; + lex->alter_info.reset(); + lex->alter_info.flags= ALTER_DROP_INDEX; + lex->alter_info.drop_list.push_back(ad, thd->mem_root); + if (unlikely(!lex->current_select-> + add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, + TL_READ_NO_INSERT, + MDL_SHARED_UPGRADABLE))) + MYSQL_YYABORT; + Lex->pop_select(); //main select + } +#line 46585 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2055: +#line 12696 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->set_command(SQLCOM_DROP_DB, (yyvsp[-1].object_ddl_options)); + lex->name= (yyvsp[0].ident_sys); + } +#line 46597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2056: +#line 12702 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->set_command(SQLCOM_DROP_USER, (yyvsp[-2].object_ddl_options)); + } +#line 46607 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2057: +#line 12706 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->set_command(SQLCOM_DROP_ROLE, (yyvsp[-2].object_ddl_options)); + } +#line 46617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2058: +#line 12710 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->set_command(SQLCOM_DROP_VIEW, (yyvsp[0].object_ddl_options)); + YYPS->m_lock_type= TL_UNLOCK; + YYPS->m_mdl_type= MDL_EXCLUSIVE; + } +#line 46630 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2059: +#line 12717 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46638 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2060: +#line 12719 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->spname= (yyvsp[0].spname); + Lex->set_command(SQLCOM_DROP_EVENT, (yyvsp[-1].object_ddl_options)); + } +#line 46649 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2061: +#line 12724 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->set_command(SQLCOM_DROP_TRIGGER, (yyvsp[-1].object_ddl_options)); + lex->spname= (yyvsp[0].spname); + } +#line 46661 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2062: +#line 12730 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE; + } +#line 46672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2063: +#line 12735 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP; + } +#line 46683 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2064: +#line 12740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->set_command(SQLCOM_DROP_SERVER, (yyvsp[-1].object_ddl_options)); + Lex->server_options.reset((yyvsp[0].lex_str)); + } +#line 46694 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2065: +#line 12746 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->set_command(SQLCOM_DROP_SEQUENCE, (yyvsp[-2].num), (yyvsp[0].object_ddl_options)); + lex->table_type= TABLE_TYPE_SEQUENCE; + YYPS->m_lock_type= TL_UNLOCK; + YYPS->m_mdl_type= MDL_EXCLUSIVE; + } +#line 46708 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2066: +#line 12754 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46716 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2070: +#line 12765 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!thd->lex->current_select_or_default()-> + add_table_to_list(thd, (yyvsp[0].table), NULL, + TL_OPTION_UPDATING, + YYPS->m_lock_type, + YYPS->m_mdl_type)) + MYSQL_YYABORT; + } +#line 46731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2071: +#line 12777 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, + TL_OPTION_UPDATING, + YYPS->m_lock_type, + YYPS->m_mdl_type, + NULL, + (yyvsp[0].string_list)))) + MYSQL_YYABORT; + } +#line 46747 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2074: +#line 12795 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select-> + add_table_to_list(thd, (yyvsp[0].table), NULL, + (TL_OPTION_UPDATING | + TL_OPTION_ALIAS), + YYPS->m_lock_type, + YYPS->m_mdl_type))) + MYSQL_YYABORT; + } +#line 46763 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2075: +#line 12808 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->check_exists= FALSE; + (yyval.num)= 0; + } +#line 46774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2076: +#line 12813 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->check_exists= TRUE; + (yyval.num)= 1; + } +#line 46785 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2077: +#line 12821 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.object_ddl_options).set(DDL_options_st::OPT_NONE); + } +#line 46795 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2078: +#line 12825 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_EXISTS); + } +#line 46805 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2079: +#line 12831 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 46813 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2080: +#line 12832 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= HA_LEX_CREATE_TMP_TABLE; } +#line 46821 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2081: +#line 12840 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_INSERT; + Lex->duplicates= DUP_ERROR; + } +#line 46832 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2082: +#line 12845 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->set_lock_for_tables((yyvsp[-3].lock_type), true); + } +#line 46842 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2083: +#line 12850 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mark_first_table_as_inserting(); + } +#line 46852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2084: +#line 12857 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_REPLACE; + Lex->duplicates= DUP_REPLACE; + } +#line 46863 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2085: +#line 12862 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->set_lock_for_tables((yyvsp[-2].lock_type), true); + } +#line 46873 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2086: +#line 12867 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mark_first_table_as_inserting(); + } +#line 46883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2087: +#line 12872 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + mysql_init_select(Lex); + Lex->current_select->parsing_place= BEFORE_OPT_LIST; + } +#line 46896 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2088: +#line 12880 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + if (Lex->check_main_unit_semantics()) + MYSQL_YYABORT; + } +#line 46908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2089: +#line 12889 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + If it is SP we do not allow insert optimisation when result of + insert visible only after the table unlocking but everyone can + read table. + */ + (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); + } +#line 46923 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2091: +#line 12898 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE; } +#line 46931 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2092: +#line 12902 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE_DEFAULT; } +#line 46939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2094: +#line 12907 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } +#line 46947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2095: +#line 12909 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->keyword_delayed_begin_offset= (uint)((yyvsp[0].kwd).pos() - thd->query()); + Lex->keyword_delayed_end_offset= (uint)((yyvsp[0].kwd).end() - thd->query()); + (yyval.lock_type)= TL_WRITE_DELAYED; + } +#line 46959 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2098: +#line 12919 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->save_parsing_place= Select->parsing_place; + } +#line 46969 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2099: +#line 12923 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + //lex->field_list.empty(); + lex->many_values.empty(); + lex->insert_list=0; + } +#line 46982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2100: +#line 12932 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46990 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2101: +#line 12933 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 46998 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2102: +#line 12935 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(!(lex->insert_list= new (thd->mem_root) List_item)) || + unlikely(lex->many_values.push_back(lex->insert_list, + thd->mem_root))) + MYSQL_YYABORT; + lex->current_select->parsing_place= NO_MATTER; + } +#line 47013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2104: +#line 12948 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->current_select->parsing_place= AFTER_LIST; + } +#line 47023 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2107: +#line 12960 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 47031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2108: +#line 12961 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 47039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2109: +#line 12967 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47047 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2114: +#line 12982 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(lex->field_list.push_back((yyvsp[-2].item), thd->mem_root)) || + unlikely(lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 47060 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2115: +#line 12991 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47068 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2116: +#line 12992 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47076 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2117: +#line 12996 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2118: +#line 12997 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47092 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2119: +#line 13001 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47100 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2120: +#line 13002 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2121: +#line 13006 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47116 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2122: +#line 13007 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47124 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2123: +#line 13012 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) + MYSQL_YYABORT; + } +#line 47135 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2124: +#line 13017 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(lex->many_values.push_back(lex->insert_list, + thd->mem_root))) + MYSQL_YYABORT; + } +#line 47148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2125: +#line 13027 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) + MYSQL_YYABORT; + } +#line 47159 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2126: +#line 13032 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(lex->many_values.push_back(lex->insert_list, + thd->mem_root))) + MYSQL_YYABORT; + } +#line 47172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2127: +#line 13041 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47180 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2129: +#line 13046 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2131: +#line 13052 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 47199 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2132: +#line 13057 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 47210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2133: +#line 13065 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->insert_list->push_back((yyvsp[-1].item), thd->mem_root))) + MYSQL_YYABORT; + // give some name in case of using in table value constuctor (TVC) + if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) + (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); + } +#line 47224 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2134: +#line 13073 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->insert_list->push_back((yyvsp[-1].item), thd->mem_root))) + MYSQL_YYABORT; + // give some name in case of using in table value constuctor (TVC) + if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) + (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); + } +#line 47238 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2135: +#line 13083 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item);} +#line 47246 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2136: +#line 13085 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_ignore_specification(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 47258 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2137: +#line 13093 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item);} +#line 47266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2138: +#line 13095 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_default_specification(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 47278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2140: +#line 13104 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->duplicates= DUP_UPDATE; } +#line 47286 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2141: +#line 13106 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= IN_UPDATE_ON_DUP_KEY; + } +#line 47296 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2142: +#line 13110 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= NO_MATTER; + } +#line 47306 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2143: +#line 13118 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *sel= Select; + sel->table_join_options= 0; + if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-4].table), (yyvsp[-1].lex_str_ptr), + Select->get_table_join_options(), + YYPS->m_lock_type, + YYPS->m_mdl_type, + Select->pop_index_hints(), + (yyvsp[-3].string_list)))) + MYSQL_YYABORT; + (yyval.table_list)->period_conditions= Lex->period_conditions; + } +#line 47325 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2144: +#line 13130 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.table_list)= (yyvsp[0].table_list); } +#line 47333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2145: +#line 13137 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (Lex->main_select_push()) + MYSQL_YYABORT; + mysql_init_select(lex); + lex->sql_command= SQLCOM_UPDATE; + lex->duplicates= DUP_ERROR; + } +#line 47348 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2146: +#line 13147 "/home/buildbot/git/sql/sql_yacc.yy" + + { + SELECT_LEX *slex= Lex->first_select_lex(); + if (slex->table_list.elements > 1) + Lex->sql_command= SQLCOM_UPDATE_MULTI; + else if (slex->get_table_list()->derived) + { + /* it is single table update and it is update of derived table */ + my_error(ER_NON_UPDATABLE_TABLE, MYF(0), + slex->get_table_list()->alias.str, "UPDATE"); + MYSQL_YYABORT; + } + /* + In case of multi-update setting write lock for all tables may + be too pessimistic. We will decrease lock level if possible in + mysql_multi_update(). + */ + slex->set_lock_for_tables((yyvsp[-4].lock_type), slex->table_list.elements == 1); + } +#line 47373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2147: +#line 13166 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[-1].select_order)) + Select->order_list= *((yyvsp[-1].select_order)); + } +#line 47384 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2148: +#line 13169 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2151: +#line 13179 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *def= new (thd->mem_root) Item_default_value(thd, + Lex->current_context(), (yyvsp[-2].item), 1); + if (!def || add_item_to_list(thd, (yyvsp[-2].item)) || add_value_to_list(thd, def)) + MYSQL_YYABORT; + } +#line 47405 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2152: +#line 13186 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (add_item_to_list(thd, (yyvsp[-2].item)) || add_value_to_list(thd, (yyvsp[0].item))) + MYSQL_YYABORT; + } +#line 47416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2155: +#line 13199 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->update_list.push_back((yyvsp[-2].item), thd->mem_root)) || + unlikely(lex->value_list.push_back((yyvsp[0].item), thd->mem_root))) + MYSQL_YYABORT; + } +#line 47429 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2156: +#line 13208 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE_DEFAULT; } +#line 47437 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2157: +#line 13209 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } +#line 47445 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2158: +#line 13216 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_DELETE; + YYPS->m_lock_type= TL_WRITE_DEFAULT; + YYPS->m_mdl_type= MDL_SHARED_WRITE; + if (Lex->main_select_push()) + MYSQL_YYABORT; + mysql_init_select(lex); + lex->ignore= 0; + lex->first_select_lex()->order_list.empty(); + } +#line 47463 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2159: +#line 13228 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 47471 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2160: +#line 13233 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->vers_conditions.init(SYSTEM_TIME_HISTORY); + } +#line 47481 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2161: +#line 13237 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->vers_conditions.init(SYSTEM_TIME_BEFORE, (yyvsp[0].vers_history_point)); + } +#line 47491 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2162: +#line 13243 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47499 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2163: +#line 13245 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->last_table()->vers_conditions= Lex->vers_conditions; + Lex->pop_select(); //main select + } +#line 47510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2164: +#line 13253 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select-> + add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, + YYPS->m_lock_type, + YYPS->m_mdl_type, + NULL, + (yyvsp[0].string_list)))) + MYSQL_YYABORT; + YYPS->m_lock_type= TL_READ_DEFAULT; + YYPS->m_mdl_type= MDL_SHARED_READ; + } +#line 47528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2165: +#line 13268 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[0].num)) + Lex->last_table()->period_conditions= Lex->period_conditions; + } +#line 47539 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2166: +#line 13280 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[-2].select_order)) + Select->order_list= *((yyvsp[-2].select_order)); + Lex->pop_select(); //main select + } +#line 47551 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2167: +#line 13286 "/home/buildbot/git/sql/sql_yacc.yy" + + { + mysql_init_multi_delete(Lex); + YYPS->m_lock_type= TL_READ_DEFAULT; + YYPS->m_mdl_type= MDL_SHARED_READ; + } +#line 47563 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2168: +#line 13292 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) + MYSQL_YYABORT; + } +#line 47574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2169: +#line 13295 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2170: +#line 13297 "/home/buildbot/git/sql/sql_yacc.yy" + + { + mysql_init_multi_delete(Lex); + YYPS->m_lock_type= TL_READ_DEFAULT; + YYPS->m_mdl_type= MDL_SHARED_READ; + } +#line 47594 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2171: +#line 13303 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) + MYSQL_YYABORT; + } +#line 47605 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2172: +#line 13306 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47613 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2173: +#line 13311 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(!Lex->has_returning()); + } +#line 47623 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2174: +#line 13315 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(!Lex->has_returning()); + if (((yyval.num)= (Select != Lex->returning()))) + { + SELECT_LEX *sl= Lex->returning(); + sl->set_master_unit(0); + Select->add_slave(Lex->create_unit(sl)); + sl->include_global((st_select_lex_node**)&Lex->all_selects_list); + Lex->push_select(sl); + } + } +#line 47641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2175: +#line 13327 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[-1].num)) + Lex->pop_select(); + } +#line 47652 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2178: +#line 13340 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Table_ident *ti= new (thd->mem_root) Table_ident(&(yyvsp[-1].ident_sys)); + if (unlikely(ti == NULL)) + MYSQL_YYABORT; + if (unlikely(!Select-> + add_table_to_list(thd, + ti, + NULL, + (TL_OPTION_UPDATING | + TL_OPTION_ALIAS), + YYPS->m_lock_type, + YYPS->m_mdl_type))) + MYSQL_YYABORT; + } +#line 47673 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2179: +#line 13355 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Table_ident *ti= new (thd->mem_root) Table_ident(thd, &(yyvsp[-3].ident_sys), &(yyvsp[-1].ident_sys), 0); + if (unlikely(ti == NULL)) + MYSQL_YYABORT; + if (unlikely(!Select-> + add_table_to_list(thd, + ti, + NULL, + (TL_OPTION_UPDATING | + TL_OPTION_ALIAS), + YYPS->m_lock_type, + YYPS->m_mdl_type))) + MYSQL_YYABORT; + } +#line 47694 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2180: +#line 13372 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2181: +#line 13373 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47710 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2182: +#line 13377 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47718 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2183: +#line 13378 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 47726 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2184: +#line 13382 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= OPTION_QUICK; } +#line 47734 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2185: +#line 13383 "/home/buildbot/git/sql/sql_yacc.yy" + + { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } +#line 47742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2186: +#line 13384 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ignore= 1; } +#line 47750 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2187: +#line 13389 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= Lex; + lex->sql_command= SQLCOM_TRUNCATE; + lex->alter_info.reset(); + lex->first_select_lex()->options= 0; + lex->sql_cache= LEX::SQL_CACHE_UNSPECIFIED; + lex->first_select_lex()->order_list.empty(); + YYPS->m_lock_type= TL_WRITE; + YYPS->m_mdl_type= MDL_EXCLUSIVE; + } +#line 47767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2188: +#line 13400 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX* lex= thd->lex; + DBUG_ASSERT(!lex->m_sql_cmd); + lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_truncate_table(); + if (unlikely(lex->m_sql_cmd == NULL)) + MYSQL_YYABORT; + } +#line 47781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2189: +#line 13407 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 47789 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2196: +#line 13425 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_CPU; + } +#line 47799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2197: +#line 13429 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_MEMORY; + } +#line 47809 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2198: +#line 13433 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_BLOCK_IO; + } +#line 47819 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2199: +#line 13437 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_CONTEXT; + } +#line 47829 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2200: +#line 13441 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_PAGE_FAULTS; + } +#line 47839 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2201: +#line 13445 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_IPC; + } +#line 47849 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2202: +#line 13449 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_SWAPS; + } +#line 47859 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2203: +#line 13453 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_SOURCE; + } +#line 47869 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2204: +#line 13457 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_options|= PROFILE_ALL; + } +#line 47879 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2205: +#line 13464 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_query_id= 0; + } +#line 47889 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2206: +#line 13468 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->profile_query_id= atoi((yyvsp[0].lex_str).str); + } +#line 47899 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2207: +#line 13477 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->wild=0; + lex->ident= null_clex_str; + if (Lex->main_select_push()) + MYSQL_YYABORT; + mysql_init_select(lex); + lex->current_select->parsing_place= SELECT_LIST; + lex->create_info.init(); + } +#line 47916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2208: +#line 13488 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= NO_MATTER; + Lex->pop_select(); //main select + } +#line 47927 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2209: +#line 13496 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_DATABASES; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SCHEMATA))) + MYSQL_YYABORT; + } +#line 47940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2210: +#line 13503 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_TABLES; + lex->first_select_lex()->db= (yyvsp[-1].lex_str); + if (prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES)) + MYSQL_YYABORT; + } +#line 47954 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2211: +#line 13511 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_TRIGGERS; + lex->first_select_lex()->db= (yyvsp[-1].lex_str); + if (prepare_schema_table(thd, lex, 0, SCH_TRIGGERS)) + MYSQL_YYABORT; + } +#line 47968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2212: +#line 13519 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_EVENTS; + lex->first_select_lex()->db= (yyvsp[-1].lex_str); + if (prepare_schema_table(thd, lex, 0, SCH_EVENTS)) + MYSQL_YYABORT; + } +#line 47982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2213: +#line 13527 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; + lex->first_select_lex()->db= (yyvsp[-1].lex_str); + if (prepare_schema_table(thd, lex, 0, SCH_TABLES)) + MYSQL_YYABORT; + } +#line 47996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2214: +#line 13535 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; + lex->first_select_lex()->db= (yyvsp[-1].lex_str); + if (prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES)) + MYSQL_YYABORT; + } +#line 48010 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2215: +#line 13543 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_PLUGINS; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PLUGINS))) + MYSQL_YYABORT; + } +#line 48023 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2216: +#line 13550 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->ident= (yyvsp[0].lex_str); + Lex->sql_command= SQLCOM_SHOW_PLUGINS; + if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_ALL_PLUGINS))) + MYSQL_YYABORT; + } +#line 48036 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2217: +#line 13557 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_PLUGINS; + if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_ALL_PLUGINS))) + MYSQL_YYABORT; + } +#line 48048 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2218: +#line 13563 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->create_info.db_type= (yyvsp[-1].db_type); } +#line 48056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2219: +#line 13565 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->create_info.db_type= NULL; } +#line 48064 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2220: +#line 13567 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_FIELDS; + if ((yyvsp[-1].lex_str).str) + (yyvsp[-2].table)->change_db(&(yyvsp[-1].lex_str)); + if (unlikely(prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_COLUMNS))) + MYSQL_YYABORT; + } +#line 48079 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2221: +#line 13576 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_SHOW_BINLOGS; + } +#line 48089 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2222: +#line 13580 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS; + } +#line 48099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2223: +#line 13584 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; + } +#line 48110 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2225: +#line 13590 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS; + } +#line 48121 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2227: +#line 13596 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_KEYS; + if ((yyvsp[-1].lex_str).str) + (yyvsp[-2].table)->change_db(&(yyvsp[-1].lex_str)); + if (unlikely(prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_STATISTICS))) + MYSQL_YYABORT; + } +#line 48136 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2228: +#line 13605 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_ENGINES))) + MYSQL_YYABORT; + } +#line 48149 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2229: +#line 13612 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SHOW_AUTHORS; + } +#line 48160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2230: +#line 13617 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; + } +#line 48171 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2231: +#line 13622 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SHOW_PRIVILEGES; + } +#line 48182 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2232: +#line 13627 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX_CSTRING var= {STRING_WITH_LEN("warning_count")}; + (void) create_select_for_variable(thd, &var); + } +#line 48193 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2233: +#line 13632 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX_CSTRING var= {STRING_WITH_LEN("error_count")}; + (void) create_select_for_variable(thd, &var); + } +#line 48204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2234: +#line 13637 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command = SQLCOM_SHOW_WARNS;} +#line 48212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2235: +#line 13639 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command = SQLCOM_SHOW_ERRORS;} +#line 48220 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2236: +#line 13641 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command = SQLCOM_SHOW_PROFILES; } +#line 48228 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2237: +#line 13643 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_PROFILE; + if (unlikely(prepare_schema_table(thd, lex, NULL, SCH_PROFILES))) + MYSQL_YYABORT; + } +#line 48241 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2238: +#line 13650 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS; + lex->option_type= (yyvsp[-2].var_type); + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SESSION_STATUS))) + MYSQL_YYABORT; + } +#line 48255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2239: +#line 13658 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} +#line 48263 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2240: +#line 13660 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_VARIABLES; + lex->option_type= (yyvsp[-2].var_type); + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SESSION_VARIABLES))) + MYSQL_YYABORT; + } +#line 48277 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2241: +#line 13668 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_CHARSETS; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_CHARSETS))) + MYSQL_YYABORT; + } +#line 48290 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2242: +#line 13675 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_COLLATIONS; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_COLLATIONS))) + MYSQL_YYABORT; + } +#line 48303 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2243: +#line 13682 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_GRANTS; + if (unlikely(!(Lex->grant_user= + (LEX_USER*)thd->alloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + Lex->grant_user->user= current_user_and_current_role; + } +#line 48317 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2244: +#line 13690 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SHOW_GRANTS; + lex->grant_user=(yyvsp[-1].lex_user); + } +#line 48329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2245: +#line 13696 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->set_command(SQLCOM_SHOW_CREATE_DB, (yyvsp[-1].object_ddl_options)); + Lex->name= (yyvsp[0].ident_sys); + } +#line 48340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2246: +#line 13701 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE; + if (!lex->first_select_lex()->add_table_to_list(thd, (yyvsp[0].table), NULL,0)) + MYSQL_YYABORT; + lex->create_info.storage_media= HA_SM_DEFAULT; + } +#line 48354 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2247: +#line 13709 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE; + if (!lex->first_select_lex()->add_table_to_list(thd, (yyvsp[0].table), NULL, 0)) + MYSQL_YYABORT; + lex->table_type= TABLE_TYPE_VIEW; + } +#line 48368 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2248: +#line 13717 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE; + if (!lex->first_select_lex()->add_table_to_list(thd, (yyvsp[0].table), NULL, 0)) + MYSQL_YYABORT; + lex->table_type= TABLE_TYPE_SEQUENCE; + } +#line 48382 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2249: +#line 13725 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_SHOW_BINLOG_STAT; + } +#line 48392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2250: +#line 13729 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_SHOW_BINLOG_STAT; + } +#line 48402 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2251: +#line 13733 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!(Lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_show_slave_status(true))) + MYSQL_YYABORT; + Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; + } +#line 48415 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2252: +#line 13740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->mi.connection_name= null_clex_str; + if (!(lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_show_slave_status())) + MYSQL_YYABORT; + lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; + } +#line 48430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2253: +#line 13749 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!(Lex->m_sql_cmd= new (thd->mem_root) + Sql_cmd_show_slave_status())) + MYSQL_YYABORT; + Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; + } +#line 48443 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2254: +#line 13756 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + + lex->sql_command = SQLCOM_SHOW_CREATE_PROC; + lex->spname= (yyvsp[0].spname); + } +#line 48456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2255: +#line 13763 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + + lex->sql_command = SQLCOM_SHOW_CREATE_FUNC; + lex->spname= (yyvsp[0].spname); + } +#line 48469 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2256: +#line 13770 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE; + lex->spname= (yyvsp[0].spname); + } +#line 48481 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2257: +#line 13776 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE; + lex->spname= (yyvsp[0].spname); + } +#line 48493 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2258: +#line 13782 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE_BODY; + lex->spname= (yyvsp[0].spname); + } +#line 48505 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2259: +#line 13788 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE_BODY; + lex->spname= (yyvsp[0].spname); + } +#line 48517 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2260: +#line 13794 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER; + lex->spname= (yyvsp[0].spname); + } +#line 48529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2261: +#line 13800 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_CREATE_USER; + if (unlikely(!(Lex->grant_user= + (LEX_USER*)thd->alloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + Lex->grant_user->user= current_user; + } +#line 48543 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2262: +#line 13808 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_CREATE_USER; + Lex->grant_user= (yyvsp[0].lex_user); + } +#line 48554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2263: +#line 13813 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS_PROC; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) + MYSQL_YYABORT; + } +#line 48567 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2264: +#line 13820 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS_FUNC; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) + MYSQL_YYABORT; + } +#line 48580 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2265: +#line 13827 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) + MYSQL_YYABORT; + } +#line 48593 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2266: +#line 13834 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) + MYSQL_YYABORT; + } +#line 48606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2267: +#line 13841 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE_BODY; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) + MYSQL_YYABORT; + } +#line 48619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2268: +#line 13848 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE_BODY; + if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) + MYSQL_YYABORT; + } +#line 48632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2269: +#line 13855 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_PROC_CODE; + Lex->spname= (yyvsp[0].spname); + } +#line 48643 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2270: +#line 13860 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_FUNC_CODE; + Lex->spname= (yyvsp[0].spname); + } +#line 48654 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2271: +#line 13865 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_PACKAGE_BODY_CODE; + Lex->spname= (yyvsp[0].spname); + } +#line 48665 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2272: +#line 13870 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_PACKAGE_BODY_CODE; + Lex->spname= (yyvsp[0].spname); + } +#line 48676 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2273: +#line 13875 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->spname= (yyvsp[0].spname); + Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT; + } +#line 48687 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2274: +#line 13880 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_SHOW_EXPLAIN; + if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_EXPLAIN))) + MYSQL_YYABORT; + add_value_to_list(thd, (yyvsp[0].item)); + } +#line 48700 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2275: +#line 13887 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + bool in_plugin; + lex->sql_command= SQLCOM_SHOW_GENERIC; + ST_SCHEMA_TABLE *table= find_schema_table(thd, &(yyvsp[-2].ident_sys), &in_plugin); + if (unlikely(!table || !table->old_format || !in_plugin)) + { + thd->parse_error(ER_SYNTAX_ERROR, (yyvsp[-1].simple_string)); + MYSQL_YYABORT; + } + if (unlikely(lex->wild && table->idx_field1 < 0)) + { + thd->parse_error(ER_SYNTAX_ERROR, (yyvsp[0].simple_string)); + MYSQL_YYABORT; + } + if (unlikely(make_schema_select(thd, Lex->current_select, table))) + MYSQL_YYABORT; + } +#line 48725 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2276: +#line 13909 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; } +#line 48733 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2277: +#line 13911 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; } +#line 48741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2278: +#line 13913 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; } +#line 48749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2283: +#line 13927 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= null_clex_str; } +#line 48757 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2284: +#line 13928 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= (yyvsp[0].ident_sys); } +#line 48765 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2285: +#line 13932 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->verbose=0; } +#line 48773 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2286: +#line 13933 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->verbose=1; } +#line 48781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2289: +#line 13942 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->mi.log_file_name = 0; } +#line 48789 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2290: +#line 13943 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } +#line 48797 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2291: +#line 13947 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->mi.pos = 4; /* skip magic number */ } +#line 48805 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2292: +#line 13948 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->mi.pos = (yyvsp[0].ulonglong_number); } +#line 48813 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2293: +#line 13952 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.simple_string)= 0; } +#line 48821 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2294: +#line 13954 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->wild= new (thd->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, + system_charset_info); + if (unlikely(Lex->wild == NULL)) + MYSQL_YYABORT; + (yyval.simple_string)= (yyvsp[-1].simple_string); + } +#line 48835 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2295: +#line 13962 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->where= normalize_cond(thd, (yyvsp[0].item)); + if ((yyvsp[0].item)) + (yyvsp[0].item)->top_level_item(); + (yyval.simple_string)= (yyvsp[-1].simple_string); + } +#line 48848 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2296: +#line 13973 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (lex->main_select_push()) + MYSQL_YYABORT; + mysql_init_select(lex); + lex->current_select->parsing_place= SELECT_LIST; + lex->sql_command= SQLCOM_SHOW_FIELDS; + lex->first_select_lex()->db= null_clex_str; + lex->verbose= 0; + if (unlikely(prepare_schema_table(thd, lex, (yyvsp[0].table), SCH_COLUMNS))) + MYSQL_YYABORT; + } +#line 48867 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2297: +#line 13986 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Select->parsing_place= NO_MATTER; + Lex->pop_select(); //main select + } +#line 48878 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2298: +#line 13991 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->describe|= DESCRIBE_NORMAL; } +#line 48886 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2299: +#line 13993 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->first_select_lex()->options|= SELECT_DESCRIBE; + } +#line 48897 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2308: +#line 14015 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->analyze_stmt= true; + } +#line 48907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2309: +#line 14021 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->describe|= DESCRIBE_EXTENDED; } +#line 48915 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2310: +#line 14023 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->describe|= DESCRIBE_EXTENDED | DESCRIBE_EXTENDED2; } +#line 48923 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2311: +#line 14024 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->describe|= DESCRIBE_PARTITIONS; } +#line 48931 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2312: +#line 14025 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 48939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2313: +#line 14029 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 48947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2314: +#line 14031 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("JSON"))) + Lex->explain_json= true; + else if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("TRADITIONAL"))) + DBUG_ASSERT(Lex->explain_json==false); + else + my_yyabort_error((ER_UNKNOWN_EXPLAIN_FORMAT, MYF(0), "EXPLAIN", + (yyvsp[0].lex_str).str)); + } +#line 48963 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2315: +#line 14043 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 48971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2316: +#line 14044 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->wild= (yyvsp[0].string); } +#line 48979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2317: +#line 14046 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->wild= new (thd->mem_root) String((const char*) (yyvsp[0].ident_sys).str, + (yyvsp[0].ident_sys).length, + system_charset_info); + if (unlikely(Lex->wild == NULL)) + MYSQL_YYABORT; + } +#line 48993 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2318: +#line 14060 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_FLUSH; + lex->type= 0; + lex->no_write_to_binlog= (yyvsp[0].num); + } +#line 49006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2319: +#line 14066 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49014 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2320: +#line 14071 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->type|= REFRESH_TABLES; + /* + Set type of metadata and table locks for + FLUSH TABLES table_list [WITH READ LOCK]. + */ + YYPS->m_lock_type= TL_READ_NO_INSERT; + YYPS->m_mdl_type= MDL_SHARED_HIGH_PRIO; + } +#line 49030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2321: +#line 14081 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49038 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2322: +#line 14083 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49046 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2323: +#line 14087 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49054 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2324: +#line 14089 "/home/buildbot/git/sql/sql_yacc.yy" + + { + TABLE_LIST *tables= Lex->query_tables; + for (; tables; tables= tables->next_global) + { + tables->mdl_request.set_type(MDL_SHARED_NO_WRITE); + /* Don't try to flush views. */ + tables->required_type= TABLE_TYPE_NORMAL; + /* Ignore temporary tables. */ + tables->open_type= OT_BASE_ONLY; + } + } +#line 49072 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2325: +#line 14104 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_READ_LOCK | (yyvsp[0].num); } +#line 49080 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2326: +#line 14106 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->query_tables == NULL)) + { + // Table list can't be empty + thd->parse_error(ER_NO_TABLES_USED); + MYSQL_YYABORT; + } + Lex->type|= REFRESH_FOR_EXPORT; + } +#line 49096 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2327: +#line 14114 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49104 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2329: +#line 14120 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2330: +#line 14125 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_ERROR_LOG; } +#line 49120 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2331: +#line 14127 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_ENGINE_LOG; } +#line 49128 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2332: +#line 14129 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_GENERAL_LOG; } +#line 49136 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2333: +#line 14131 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_SLOW_LOG; } +#line 49144 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2334: +#line 14133 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_BINARY_LOG; } +#line 49152 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2335: +#line 14135 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->type & REFRESH_RELAY_LOG)) + my_yyabort_error((ER_WRONG_USAGE, MYF(0), "FLUSH", "RELAY LOGS")); + lex->type|= REFRESH_RELAY_LOG; + lex->relay_log_connection_name= lex->mi.connection_name; + } +#line 49166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2336: +#line 14143 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_QUERY_CACHE_FREE; } +#line 49174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2337: +#line 14145 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_HOSTS; } +#line 49182 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2338: +#line 14147 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_GRANT; } +#line 49190 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2339: +#line 14149 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->type|= REFRESH_LOG; + Lex->relay_log_connection_name= empty_clex_str; + } +#line 49201 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2340: +#line 14154 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_STATUS; } +#line 49209 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2341: +#line 14156 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->type & REFRESH_SLAVE)) + my_yyabort_error((ER_WRONG_USAGE, MYF(0), "FLUSH","SLAVE")); + lex->type|= REFRESH_SLAVE; + lex->reset_slave_info.all= false; + } +#line 49223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2342: +#line 14164 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_MASTER; } +#line 49231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2343: +#line 14166 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_DES_KEY_FILE; } +#line 49239 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2344: +#line 14168 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_USER_RESOURCES; } +#line 49247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2345: +#line 14170 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_SSL;} +#line 49255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2346: +#line 14172 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_THREADS;} +#line 49263 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2347: +#line 14174 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->type|= REFRESH_GENERIC; + ST_SCHEMA_TABLE *table= find_schema_table(thd, &(yyvsp[-1].ident_sys)); + if (unlikely(!table || !table->reset_table)) + { + thd->parse_error(ER_SYNTAX_ERROR, (yyvsp[0].simple_string)); + MYSQL_YYABORT; + } + if (unlikely(Lex->view_list.push_back((LEX_CSTRING*) + thd->memdup(&(yyvsp[-1].ident_sys), sizeof(LEX_CSTRING)), + thd->mem_root))) + MYSQL_YYABORT; + } +#line 49283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2348: +#line 14190 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2349: +#line 14191 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49299 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2350: +#line 14195 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49307 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2351: +#line 14200 "/home/buildbot/git/sql/sql_yacc.yy" + + { + int type; + if (unlikely(Lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "BACKUP STAGE")); + if ((type= find_type((yyvsp[0].ident_sys).str, &backup_stage_names, + FIND_TYPE_NO_PREFIX)) <= 0) + my_yyabort_error((ER_BACKUP_UNKNOWN_STAGE, MYF(0), (yyvsp[0].ident_sys).str)); + Lex->sql_command= SQLCOM_BACKUP; + Lex->backup_stage= (backup_stages) (type-1); + break; + } +#line 49325 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2352: +#line 14212 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "BACKUP LOCK")); + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 49338 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2353: +#line 14219 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, 0, + TL_READ, MDL_SHARED_HIGH_PRIO))) + MYSQL_YYABORT; + Lex->sql_command= SQLCOM_BACKUP_LOCK; + Lex->pop_select(); //main select + } +#line 49352 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2354: +#line 14227 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "BACKUP UNLOCK")); + /* Table list is empty for unlock */ + Lex->sql_command= SQLCOM_BACKUP_LOCK; + } +#line 49365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2355: +#line 14236 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2356: +#line 14238 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2360: +#line 14248 "/home/buildbot/git/sql/sql_yacc.yy" + + { + uint32 value= (uint32) (yyvsp[0].ulonglong_number); + if ((yyvsp[0].ulonglong_number) > UINT_MAX32) + { + my_printf_error(ER_BINLOG_CANT_DELETE_GTID_DOMAIN, + "The value of gtid domain being deleted ('%llu') " + "exceeds its maximum size " + "of 32 bit unsigned integer", MYF(0), (yyvsp[0].ulonglong_number)); + MYSQL_YYABORT; + } + insert_dynamic(&Lex->delete_gtid_domain, (uchar*) &value); + } +#line 49400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2361: +#line 14263 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.num)= 0;} +#line 49408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2362: +#line 14264 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.num)= REFRESH_CHECKPOINT; } +#line 49416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2363: +#line 14269 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_RESET; lex->type=0; + } +#line 49427 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2364: +#line 14274 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49435 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2367: +#line 14283 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_SLAVE; } +#line 49443 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2368: +#line 14285 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 49451 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2369: +#line 14287 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->type|= REFRESH_MASTER; + Lex->next_binlog_file_number= 0; + } +#line 49462 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2371: +#line 14292 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->type|= REFRESH_QUERY_CACHE;} +#line 49470 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2372: +#line 14296 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->reset_slave_info.all= false; } +#line 49478 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2373: +#line 14297 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->reset_slave_info.all= true; } +#line 49486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2374: +#line 14301 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2375: +#line 14303 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->next_binlog_file_number = (yyvsp[0].ulong_num); + } +#line 49504 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2376: +#line 14310 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->stmt_purge_to((yyvsp[0].lex_str)); + } +#line 49514 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2377: +#line 14314 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->clause_that_disallows_subselect= "PURGE..BEFORE"; } +#line 49522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2378: +#line 14316 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->clause_that_disallows_subselect= NULL; + if (Lex->stmt_purge_before((yyvsp[0].item))) + MYSQL_YYABORT; + } +#line 49534 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2379: +#line 14328 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->value_list.empty(); + lex->users_list.empty(); + lex->sql_command= SQLCOM_KILL; + lex->kill_type= KILL_TYPE_ID; + } +#line 49548 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2380: +#line 14336 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->kill_signal= (killed_state) ((yyvsp[-1].num) | (yyvsp[0].num)); + } +#line 49558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2381: +#line 14342 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (int) KILL_HARD_BIT; } +#line 49566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2382: +#line 14343 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (int) KILL_HARD_BIT; } +#line 49574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2383: +#line 14344 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 49582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2384: +#line 14348 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (int) KILL_CONNECTION; } +#line 49590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2385: +#line 14349 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= (int) KILL_QUERY; } +#line 49598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2386: +#line 14351 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= (int) KILL_QUERY; + Lex->kill_type= KILL_TYPE_QUERY; + Lex->value_list.push_front((yyvsp[0].item), thd->mem_root); + } +#line 49610 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2387: +#line 14359 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 49618 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2388: +#line 14360 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 49626 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2389: +#line 14365 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->value_list.push_front((yyval.item), thd->mem_root); + } +#line 49636 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2390: +#line 14369 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root); + Lex->kill_type= KILL_TYPE_USER; + } +#line 49647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2391: +#line 14376 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->sql_command= SQLCOM_SHUTDOWN; } +#line 49655 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2392: +#line 14377 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49663 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2393: +#line 14381 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->is_shutdown_wait_for_slaves= false; } +#line 49671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2394: +#line 14383 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->is_shutdown_wait_for_slaves= true; + } +#line 49681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2395: +#line 14392 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command=SQLCOM_CHANGE_DB; + lex->first_select_lex()->db= (yyvsp[0].ident_sys); + } +#line 49693 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2396: +#line 14403 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + + if (unlikely(lex->sphead)) + { + my_error(ER_SP_BADSTATEMENT, MYF(0), + (yyvsp[0].filetype) == FILETYPE_CSV ? "LOAD DATA" : "LOAD XML"); + MYSQL_YYABORT; + } + if (lex->main_select_push()) + MYSQL_YYABORT; + mysql_init_select(lex); + } +#line 49713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2397: +#line 14417 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_LOAD; + lex->local_file= (yyvsp[-2].num); + lex->duplicates= DUP_ERROR; + lex->ignore= 0; + if (unlikely(!(lex->exchange= new (thd->mem_root) + sql_exchange((yyvsp[0].lex_str).str, 0, (yyvsp[-5].filetype))))) + MYSQL_YYABORT; + } +#line 49730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2398: +#line 14428 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, + TL_OPTION_UPDATING, + (yyvsp[-9].lock_type), MDL_SHARED_WRITE, + NULL, (yyvsp[0].string_list)))) + MYSQL_YYABORT; + lex->field_list.empty(); + lex->update_list.empty(); + lex->value_list.empty(); + lex->many_values.empty(); + } +#line 49749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2399: +#line 14441 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->exchange->cs= (yyvsp[0].charset); } +#line 49757 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2400: +#line 14446 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->mark_first_table_as_inserting(); + } +#line 49767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2401: +#line 14452 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.filetype)= FILETYPE_CSV; } +#line 49775 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2402: +#line 14453 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.filetype)= FILETYPE_XML; } +#line 49783 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2403: +#line 14457 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)=0;} +#line 49791 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2404: +#line 14458 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)=1;} +#line 49799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2405: +#line 14462 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE_DEFAULT; } +#line 49807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2406: +#line 14464 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + Ignore this option in SP to avoid problem with query cache and + triggers with non default priority locks + */ + (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); + } +#line 49821 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2407: +#line 14471 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } +#line 49829 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2408: +#line 14475 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->duplicates=DUP_ERROR; } +#line 49837 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2409: +#line 14476 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->duplicates=DUP_REPLACE; } +#line 49845 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2410: +#line 14477 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ignore= 1; } +#line 49853 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2415: +#line 14492 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->exchange != 0); + Lex->exchange->field_term= (yyvsp[0].string); + } +#line 49864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2416: +#line 14497 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + DBUG_ASSERT(lex->exchange != 0); + lex->exchange->enclosed= (yyvsp[0].string); + lex->exchange->opt_enclosed= 1; + } +#line 49877 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2417: +#line 14504 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->exchange != 0); + Lex->exchange->enclosed= (yyvsp[0].string); + } +#line 49888 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2418: +#line 14509 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->exchange != 0); + Lex->exchange->escaped= (yyvsp[0].string); + } +#line 49899 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2423: +#line 14527 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->exchange != 0); + Lex->exchange->line_term= (yyvsp[0].string); + } +#line 49910 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2424: +#line 14532 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->exchange != 0); + Lex->exchange->line_start= (yyvsp[0].string); + } +#line 49921 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2425: +#line 14539 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 49929 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2426: +#line 14541 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->exchange->line_term = (yyvsp[0].string); } +#line 49937 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2428: +#line 14547 "/home/buildbot/git/sql/sql_yacc.yy" + + { + DBUG_ASSERT(Lex->exchange != 0); + Lex->exchange->skip_lines= atol((yyvsp[-1].lex_str).str); + } +#line 49948 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2429: +#line 14554 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 49956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2430: +#line 14555 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 49964 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2431: +#line 14559 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49972 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2432: +#line 14560 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2433: +#line 14561 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 49988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2434: +#line 14566 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 49996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2435: +#line 14568 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 50004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2436: +#line 14572 "/home/buildbot/git/sql/sql_yacc.yy" + + {(yyval.item)= (yyvsp[0].item);} +#line 50012 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2437: +#line 14574 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_user_var_as_out_param(thd, &(yyvsp[0].lex_str)); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 50024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2438: +#line 14582 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 50032 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2439: +#line 14583 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 50040 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2442: +#line 14593 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->update_list.push_back((yyvsp[-4].item), thd->mem_root)) || + unlikely(lex->value_list.push_back((yyvsp[-1].item), thd->mem_root))) + MYSQL_YYABORT; + (yyvsp[-1].item)->set_name_no_truncate(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); + } +#line 50054 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2443: +#line 14606 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal((yyvsp[0].lex_string_with_metadata))))) + MYSQL_YYABORT; + } +#line 50065 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2444: +#line 14611 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_nchar((yyvsp[0].lex_string_with_metadata))))) + MYSQL_YYABORT; + } +#line 50076 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2445: +#line 14616 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_charset((yyvsp[0].lex_string_with_metadata), (yyvsp[-1].charset))))) + MYSQL_YYABORT; + } +#line 50087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2446: +#line 14621 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_basic_constant)= (yyvsp[-1].item_basic_constant)->make_string_literal_concat(thd, &(yyvsp[0].lex_str))))) + MYSQL_YYABORT; + } +#line 50098 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2447: +#line 14629 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.string)= new (thd->mem_root) String((yyvsp[0].lex_str).str, + (yyvsp[0].lex_str).length, + thd->variables.collation_connection); + if (unlikely((yyval.string) == NULL)) + MYSQL_YYABORT; + } +#line 50112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2448: +#line 14636 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.string)= (yyvsp[0].string); } +#line 50120 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2449: +#line 14642 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *tmp= new (thd->mem_root) Item_hex_hybrid(thd, (yyvsp[0].lex_str).str, + (yyvsp[0].lex_str).length); + if (unlikely(tmp == NULL)) + MYSQL_YYABORT; + (yyval.string)= tmp->val_str((String*) 0); + } +#line 50134 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2450: +#line 14650 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *tmp= new (thd->mem_root) Item_hex_string(thd, (yyvsp[0].lex_str).str, + (yyvsp[0].lex_str).length); + if (unlikely(tmp == NULL)) + MYSQL_YYABORT; + (yyval.string)= tmp->val_str((String*) 0); + } +#line 50148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2451: +#line 14658 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item *tmp= new (thd->mem_root) Item_bin_string(thd, (yyvsp[0].lex_str).str, + (yyvsp[0].lex_str).length); + if (unlikely(tmp == NULL)) + MYSQL_YYABORT; + /* + it is OK only emulate fix_fields, because we need only + value of constant + */ + (yyval.string)= tmp->val_str((String*) 0); + } +#line 50166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2452: +#line 14673 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, ¶m_clex_str, + YYLIP->get_tok_start(), + YYLIP->get_tok_start() + 1)))) + MYSQL_YYABORT; + } +#line 50179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2453: +#line 14680 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, &null_clex_str, + (yyvsp[-1].kwd).pos(), (yyvsp[0].ident_cli).end())))) + MYSQL_YYABORT; + } +#line 50191 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2454: +#line 14686 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, &null_clex_str, + (yyvsp[-1].kwd).pos(), + YYLIP->get_ptr())))) + MYSQL_YYABORT; + } +#line 50204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2455: +#line 14695 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item) = (yyvsp[0].item_num); } +#line 50212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2456: +#line 14697 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyvsp[0].item_num)->max_length++; + (yyval.item)= (yyvsp[0].item_num)->neg(thd); + } +#line 50223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2457: +#line 14704 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item) = (yyvsp[0].item_basic_constant); } +#line 50231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2458: +#line 14705 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item) = (yyvsp[0].item_num); } +#line 50239 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2459: +#line 14706 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)= (yyvsp[0].item); } +#line 50247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2460: +#line 14708 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + For the digest computation, in this context only, + NULL is considered a literal, hence reduced to '?' + REDUCE: + TOK_GENERIC_VALUE := NULL_SYM + */ + YYLIP->reduce_digest_token(TOK_GENERIC_VALUE, NULL_SYM); + (yyval.item)= new (thd->mem_root) Item_null(thd); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT; + } +#line 50267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2461: +#line 14722 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_bool(thd, (char*) "FALSE",0); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 50279 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2462: +#line 14728 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_bool(thd, (char*) "TRUE",1); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 50291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2463: +#line 14734 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_hex_hybrid(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 50303 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2464: +#line 14740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_hex_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 50315 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2465: +#line 14746 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)= new (thd->mem_root) Item_bin_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 50327 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2466: +#line 14752 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Item_string_with_introducer *item_str; + LEX_CSTRING tmp; + (yyvsp[0].string)->get_value(&tmp); + /* + Pass NULL as name. Name will be set in the "select_item" rule and + will include the introducer and the original hex/bin notation. + */ + item_str= new (thd->mem_root) + Item_string_with_introducer(thd, null_clex_str, + tmp, (yyvsp[-1].charset)); + if (unlikely(!item_str || + !item_str->check_well_formed_result(true))) + MYSQL_YYABORT; + + (yyval.item)= item_str; + } +#line 50351 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2467: +#line 14773 "/home/buildbot/git/sql/sql_yacc.yy" + + { + int error; + (yyval.item_num)= new (thd->mem_root) + Item_int(thd, (yyvsp[0].lex_str).str, + (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), + (yyvsp[0].lex_str).length); + if (unlikely((yyval.item_num) == NULL)) + MYSQL_YYABORT; + } +#line 50367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2468: +#line 14783 "/home/buildbot/git/sql/sql_yacc.yy" + + { + int error; + (yyval.item_num)= new (thd->mem_root) + Item_int(thd, (yyvsp[0].lex_str).str, + (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), + (yyvsp[0].lex_str).length); + if (unlikely((yyval.item_num) == NULL)) + MYSQL_YYABORT; + } +#line 50383 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2469: +#line 14793 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_num)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item_num) == NULL)) + MYSQL_YYABORT; + } +#line 50395 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2470: +#line 14799 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_num)= new (thd->mem_root) Item_decimal(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, + thd->charset()); + if (unlikely((yyval.item_num) == NULL) || unlikely(thd->is_error())) + MYSQL_YYABORT; + } +#line 50408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2471: +#line 14806 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item_num)= new (thd->mem_root) Item_float(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + if (unlikely((yyval.item_num) == NULL) || unlikely(thd->is_error())) + MYSQL_YYABORT; + } +#line 50420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2472: +#line 14816 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= type_handler_newdate.create_literal_item(thd, + (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, + YYCSCL, true)))) + MYSQL_YYABORT; + } +#line 50433 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2473: +#line 14823 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= type_handler_time2.create_literal_item(thd, + (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, + YYCSCL, true)))) + MYSQL_YYABORT; + } +#line 50446 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2474: +#line 14830 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= type_handler_datetime.create_literal_item(thd, + (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, + YYCSCL, true)))) + MYSQL_YYABORT; + } +#line 50459 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2475: +#line 14840 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + With_clause *with_clause= + new With_clause((yyvsp[0].num), Lex->curr_with_clause); + if (unlikely(with_clause == NULL)) + MYSQL_YYABORT; + lex->derived_tables|= DERIVED_WITH; + lex->with_cte_resolution= true; + lex->curr_with_clause= with_clause; + with_clause->add_to_list(Lex->with_clauses_list_last_next); + if (lex->current_select && + lex->current_select->parsing_place == BEFORE_OPT_LIST) + lex->current_select->parsing_place= NO_MATTER; + } +#line 50480 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2476: +#line 14855 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.with_clause)= Lex->curr_with_clause; + Lex->curr_with_clause= Lex->curr_with_clause->pop(); + } +#line 50491 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2477: +#line 14863 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 50499 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2478: +#line 14864 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 50507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2481: +#line 14878 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + const char *query_start= lex->sphead ? lex->sphead->m_tmp_query + : thd->query(); + const char *spec_start= (yyvsp[-3].kwd).pos() + 1; + With_element *elem= new With_element((yyvsp[-6].with_element_head), *(yyvsp[-5].ident_sys_list), (yyvsp[-2].select_lex_unit)); + if (elem == NULL || Lex->curr_with_clause->add_with_element(elem)) + MYSQL_YYABORT; + if (elem->set_unparsed_spec(thd, spec_start, (yyvsp[-1].kwd).pos(), + spec_start - query_start)) + MYSQL_YYABORT; + if ((yyvsp[0].ident_sys_list)) + { + elem->set_cycle_list((yyvsp[0].ident_sys_list)); + } + elem->set_tables_end_pos(lex->query_tables_last); + } +#line 50531 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2482: +#line 14899 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ident_sys_list)= NULL; } +#line 50539 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2483: +#line 14902 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!Lex->curr_with_clause->with_recursive) + { + thd->parse_error(ER_SYNTAX_ERROR, (yyvsp[0].kwd).pos()); + } + } +#line 50552 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2484: +#line 14909 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.ident_sys_list)= (yyvsp[-1].ident_sys_list); + } +#line 50562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2485: +#line 14917 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (((yyval.ident_sys_list)= new (thd->mem_root) List<Lex_ident_sys>) == NULL) + MYSQL_YYABORT; + } +#line 50573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2486: +#line 14922 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ident_sys_list)= (yyvsp[-1].ident_sys_list); } +#line 50581 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2488: +#line 14931 "/home/buildbot/git/sql/sql_yacc.yy" + + { + void *buf= thd->alloc(sizeof(Lex_ident_sys)); + if (!buf) + MYSQL_YYABORT; + (yyval.ident_sys_ptr)= new (buf) Lex_ident_sys(thd, &(yyvsp[0].ident_cli)); + } +#line 50594 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2489: +#line 14941 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.ident_sys_list)= new (thd->mem_root) List<Lex_ident_sys>; + if (unlikely((yyval.ident_sys_list) == NULL || (yyval.ident_sys_list)->push_back((yyvsp[0].ident_sys_ptr)))) + MYSQL_YYABORT; + } +#line 50606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2490: +#line 14947 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (((yyval.ident_sys_list)= (yyvsp[-2].ident_sys_list))->push_back((yyvsp[0].ident_sys_ptr))) + MYSQL_YYABORT; + } +#line 50617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2491: +#line 14956 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX_CSTRING *name= + (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); + (yyval.with_element_head)= new (thd->mem_root) With_element_head(name); + if (unlikely(name == NULL || (yyval.with_element_head) == NULL)) + MYSQL_YYABORT; + (yyval.with_element_head)->tables_pos.set_start_pos(Lex->query_tables_last); + } +#line 50632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2492: +#line 14973 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)=(yyvsp[0].item); } +#line 50640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2493: +#line 14974 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)=(yyvsp[0].item); } +#line 50648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2494: +#line 14979 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_sys))))) + MYSQL_YYABORT; + } +#line 50659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2495: +#line 14984 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys))))) + MYSQL_YYABORT; + } +#line 50670 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2496: +#line 14992 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_cli))))) + MYSQL_YYABORT; + } +#line 50681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2497: +#line 14997 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-4].ident_cli), &(yyvsp[-2].ident_cli))))) + MYSQL_YYABORT; + } +#line 50692 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2498: +#line 15004 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)=(yyvsp[0].item); } +#line 50700 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2499: +#line 15010 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 50711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2500: +#line 15015 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 50722 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2501: +#line 15020 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_cli empty((yyvsp[-2].ident_cli).pos(), 0); + if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &empty, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 50734 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2502: +#line 15026 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-4].ident_cli), &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 50745 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2503: +#line 15031 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_colon_ident_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 50756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2504: +#line 15039 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_ident_nosp(thd, &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 50767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2505: +#line 15044 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_ident_nospvar(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 50778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2506: +#line 15049 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->make_item_colon_ident_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) + MYSQL_YYABORT; + } +#line 50789 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2507: +#line 15054 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys none; + if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &none, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 50801 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2508: +#line 15060 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) + MYSQL_YYABORT; + } +#line 50812 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2509: +#line 15067 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].ident_sys);} +#line 50820 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2510: +#line 15069 "/home/buildbot/git/sql/sql_yacc.yy" + + { + TABLE_LIST *table= Select->table_list.first; + if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-4].ident_sys).str, + table->db.str))) + my_yyabort_error((ER_WRONG_DB_NAME, MYF(0), (yyvsp[-4].ident_sys).str)); + if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-2].ident_sys).str, + table->table_name.str))) + my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].ident_sys).str)); + (yyval.lex_str)=(yyvsp[0].ident_sys); + } +#line 50837 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2511: +#line 15080 "/home/buildbot/git/sql/sql_yacc.yy" + + { + TABLE_LIST *table= Select->table_list.first; + if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-2].ident_sys).str, + table->alias.str))) + my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].ident_sys).str)); + (yyval.lex_str)=(yyvsp[0].ident_sys); + } +#line 50851 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2512: +#line 15087 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].ident_sys);} +#line 50859 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2513: +#line 15092 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[0].ident_sys)); + if (unlikely((yyval.table) == NULL)) + MYSQL_YYABORT; + } +#line 50871 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2514: +#line 15098 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.table)= new (thd->mem_root) Table_ident(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys), 0); + if (unlikely((yyval.table) == NULL)) + MYSQL_YYABORT; + } +#line 50883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2515: +#line 15104 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* For Delphi */ + (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[0].ident_sys)); + if (unlikely((yyval.table) == NULL)) + MYSQL_YYABORT; + } +#line 50896 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2516: +#line 15114 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[-1].ident_sys)); + if (unlikely((yyval.table) == NULL)) + MYSQL_YYABORT; + } +#line 50908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2517: +#line 15120 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.table)= new (thd->mem_root) Table_ident(thd, &(yyvsp[-3].ident_sys), &(yyvsp[-1].ident_sys), 0); + if (unlikely((yyval.table) == NULL)) + MYSQL_YYABORT; + } +#line 50920 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2518: +#line 15129 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX_CSTRING db={(char*) any_db,3}; + (yyval.table)= new (thd->mem_root) Table_ident(thd, &db, &(yyvsp[0].ident_sys), 0); + if (unlikely((yyval.table) == NULL)) + MYSQL_YYABORT; + } +#line 50933 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2523: +#line 15145 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ident_cli)= (yyvsp[0].kwd); } +#line 50941 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2524: +#line 15150 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(thd->to_ident_sys_alloc(&(yyval.ident_sys), &(yyvsp[0].ident_cli)))) + MYSQL_YYABORT; + } +#line 50952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2525: +#line 15158 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (thd->make_text_string_sys(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) + MYSQL_YYABORT; + } +#line 50963 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2526: +#line 15166 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (thd->make_text_string_connection(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) + MYSQL_YYABORT; + } +#line 50974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2527: +#line 15174 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (thd->make_text_string_filesystem(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) + MYSQL_YYABORT; + } +#line 50985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2529: +#line 15183 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) + MYSQL_YYABORT; + } +#line 50996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2530: +#line 15190 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ident_cli)= (yyvsp[0].ident_cli); } +#line 51004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2531: +#line 15191 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ident_cli)= (yyvsp[0].kwd); } +#line 51012 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2533: +#line 15197 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) + MYSQL_YYABORT; + } +#line 51023 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2534: +#line 15202 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyval.ident_sys).copy_sys(thd, &(yyvsp[0].lex_str)))) + MYSQL_YYABORT; + } +#line 51034 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2536: +#line 15212 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) + MYSQL_YYABORT; + } +#line 51045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2538: +#line 15221 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) + MYSQL_YYABORT; + } +#line 51056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2539: +#line 15228 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].ident_sys);} +#line 51064 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2540: +#line 15229 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].lex_str);} +#line 51072 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2541: +#line 15230 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)=(yyvsp[0].lex_str);} +#line 51080 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2542: +#line 15235 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->calloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + (yyval.lex_user)->user = (yyvsp[0].lex_str); + + if (unlikely(check_string_char_length(&(yyval.lex_user)->user, ER_USERNAME, + username_char_length, + system_charset_info, 0))) + MYSQL_YYABORT; + } +#line 51097 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2543: +#line 15246 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->calloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + (yyval.lex_user)->user = (yyvsp[-2].lex_str); (yyval.lex_user)->host=(yyvsp[0].lex_str); + + if (unlikely(check_string_char_length(&(yyval.lex_user)->user, ER_USERNAME, + username_char_length, + system_charset_info, 0)) || + unlikely(check_host_name(&(yyval.lex_user)->host))) + MYSQL_YYABORT; + if ((yyval.lex_user)->host.str[0]) + { + /* + Convert hostname part of username to lowercase. + It's OK to use in-place lowercase as long as + the character set is utf8. + */ + my_casedn_str(system_charset_info, (char*) (yyval.lex_user)->host.str); + } + else + { + /* + fix historical undocumented convention that empty host is the + same as '%' + */ + (yyval.lex_user)->host= host_not_specified; + } + } +#line 51132 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2544: +#line 15275 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.lex_user)=(LEX_USER*)thd->calloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + (yyval.lex_user)->user= current_user; + (yyval.lex_user)->auth= new (thd->mem_root) USER_AUTH(); + } +#line 51145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 2547: +#line 15286 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if ((yyvsp[0].lex_user)->user.str != current_user.str && (yyvsp[0].lex_user)->host.str == 0) + (yyvsp[0].lex_user)->host= host_not_specified; + (yyval.lex_user)= (yyvsp[0].lex_user); + } +#line 51157 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3261: +#line 16127 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->set_stmt_init(); + } +#line 51168 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3262: +#line 16132 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->check_main_unit_semantics()) + MYSQL_YYABORT; + } +#line 51179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3265: +#line 16142 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_type= OPT_DEFAULT; + if (sp_create_assignment_lex(thd, (yyvsp[0].kwd).pos())) + MYSQL_YYABORT; + } +#line 51191 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3266: +#line 16148 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3267: +#line 16153 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_type= (yyvsp[0].var_type); + } +#line 51212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3269: +#line 16159 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->table_or_sp_used())) + my_yyabort_error((ER_SUBQUERIES_NOT_SUPPORTED, MYF(0), "SET STATEMENT")); + lex->stmt_var_list= lex->var_list; + lex->var_list.empty(); + if (Lex->check_main_unit_semantics()) + MYSQL_YYABORT; + } +#line 51228 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3275: +#line 16186 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[0].kwd).pos())) + MYSQL_YYABORT; + } +#line 51239 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3276: +#line 16191 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51250 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3279: +#line 16206 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->option_type= (yyvsp[0].var_type); + } +#line 51260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3282: +#line 16214 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_GLOBAL; } +#line 51268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3283: +#line 16215 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51276 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3284: +#line 16216 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51284 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3285: +#line 16220 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3286: +#line 16221 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_GLOBAL; } +#line 51300 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3287: +#line 16222 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3288: +#line 16223 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3289: +#line 16227 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_DEFAULT; } +#line 51324 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3290: +#line 16228 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_GLOBAL; } +#line 51332 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3291: +#line 16229 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3292: +#line 16230 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.var_type)=OPT_SESSION; } +#line 51348 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3293: +#line 16239 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push(false)) + MYSQL_YYABORT; + } +#line 51359 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3294: +#line 16244 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-3].ident_cli)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_system_variable(Lex->option_type, &tmp, (yyvsp[0].item)))) + MYSQL_YYABORT; + Lex->pop_select(); //min select + } +#line 51373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3295: +#line 16252 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push(false)) + MYSQL_YYABORT; + } +#line 51384 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3296: +#line 16257 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-5].ident_cli)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_system_variable(thd, Lex->option_type, + &tmp, &(yyvsp[-3].ident_sys), (yyvsp[0].item)))) + MYSQL_YYABORT; + Lex->pop_select(); //min select + } +#line 51399 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3297: +#line 16266 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push(false)) + MYSQL_YYABORT; + } +#line 51410 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3298: +#line 16271 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_default_system_variable(Lex->option_type, + &(yyvsp[-3].ident_sys), (yyvsp[0].item)))) + MYSQL_YYABORT; + Lex->pop_select(); //min select + } +#line 51423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3299: +#line 16283 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].ident_cli).pos())) + MYSQL_YYABORT; + } +#line 51434 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3300: +#line 16288 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-3].ident_cli)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_system_variable(Lex->option_type, &tmp, (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3301: +#line 16296 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-3].ident_cli).pos())) + MYSQL_YYABORT; + } +#line 51459 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3302: +#line 16301 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-5].ident_cli)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_system_variable(thd, Lex->option_type, &tmp, &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3303: +#line 16309 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-3].kwd).pos())) + MYSQL_YYABORT; + } +#line 51484 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3304: +#line 16314 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3305: +#line 16324 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].ident_cli).pos())) + MYSQL_YYABORT; + } +#line 51507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3306: +#line 16329 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-3].ident_cli)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_variable(&tmp, (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51521 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3307: +#line 16337 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-3].ident_cli).pos())) + MYSQL_YYABORT; + } +#line 51532 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3308: +#line 16342 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-5].ident_cli)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_variable(&tmp, &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3309: +#line 16350 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-3].kwd).pos())) + MYSQL_YYABORT; + } +#line 51557 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3310: +#line 16355 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-3].ident_sys), (yyvsp[0].item)))) + MYSQL_YYABORT; + if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51570 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3311: +#line 16362 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-2].lex_str).str)) + MYSQL_YYABORT; + } +#line 51581 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3312: +#line 16367 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_user_variable(thd, &(yyvsp[-3].lex_str), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51593 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3313: +#line 16373 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-4].lex_str).str)) + MYSQL_YYABORT; + } +#line 51604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3314: +#line 16378 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_system_variable((yyvsp[-4].var_type), &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51616 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3315: +#line 16384 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-6].lex_str).str)) + MYSQL_YYABORT; + } +#line 51627 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3316: +#line 16389 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_system_variable(thd, (yyvsp[-6].var_type), &(yyvsp[-5].ident_sys), &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51639 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3317: +#line 16395 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-6].lex_str).str)) + MYSQL_YYABORT; + } +#line 51650 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3318: +#line 16400 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->set_default_system_variable((yyvsp[-6].var_type), &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51662 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3319: +#line 16406 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) + MYSQL_YYABORT; + LEX *lex= thd->lex; + CHARSET_INFO *cs2; + cs2= (yyvsp[0].charset) ? (yyvsp[0].charset): global_system_variables.character_set_client; + set_var_collation_client *var; + var= (new (thd->mem_root) + set_var_collation_client(cs2, + thd->variables.collation_database, + cs2)); + if (unlikely(var == NULL)) + MYSQL_YYABORT; + lex->var_list.push_back(var, thd->mem_root); + if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51686 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3320: +#line 16424 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + sp_pcontext *spc= lex->spcont; + LEX_CSTRING names= { STRING_WITH_LEN("names") }; + if (unlikely(spc && spc->find_variable(&names, false))) + my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str); + else + thd->parse_error(); + MYSQL_YYABORT; + } +#line 51703 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3321: +#line 16435 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-2].kwd).pos())) + MYSQL_YYABORT; + LEX *lex= Lex; + CHARSET_INFO *cs2; + CHARSET_INFO *cs3; + cs2= (yyvsp[-1].charset) ? (yyvsp[-1].charset) : global_system_variables.character_set_client; + cs3= (yyvsp[0].charset) ? (yyvsp[0].charset) : cs2; + if (unlikely(!my_charset_same(cs2, cs3))) + { + my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), + cs3->name, cs2->csname); + MYSQL_YYABORT; + } + set_var_collation_client *var; + var= new (thd->mem_root) set_var_collation_client(cs3, cs3, cs3); + if (unlikely(var == NULL) || + unlikely(lex->var_list.push_back(var, thd->mem_root)) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3322: +#line 16457 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-2].kwd).pos())) + MYSQL_YYABORT; + LEX *lex = Lex; + LEX_USER *user; + if (unlikely(!(user=(LEX_USER *) thd->calloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + user->user= current_user; + set_var_default_role *var= (new (thd->mem_root) + set_var_default_role(user, + (yyvsp[0].lex_user)->user)); + if (unlikely(var == NULL) || + unlikely(lex->var_list.push_back(var, thd->mem_root))) + MYSQL_YYABORT; + + thd->lex->autocommit= TRUE; + if (lex->sphead) + lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; + if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3323: +#line 16479 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-4].kwd).pos())) + MYSQL_YYABORT; + LEX *lex = Lex; + set_var_default_role *var= (new (thd->mem_root) + set_var_default_role((yyvsp[0].lex_user), (yyvsp[-2].lex_user)->user)); + if (unlikely(var == NULL) || + unlikely(lex->var_list.push_back(var, thd->mem_root))) + MYSQL_YYABORT; + thd->lex->autocommit= TRUE; + if (lex->sphead) + lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; + if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3324: +#line 16495 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) + MYSQL_YYABORT; + LEX *lex = Lex; + set_var_role *var= new (thd->mem_root) set_var_role((yyvsp[0].lex_str)); + if (unlikely(var == NULL) || + unlikely(lex->var_list.push_back(var, thd->mem_root)) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51798 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3325: +#line 16506 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) + MYSQL_YYABORT; + } +#line 51809 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3326: +#line 16511 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex_ident_sys tmp(thd, &(yyvsp[-3].kwd)); + if (unlikely(!tmp.str) || + unlikely(Lex->set_variable(&tmp, (yyvsp[0].item))) || + unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51823 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3327: +#line 16519 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) + MYSQL_YYABORT; + } +#line 51834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3328: +#line 16524 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_create_set_password_instr(thd, (yyvsp[0].user_auth), + yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3329: +#line 16530 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) + MYSQL_YYABORT; + } +#line 51857 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3330: +#line 16535 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_create_set_password_instr(thd, (yyvsp[-2].lex_user), (yyvsp[0].user_auth), + yychar == YYEMPTY))) + MYSQL_YYABORT; + } +#line 51869 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3335: +#line 16551 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Item *item= new (thd->mem_root) Item_int(thd, (int32) (yyvsp[0].num)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + set_var *var= (new (thd->mem_root) + set_var(thd, lex->option_type, + find_sys_var(thd, "tx_read_only"), + &null_clex_str, + item)); + if (unlikely(var == NULL)) + MYSQL_YYABORT; + if (unlikely(lex->var_list.push_back(var, thd->mem_root))) + MYSQL_YYABORT; + } +#line 51891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3336: +#line 16570 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + Item *item= new (thd->mem_root) Item_int(thd, (int32) (yyvsp[0].tx_isolation)); + if (unlikely(item == NULL)) + MYSQL_YYABORT; + set_var *var= (new (thd->mem_root) + set_var(thd, lex->option_type, + find_sys_var(thd, "tx_isolation"), + &null_clex_str, + item)); + if (unlikely(var == NULL) || + unlikely(lex->var_list.push_back(var, thd->mem_root))) + MYSQL_YYABORT; + } +#line 51912 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3337: +#line 16587 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= true; } +#line 51920 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3338: +#line 16588 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= false; } +#line 51928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3339: +#line 16592 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; } +#line 51936 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3340: +#line 16593 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.tx_isolation)= ISO_READ_COMMITTED; } +#line 51944 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3341: +#line 16594 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.tx_isolation)= ISO_REPEATABLE_READ; } +#line 51952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3342: +#line 16595 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.tx_isolation)= ISO_SERIALIZABLE; } +#line 51960 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3343: +#line 16601 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.user_auth)= new (thd->mem_root) USER_AUTH(); + (yyval.user_auth)->auth_str= (yyvsp[0].lex_string_with_metadata); + } +#line 51971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3344: +#line 16606 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.user_auth)= new (thd->mem_root) USER_AUTH(); + (yyval.user_auth)->pwtext= (yyvsp[-1].lex_string_with_metadata); + } +#line 51982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3345: +#line 16611 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.user_auth)= new (thd->mem_root) USER_AUTH(); + (yyval.user_auth)->pwtext= (yyvsp[-1].lex_string_with_metadata); + (yyval.user_auth)->auth_str.str= Item_func_password::alloc(thd, + (yyvsp[-1].lex_string_with_metadata).str, (yyvsp[-1].lex_string_with_metadata).length, Item_func_password::OLD); + (yyval.user_auth)->auth_str.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323; + } +#line 51996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3346: +#line 16621 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)=(yyvsp[0].item); } +#line 52004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3347: +#line 16622 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item)=0; } +#line 52012 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3348: +#line 16624 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "ON", 2); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 52024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3349: +#line 16630 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "ALL", 3); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 52036 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3350: +#line 16636 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "binary", 6); + if (unlikely((yyval.item) == NULL)) + MYSQL_YYABORT; + } +#line 52048 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3351: +#line 16647 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "LOCK")); + lex->sql_command= SQLCOM_LOCK_TABLES; + } +#line 52062 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3352: +#line 16655 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 52070 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3353: +#line 16660 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 52078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3354: +#line 16662 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("lock_wait_timeout"), (yyvsp[0].ulong_num))) || + unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("innodb_lock_wait_timeout"), (yyvsp[0].ulong_num)))) + MYSQL_YYABORT; + } +#line 52090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3355: +#line 16668 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("lock_wait_timeout"), 0)) || + unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("innodb_lock_wait_timeout"), 0))) + MYSQL_YYABORT; + } +#line 52102 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3356: +#line 16676 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 52110 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3357: +#line 16677 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 52118 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3360: +#line 16687 "/home/buildbot/git/sql/sql_yacc.yy" + + { + thr_lock_type lock_type= (thr_lock_type) (yyvsp[0].num); + bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE); + ulong table_options= lock_for_write ? TL_OPTION_UPDATING : 0; + enum_mdl_type mdl_type= !lock_for_write + ? MDL_SHARED_READ + : lock_type == TL_WRITE_CONCURRENT_INSERT + ? MDL_SHARED_WRITE + : MDL_SHARED_NO_READ_WRITE; + + if (unlikely(!Lex->current_select_or_default()-> + add_table_to_list(thd, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), table_options, + lock_type, mdl_type))) + MYSQL_YYABORT; + } +#line 52140 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3361: +#line 16705 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= TL_READ_NO_INSERT; } +#line 52148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3362: +#line 16706 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= TL_WRITE_DEFAULT; } +#line 52156 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3363: +#line 16708 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); + } +#line 52166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3364: +#line 16712 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= TL_WRITE_LOW_PRIORITY; } +#line 52174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3365: +#line 16713 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= TL_READ; } +#line 52182 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3366: +#line 16718 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "UNLOCK")); + lex->sql_command= SQLCOM_UNLOCK_TABLES; + } +#line 52196 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3367: +#line 16726 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 52204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3368: +#line 16735 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->main_select_push()) + MYSQL_YYABORT; + } +#line 52215 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3369: +#line 16740 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->pop_select(); //main select + } +#line 52225 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3370: +#line 16747 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER")); + lex->sql_command = SQLCOM_HA_OPEN; + if (!lex->current_select->add_table_to_list(thd, (yyvsp[-2].table), (yyvsp[0].lex_str_ptr), 0)) + MYSQL_YYABORT; + } +#line 52240 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3371: +#line 16756 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER")); + lex->sql_command = SQLCOM_HA_CLOSE; + if (!lex->current_select->add_table_to_list(thd, (yyvsp[-1].table), 0, 0)) + MYSQL_YYABORT; + } +#line 52255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3372: +#line 16765 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HANDLER")); + lex->clause_that_disallows_subselect= "HANDLER..READ"; + lex->sql_command = SQLCOM_HA_READ; + lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */ + Item *one= new (thd->mem_root) Item_int(thd, (int32) 1); + if (unlikely(one == NULL)) + MYSQL_YYABORT; + lex->current_select->select_limit= one; + lex->current_select->offset_limit= 0; + lex->limit_rows_examined= 0; + if (!lex->current_select->add_table_to_list(thd, (yyvsp[-1].table), 0, 0)) + MYSQL_YYABORT; + } +#line 52278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3373: +#line 16782 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->clause_that_disallows_subselect= NULL; + if (!lex->current_select->explicit_limit) + { + Item *one= new (thd->mem_root) Item_int(thd, (int32) 1); + if (one == NULL) + MYSQL_YYABORT; + lex->current_select->select_limit= one; + lex->current_select->offset_limit= 0; + lex->limit_rows_examined= 0; + } + /* Stored functions are not supported for HANDLER READ. */ + if (lex->uses_stored_routines()) + { + my_error(ER_NOT_SUPPORTED_YET, MYF(0), + "stored functions in HANDLER ... READ"); + MYSQL_YYABORT; + } + } +#line 52305 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3374: +#line 16805 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ident= null_clex_str; } +#line 52313 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3375: +#line 16806 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ident= (yyvsp[-1].ident_sys); } +#line 52321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3376: +#line 16810 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ha_read_mode = RFIRST; } +#line 52329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3377: +#line 16811 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ha_read_mode = RNEXT; } +#line 52337 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3378: +#line 16815 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ha_read_mode = RFIRST; } +#line 52345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3379: +#line 16816 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ha_read_mode = RNEXT; } +#line 52353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3380: +#line 16817 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ha_read_mode = RPREV; } +#line 52361 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3381: +#line 16818 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->ha_read_mode = RLAST; } +#line 52369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3382: +#line 16820 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->ha_read_mode = RKEY; + lex->ha_rkey_mode=(yyvsp[0].ha_rkey_mode); + if (unlikely(!(lex->insert_list= new (thd->mem_root) List_item))) + MYSQL_YYABORT; + } +#line 52383 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3383: +#line 16828 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 52391 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3384: +#line 16832 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } +#line 52399 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3385: +#line 16833 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } +#line 52407 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3386: +#line 16834 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } +#line 52415 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3387: +#line 16835 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } +#line 52423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3388: +#line 16836 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } +#line 52431 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3389: +#line 16843 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 52439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3390: +#line 16848 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_revoke_table(thd, (yyvsp[-5].lex_grant), *(yyvsp[-2].lex_grant_ident))) + MYSQL_YYABORT; + } +#line 52450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3391: +#line 16853 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_revoke_sp(thd, (yyvsp[-5].lex_grant), *(yyvsp[-2].lex_grant_ident), *(yyvsp[-3].sp_handler))) + MYSQL_YYABORT; + } +#line 52461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3392: +#line 16858 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_REVOKE_ALL; + } +#line 52471 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3393: +#line 16862 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_revoke_proxy(thd, (yyvsp[-2].lex_user))) + MYSQL_YYABORT; + } +#line 52482 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3394: +#line 16867 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_REVOKE_ROLE; + if (unlikely(Lex->users_list.push_front((yyvsp[-2].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 52494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3395: +#line 16876 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->with_admin_option= true; (yyval.lex_user)= (yyvsp[0].lex_user); } +#line 52502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3396: +#line 16878 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->with_admin_option= false; (yyval.lex_user)= (yyvsp[0].lex_user); } +#line 52510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3397: +#line 16883 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 52518 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3398: +#line 16889 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_grant_table(thd, (yyvsp[-7].lex_grant), *(yyvsp[-4].lex_grant_ident), (yyvsp[0].privilege))) + MYSQL_YYABORT; + } +#line 52529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3399: +#line 16895 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_grant_sp(thd, (yyvsp[-7].lex_grant), *(yyvsp[-4].lex_grant_ident), *(yyvsp[-5].sp_handler), (yyvsp[0].privilege))) + MYSQL_YYABORT; + } +#line 52540 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3400: +#line 16900 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_grant_proxy(thd, (yyvsp[-3].lex_user), (yyvsp[0].privilege))) + MYSQL_YYABORT; + } +#line 52551 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3401: +#line 16905 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_GRANT_ROLE; + /* The first role is the one that is granted */ + if (unlikely(Lex->users_list.push_front((yyvsp[-3].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 52565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3402: +#line 16916 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->definer = 0; } +#line 52573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3403: +#line 16917 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->definer = (yyvsp[0].lex_user); } +#line 52581 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3404: +#line 16921 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->with_admin_option= false; } +#line 52589 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3405: +#line 16922 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->with_admin_option= true; } +#line 52597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3406: +#line 16927 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 52608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3407: +#line 16932 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 52619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3408: +#line 16940 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->calloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + (yyval.lex_user)->user= current_role; + (yyval.lex_user)->auth= NULL; + } +#line 52632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3409: +#line 16950 "/home/buildbot/git/sql/sql_yacc.yy" + + { + CHARSET_INFO *cs= system_charset_info; + /* trim end spaces (as they'll be lost in mysql.user anyway) */ + (yyvsp[0].lex_str).length= cs->lengthsp((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); + ((char*) (yyvsp[0].lex_str).str)[(yyvsp[0].lex_str).length] = '\0'; + if (unlikely((yyvsp[0].lex_str).length == 0)) + my_yyabort_error((ER_INVALID_ROLE, MYF(0), "")); + if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))) + MYSQL_YYABORT; + (yyval.lex_user)->user= (yyvsp[0].lex_str); + (yyval.lex_user)->host= empty_clex_str; + (yyval.lex_user)->auth= NULL; + + if (unlikely(check_string_char_length(&(yyval.lex_user)->user, ER_USERNAME, + username_char_length, + cs, 0))) + MYSQL_YYABORT; + } +#line 52657 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3414: +#line 16979 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.lex_grant)= new (thd->mem_root) Lex_grant_privilege(GLOBAL_ACLS, true))) + MYSQL_YYABORT; + } +#line 52668 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3417: +#line 16992 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.lex_grant)= new (thd->mem_root) Lex_grant_privilege((yyvsp[0].privilege)))) + MYSQL_YYABORT; + } +#line 52679 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3418: +#line 16997 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.lex_grant)= new (thd->mem_root) Lex_grant_privilege()) || + (yyval.lex_grant)->add_column_list_privilege(thd, (yyvsp[0].column_list_privilege).m_columns[0], + (yyvsp[0].column_list_privilege).m_privilege)) + MYSQL_YYABORT; + } +#line 52692 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3419: +#line 17004 "/home/buildbot/git/sql/sql_yacc.yy" + + { + ((yyval.lex_grant)= (yyvsp[-2].lex_grant))->add_object_privilege((yyvsp[0].privilege)); + } +#line 52702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3420: +#line 17008 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (((yyval.lex_grant)= (yyvsp[-2].lex_grant))->add_column_list_privilege(thd, (yyvsp[0].column_list_privilege).m_columns[0], + (yyvsp[0].column_list_privilege).m_privilege)) + MYSQL_YYABORT; + } +#line 52714 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3421: +#line 17017 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.column_list_privilege)= Lex_column_list_privilege((yyvsp[-1].ident_sys_list), (yyvsp[-3].privilege)); + } +#line 52724 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3422: +#line 17023 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SELECT_ACL; } +#line 52732 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3423: +#line 17024 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= INSERT_ACL; } +#line 52740 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3424: +#line 17025 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= UPDATE_ACL; } +#line 52748 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3425: +#line 17026 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= REFERENCES_ACL; } +#line 52756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3426: +#line 17030 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SELECT_ACL; } +#line 52764 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3427: +#line 17031 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= INSERT_ACL; } +#line 52772 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3428: +#line 17032 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= UPDATE_ACL; } +#line 52780 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3429: +#line 17033 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= REFERENCES_ACL; } +#line 52788 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3430: +#line 17034 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= DELETE_ACL;} +#line 52796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3431: +#line 17035 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= NO_ACL; } +#line 52804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3432: +#line 17036 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= INDEX_ACL;} +#line 52812 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3433: +#line 17037 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= ALTER_ACL;} +#line 52820 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3434: +#line 17038 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CREATE_ACL;} +#line 52828 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3435: +#line 17039 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= DROP_ACL;} +#line 52836 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3436: +#line 17040 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= EXECUTE_ACL;} +#line 52844 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3437: +#line 17041 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= RELOAD_ACL;} +#line 52852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3438: +#line 17042 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SHUTDOWN_ACL;} +#line 52860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3439: +#line 17043 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= PROCESS_ACL;} +#line 52868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3440: +#line 17044 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= FILE_ACL;} +#line 52876 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3441: +#line 17045 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= GRANT_ACL;} +#line 52884 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3442: +#line 17046 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SHOW_DB_ACL;} +#line 52892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3443: +#line 17047 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SUPER_ACL;} +#line 52900 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3444: +#line 17048 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CREATE_TMP_ACL;} +#line 52908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3445: +#line 17049 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= LOCK_TABLES_ACL; } +#line 52916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3446: +#line 17050 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= REPL_SLAVE_ACL; } +#line 52924 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3447: +#line 17051 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= BINLOG_MONITOR_ACL; /*Compatibility*/ } +#line 52932 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3448: +#line 17052 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CREATE_VIEW_ACL; } +#line 52940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3449: +#line 17053 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SHOW_VIEW_ACL; } +#line 52948 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3450: +#line 17054 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CREATE_PROC_ACL; } +#line 52956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3451: +#line 17055 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= ALTER_PROC_ACL; } +#line 52964 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3452: +#line 17056 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CREATE_USER_ACL; } +#line 52972 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3453: +#line 17057 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= EVENT_ACL;} +#line 52980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3454: +#line 17058 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= TRIGGER_ACL; } +#line 52988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3455: +#line 17059 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CREATE_TABLESPACE_ACL; } +#line 52996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3456: +#line 17060 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= DELETE_HISTORY_ACL; } +#line 53004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3457: +#line 17061 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SET_USER_ACL; } +#line 53012 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3458: +#line 17062 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= FEDERATED_ADMIN_ACL; } +#line 53020 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3459: +#line 17063 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= CONNECTION_ADMIN_ACL; } +#line 53028 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3460: +#line 17064 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= READ_ONLY_ADMIN_ACL; } +#line 53036 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3461: +#line 17065 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= READ_ONLY_ADMIN_ACL; } +#line 53044 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3462: +#line 17066 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= BINLOG_MONITOR_ACL; } +#line 53052 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3463: +#line 17067 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= BINLOG_ADMIN_ACL; } +#line 53060 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3464: +#line 17068 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= BINLOG_REPLAY_ACL; } +#line 53068 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3465: +#line 17069 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= REPL_MASTER_ADMIN_ACL; } +#line 53076 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3466: +#line 17070 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= REPL_SLAVE_ADMIN_ACL; } +#line 53084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3467: +#line 17071 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= SLAVE_MONITOR_ACL; } +#line 53092 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3468: +#line 17075 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53100 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3469: +#line 17076 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3472: +#line 17086 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (lex->account_options.x509_subject.str) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "SUBJECT")); + lex->account_options.x509_subject= (yyvsp[0].lex_string_with_metadata); + } +#line 53121 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3473: +#line 17093 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (lex->account_options.x509_issuer.str) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "ISSUER")); + lex->account_options.x509_issuer= (yyvsp[0].lex_string_with_metadata); + } +#line 53134 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3474: +#line 17100 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + if (lex->account_options.ssl_cipher.str) + my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CIPHER")); + lex->account_options.ssl_cipher= (yyvsp[0].lex_string_with_metadata); + } +#line 53147 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3475: +#line 17110 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX_CSTRING db; + if (unlikely(Lex->copy_db_to(&db))) + MYSQL_YYABORT; + if (!((yyval.lex_grant_ident)= new (thd->mem_root) Lex_grant_object_name(db, + Lex_grant_object_name::STAR))) + MYSQL_YYABORT; + } +#line 53162 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3476: +#line 17119 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.lex_grant_ident)= new (thd->mem_root) Lex_grant_object_name((yyvsp[-2].ident_sys), + Lex_grant_object_name::IDENT_STAR))) + MYSQL_YYABORT; + } +#line 53174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3477: +#line 17125 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.lex_grant_ident)= new (thd->mem_root) Lex_grant_object_name( + null_clex_str, + Lex_grant_object_name::STAR_STAR))) + MYSQL_YYABORT; + } +#line 53187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3478: +#line 17132 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.lex_grant_ident)= new (thd->mem_root) Lex_grant_object_name((yyvsp[0].table)))) + MYSQL_YYABORT; + } +#line 53198 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3479: +#line 17140 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 53209 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3480: +#line 17145 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 53220 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3481: +#line 17153 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 53231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3482: +#line 17158 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 53242 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3483: +#line 17166 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 53253 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3484: +#line 17171 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) + MYSQL_YYABORT; + } +#line 53264 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3489: +#line 17182 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_user)= (yyvsp[-3].lex_user); + (yyvsp[-3].lex_user)->auth= new (thd->mem_root) USER_AUTH(); + (yyvsp[-3].lex_user)->auth->pwtext= (yyvsp[0].lex_string_with_metadata); + } +#line 53276 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3490: +#line 17188 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_user)= (yyvsp[-4].lex_user); + (yyvsp[-4].lex_user)->auth= new (thd->mem_root) USER_AUTH(); + (yyvsp[-4].lex_user)->auth->auth_str= (yyvsp[0].lex_string_with_metadata); + } +#line 53288 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3491: +#line 17194 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_user)= (yyvsp[-3].lex_user); + (yyvsp[-3].lex_user)->auth= (yyvsp[0].user_auth); + } +#line 53299 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3492: +#line 17199 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.lex_user)= (yyvsp[0].lex_user); + } +#line 53309 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3493: +#line 17206 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.user_auth)= (yyvsp[-2].user_auth); + DBUG_ASSERT((yyval.user_auth)->next == NULL); + (yyval.user_auth)->next= (yyvsp[0].user_auth); + } +#line 53321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3494: +#line 17212 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.user_auth)= (yyvsp[0].user_auth); + } +#line 53331 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3495: +#line 17219 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.user_auth)= (yyvsp[0].user_auth); + (yyval.user_auth)->plugin= (yyvsp[-1].lex_str); + } +#line 53342 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3496: +#line 17227 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.user_auth)=(USER_AUTH*) thd->calloc(sizeof(USER_AUTH)))) + MYSQL_YYABORT; + } +#line 53353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3497: +#line 17232 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.user_auth)=(USER_AUTH*) thd->calloc(sizeof(USER_AUTH)))) + MYSQL_YYABORT; + (yyval.user_auth)->auth_str= (yyvsp[0].lex_str); + } +#line 53365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3498: +#line 17238 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.user_auth)=(USER_AUTH*) thd->calloc(sizeof(USER_AUTH)))) + MYSQL_YYABORT; + (yyval.user_auth)->pwtext= (yyvsp[-1].lex_string_with_metadata); + } +#line 53377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3500: +#line 17248 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.ssl_type= SSL_TYPE_SPECIFIED; + } +#line 53387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3501: +#line 17252 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.ssl_type= SSL_TYPE_ANY; + } +#line 53397 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3502: +#line 17256 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.ssl_type= SSL_TYPE_X509; + } +#line 53407 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3503: +#line 17260 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.ssl_type= SSL_TYPE_NONE; + } +#line 53417 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3504: +#line 17267 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.questions=(yyvsp[0].ulong_num); + Lex->account_options.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR; + } +#line 53428 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3505: +#line 17272 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.updates=(yyvsp[0].ulong_num); + Lex->account_options.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR; + } +#line 53439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3506: +#line 17277 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.conn_per_hour= (yyvsp[0].ulong_num); + Lex->account_options.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR; + } +#line 53450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3507: +#line 17282 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.user_conn= (yyvsp[0].num); + Lex->account_options.specified_limits|= USER_RESOURCES::USER_CONNECTIONS; + } +#line 53461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3508: +#line 17287 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->account_options.max_statement_time= (yyvsp[0].item_num)->val_real(); + Lex->account_options.specified_limits|= USER_RESOURCES::MAX_STATEMENT_TIME; + } +#line 53472 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3509: +#line 17294 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53480 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3510: +#line 17295 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3511: +#line 17299 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3513: +#line 17305 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= NO_ACL; } +#line 53504 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3514: +#line 17306 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= (yyvsp[0].privilege); } +#line 53512 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3515: +#line 17310 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= NO_ACL; } +#line 53520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3516: +#line 17311 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= GRANT_ACL; } +#line 53528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3517: +#line 17315 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= (yyvsp[-1].privilege) | (yyvsp[0].privilege); } +#line 53536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3519: +#line 17320 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= GRANT_ACL;} +#line 53544 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3520: +#line 17321 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.privilege)= NO_ACL; } +#line 53552 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3521: +#line 17326 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command = SQLCOM_BEGIN; + lex->start_transaction_opt= 0; + } +#line 53564 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3522: +#line 17331 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53572 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3523: +#line 17336 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command= SQLCOM_COMPOUND; + if (Lex->sp_body_finalize_procedure(thd)) + MYSQL_YYABORT; + } +#line 53584 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3524: +#line 17344 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 0; } +#line 53592 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3525: +#line 17345 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= 1; } +#line 53600 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3526: +#line 17349 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3527: +#line 17350 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53616 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3528: +#line 17355 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } +#line 53624 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3529: +#line 17356 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_yes_no_unk)= TVL_NO; } +#line 53632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3530: +#line 17357 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_yes_no_unk)= TVL_YES; } +#line 53640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3531: +#line 17362 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } +#line 53648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3532: +#line 17363 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_yes_no_unk)= TVL_YES; } +#line 53656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3533: +#line 17364 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.m_yes_no_unk)= TVL_NO; } +#line 53664 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3534: +#line 17369 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_COMMIT; + /* Don't allow AND CHAIN RELEASE. */ + MYSQL_YYABORT_UNLESS((yyvsp[-1].m_yes_no_unk) != TVL_YES || (yyvsp[0].m_yes_no_unk) != TVL_YES); + lex->tx_chain= (yyvsp[-1].m_yes_no_unk); + lex->tx_release= (yyvsp[0].m_yes_no_unk); + } +#line 53679 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3535: +#line 17381 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_ROLLBACK; + /* Don't allow AND CHAIN RELEASE. */ + MYSQL_YYABORT_UNLESS((yyvsp[-1].m_yes_no_unk) != TVL_YES || (yyvsp[0].m_yes_no_unk) != TVL_YES); + lex->tx_chain= (yyvsp[-1].m_yes_no_unk); + lex->tx_release= (yyvsp[0].m_yes_no_unk); + } +#line 53694 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3536: +#line 17390 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; + lex->ident= (yyvsp[0].ident_sys); + } +#line 53706 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3537: +#line 17396 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; + lex->ident= (yyvsp[0].ident_sys); + } +#line 53718 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3538: +#line 17405 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SAVEPOINT; + lex->ident= (yyvsp[0].ident_sys); + } +#line 53730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3539: +#line 17414 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; + lex->ident= (yyvsp[0].ident_sys); + } +#line 53742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3540: +#line 17427 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.unit_operation).unit_type= UNION_TYPE; (yyval.unit_operation).distinct= (yyvsp[0].num); } +#line 53750 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3541: +#line 17429 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.unit_operation).unit_type= INTERSECT_TYPE; (yyval.unit_operation).distinct= (yyvsp[0].num); } +#line 53758 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3542: +#line 17431 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.unit_operation).unit_type= EXCEPT_TYPE; (yyval.unit_operation).distinct= (yyvsp[0].num); } +#line 53766 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3543: +#line 17438 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)=1; } +#line 53774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3544: +#line 17439 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)=1; } +#line 53782 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3545: +#line 17440 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)=0; } +#line 53790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3546: +#line 17444 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= SELECT_STRAIGHT_JOIN; } +#line 53798 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3547: +#line 17446 "/home/buildbot/git/sql/sql_yacc.yy" + + { + YYPS->m_lock_type= TL_READ_HIGH_PRIORITY; + YYPS->m_mdl_type= MDL_SHARED_READ; + Select->options|= SELECT_HIGH_PRIORITY; + } +#line 53810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3548: +#line 17451 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= SELECT_DISTINCT; } +#line 53818 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3549: +#line 17452 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= SELECT_DISTINCT; } +#line 53826 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3550: +#line 17453 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= SELECT_SMALL_RESULT; } +#line 53834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3551: +#line 17454 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= SELECT_BIG_RESULT; } +#line 53842 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3552: +#line 17455 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= OPTION_BUFFER_RESULT; } +#line 53850 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3553: +#line 17456 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= OPTION_FOUND_ROWS; } +#line 53858 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3554: +#line 17457 "/home/buildbot/git/sql/sql_yacc.yy" + + { Select->options|= SELECT_ALL; } +#line 53866 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3557: +#line 17473 "/home/buildbot/git/sql/sql_yacc.yy" + + { + /* + We have to distinguish missing DEFINER-clause from case when + CURRENT_USER specified as definer explicitly in order to properly + handle CREATE TRIGGER statements which come to replication thread + from older master servers (i.e. to create non-suid trigger in this + case). + */ + thd->lex->definer= 0; + } +#line 53883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3558: +#line 17487 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->definer= (yyvsp[0].lex_user); + Lex->account_options.reset(); + } +#line 53894 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3559: +#line 17500 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= DTYPE_ALGORITHM_UNDEFINED; } +#line 53902 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3560: +#line 17501 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= VIEW_ALGORITHM_MERGE; } +#line 53910 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3561: +#line 17502 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= VIEW_ALGORITHM_TMPTABLE; } +#line 53918 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3562: +#line 17506 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.view_suid)= VIEW_SUID_DEFAULT; } +#line 53926 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3563: +#line 17507 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.view_suid)= (yyvsp[0].view_suid); } +#line 53934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3564: +#line 17511 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.view_suid)= VIEW_SUID_DEFINER; } +#line 53942 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3565: +#line 17512 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.view_suid)= VIEW_SUID_INVOKER; } +#line 53950 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3566: +#line 17517 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 53958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3567: +#line 17518 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 53966 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3568: +#line 17523 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->view_list.push_back((LEX_CSTRING*) + thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)), + thd->mem_root); + } +#line 53978 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3569: +#line 17529 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->view_list.push_back((LEX_CSTRING*) + thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)), + thd->mem_root); + } +#line 53990 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3570: +#line 17537 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->parsing_options.allows_variable= FALSE; + lex->create_view->select.str= (char *) YYLIP->get_cpp_ptr(); + } +#line 54002 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3571: +#line 17544 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->parsed_create_view((yyvsp[-1].select_lex_unit), (yyvsp[0].num))) + MYSQL_YYABORT; + } +#line 54013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3572: +#line 17551 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= VIEW_CHECK_NONE; } +#line 54021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3573: +#line 17552 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= VIEW_CHECK_CASCADED; } +#line 54029 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3574: +#line 17553 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= VIEW_CHECK_CASCADED; } +#line 54037 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3575: +#line 17554 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= VIEW_CHECK_LOCAL; } +#line 54045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3576: +#line 17565 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trigger_action_order_type)= TRG_ORDER_FOLLOWS; } +#line 54053 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3577: +#line 17567 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.trigger_action_order_type)= TRG_ORDER_PRECEDES; } +#line 54061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3578: +#line 17572 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.trg_execution_order).ordering_clause= TRG_ORDER_NONE; + (yyval.trg_execution_order).anchor_trigger_name.str= NULL; + (yyval.trg_execution_order).anchor_trigger_name.length= 0; + } +#line 54073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3579: +#line 17579 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.trg_execution_order).ordering_clause= (yyvsp[-1].trigger_action_order_type); + (yyval.trg_execution_order).anchor_trigger_name= (yyvsp[0].lex_str); + } +#line 54084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3580: +#line 17588 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->add_create_options_with_check((yyvsp[0].object_ddl_options)))) + MYSQL_YYABORT; + } +#line 54095 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3581: +#line 17597 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* $9 */ + Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start(); + } +#line 54105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3582: +#line 17603 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* $13 */ + Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start(); + } +#line 54115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3583: +#line 17608 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->trg_chistics.ordering_clause_begin= YYLIP->get_cpp_ptr(); + } +#line 54125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3584: +#line 17612 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* $18 */ + LEX *lex= thd->lex; + Lex_input_stream *lip= YYLIP; + + if (unlikely(lex->sphead)) + my_yyabort_error((ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER")); + + lex->stmt_definition_begin= (yyvsp[-16].simple_string); + lex->ident.str= (yyvsp[-9].simple_string); + lex->ident.length= (yyvsp[-5].simple_string) - (yyvsp[-9].simple_string); + lex->spname= (yyvsp[-13].spname); + (*static_cast<st_trg_execution_order*>(&lex->trg_chistics))= ((yyvsp[0].trg_execution_order)); + lex->trg_chistics.ordering_clause_end= lip->get_cpp_ptr(); + + if (unlikely(!lex->make_sp_head(thd, (yyvsp[-13].spname), &sp_handler_trigger, + DEFAULT_AGGREGATE))) + MYSQL_YYABORT; + + lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); + } +#line 54152 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3585: +#line 17633 "/home/buildbot/git/sql/sql_yacc.yy" + + { /* $20 */ + LEX *lex= Lex; + + lex->sql_command= SQLCOM_CREATE_TRIGGER; + if (lex->sp_body_finalize_trigger(thd)) + MYSQL_YYABORT; + + /* + We have to do it after parsing trigger body, because some of + sp_proc_stmt alternatives are not saving/restoring LEX, so + lex->query_tables can be wiped out. + */ + if (!lex->first_select_lex()-> + add_table_to_list(thd, (yyvsp[-9].table), (LEX_CSTRING*) 0, + TL_OPTION_UPDATING, TL_READ_NO_INSERT, + MDL_SHARED_NO_WRITE)) + MYSQL_YYABORT; + } +#line 54177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3586: +#line 17661 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= Lex; + lex->init_last_field(&lex->sphead->m_return_field_def, + &empty_clex_str, + thd->variables.collation_database); + } +#line 54190 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3587: +#line 17668 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sf_return_fill_definition((yyvsp[0].Lex_field_type)))) + MYSQL_YYABORT; + } +#line 54201 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3588: +#line 17679 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_XA_START; + } +#line 54211 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3589: +#line 17683 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_XA_END; + } +#line 54221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3590: +#line 17687 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_XA_PREPARE; + } +#line 54231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3591: +#line 17691 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_XA_COMMIT; + } +#line 54241 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3592: +#line 17695 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_XA_ROLLBACK; + } +#line 54251 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3593: +#line 17699 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sql_command = SQLCOM_XA_RECOVER; + Lex->verbose= (yyvsp[0].num); + } +#line 54262 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3594: +#line 17706 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.num)= false; } +#line 54270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3595: +#line 17708 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("SQL"))) + (yyval.num)= true; + else if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("RAW"))) + (yyval.num)= false; + else + { + my_yyabort_error((ER_UNKNOWN_EXPLAIN_FORMAT, MYF(0), + "XA RECOVER", (yyvsp[0].lex_str).str)); + (yyval.num)= false; + } + } +#line 54289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3596: +#line 17724 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE); + if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) + MYSQL_YYABORT; + Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0); + } +#line 54302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3597: +#line 17731 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE); + if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) + MYSQL_YYABORT; + Lex->xid->set(1L, (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length(), (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length()); + } +#line 54315 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3598: +#line 17738 "/home/buildbot/git/sql/sql_yacc.yy" + + { + MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && + (yyvsp[-2].string)->length() <= MAXBQUALSIZE && + (yyvsp[0].ulong_num) <= static_cast<ulong>( + std::numeric_limits<int32_t>::max())); + if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) + MYSQL_YYABORT; + Lex->xid->set((yyvsp[0].ulong_num), (yyvsp[-4].string)->ptr(), (yyvsp[-4].string)->length(), (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length()); + } +#line 54331 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3599: +#line 17750 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 54339 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3600: +#line 17751 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 54347 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3601: +#line 17752 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 54355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3602: +#line 17756 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_NONE; } +#line 54363 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3603: +#line 17757 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_JOIN; } +#line 54371 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3604: +#line 17758 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_RESUME; } +#line 54379 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3605: +#line 17762 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_NONE; } +#line 54387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3606: +#line 17763 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_ONE_PHASE; } +#line 54395 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3607: +#line 17768 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_NONE; } +#line 54403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3608: +#line 17770 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_SUSPEND; } +#line 54411 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3610: +#line 17775 "/home/buildbot/git/sql/sql_yacc.yy" + + {} +#line 54419 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3611: +#line 17776 "/home/buildbot/git/sql/sql_yacc.yy" + + { Lex->xa_opt=XA_FOR_MIGRATE; } +#line 54427 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3612: +#line 17781 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_install_plugin((yyvsp[-3].object_ddl_options), (yyvsp[-2].ident_sys), (yyvsp[0].lex_str))) + MYSQL_YYABORT; + } +#line 54438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3613: +#line 17786 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->stmt_install_plugin((yyvsp[0].lex_str)); + } +#line 54448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3614: +#line 17793 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_uninstall_plugin_by_name((yyvsp[-1].object_ddl_options), (yyvsp[0].ident_sys))) + MYSQL_YYABORT; + } +#line 54459 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3615: +#line 17798 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_uninstall_plugin_by_soname((yyvsp[-1].object_ddl_options), (yyvsp[0].lex_str))) + MYSQL_YYABORT; + } +#line 54470 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3616: +#line 17807 "/home/buildbot/git/sql/sql_yacc.yy" + + { + YYERROR; + } +#line 54480 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3648: +#line 17888 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (!((yyval.spvar_definition)= Lex->row_field_name(thd, (yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 54491 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3649: +#line 17896 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely((yyvsp[-1].expr_lex)->sp_while_loop_expression(thd))) + MYSQL_YYABORT; + } +#line 54502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3650: +#line 17901 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_while_loop_finalize(thd))) + MYSQL_YYABORT; + } +#line 54513 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3651: +#line 17909 "/home/buildbot/git/sql/sql_yacc.yy" + + { } +#line 54521 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3652: +#line 17913 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.lex_str)= (yyvsp[-1].ident_sys); } +#line 54529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3654: +#line 17922 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->spcont->block_label_declare(&(yyvsp[0].lex_str)))) + MYSQL_YYABORT; + (yyval.lex_str)= (yyvsp[0].lex_str); + } +#line 54541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3655: +#line 17930 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item) = NULL; } +#line 54549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3656: +#line 17931 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.item) = (yyvsp[0].item); } +#line 54557 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3657: +#line 17935 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyvsp[0].spvar)->mode=(yyvsp[-1].spvar_mode); } +#line 54565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3658: +#line 17936 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyvsp[0].spvar)->mode= sp_variable::MODE_IN; } +#line 54573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3659: +#line 17943 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_variable_declarations_with_ref_finalize(thd, (yyvsp[-4].num), (yyvsp[-1].qualified_column_ident), (yyvsp[0].item)))) + MYSQL_YYABORT; + (yyval.spblock).init_using_vars((yyvsp[-4].num)); + } +#line 54585 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3660: +#line 17951 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_variable_declarations_rowtype_finalize(thd, (yyvsp[-5].num), (yyvsp[-1].qualified_column_ident), (yyvsp[0].item)))) + MYSQL_YYABORT; + (yyval.spblock).init_using_vars((yyvsp[-5].num)); + } +#line 54597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3661: +#line 17960 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead->spvar_fill_type_reference(thd, + (yyval.spvar)= (yyvsp[-5].spvar), (yyvsp[-2].ident_sys), + (yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 54610 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3662: +#line 17967 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead->spvar_fill_type_reference(thd, (yyval.spvar)= (yyvsp[-7].spvar), + (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys), (yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 54622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3663: +#line 17973 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyval.spvar)= (yyvsp[-4].spvar), (yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 54633 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3664: +#line 17978 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyval.spvar)= (yyvsp[-6].spvar), (yyvsp[-2].ident_sys), (yyvsp[0].ident_sys)))) + MYSQL_YYABORT; + } +#line 54644 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3665: +#line 17987 "/home/buildbot/git/sql/sql_yacc.yy" + + { + LEX *lex= thd->lex; + lex->sphead->set_c_chistics(lex->sp_chistics); + lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); + } +#line 54656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3666: +#line 17993 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_body_finalize_function(thd))) + MYSQL_YYABORT; + } +#line 54667 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3667: +#line 18001 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(!Lex->make_sp_head_no_recursive(thd, (yyvsp[0].spname), + &sp_handler_procedure, + DEFAULT_AGGREGATE))) + MYSQL_YYABORT; + } +#line 54680 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3668: +#line 18009 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sphead->set_c_chistics(Lex->sp_chistics); + Lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); + } +#line 54691 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3669: +#line 18014 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_body_finalize_procedure(thd))) + MYSQL_YYABORT; + } +#line 54702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3670: +#line 18022 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_drop_function((yyvsp[-3].object_ddl_options), (yyvsp[-2].ident_sys), (yyvsp[0].ident_sys))) + MYSQL_YYABORT; + } +#line 54713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3671: +#line 18027 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_drop_function((yyvsp[-1].object_ddl_options), (yyvsp[0].ident_sys))) + MYSQL_YYABORT; + } +#line 54724 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3672: +#line 18032 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_drop_procedure((yyvsp[-1].object_ddl_options), (yyvsp[0].spname))) + MYSQL_YYABORT; + } +#line 54735 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3673: +#line 18041 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_create_procedure_start((yyvsp[-3].object_ddl_options) | (yyvsp[0].object_ddl_options))) + MYSQL_YYABORT; + } +#line 54746 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3674: +#line 18046 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->stmt_create_routine_finalize(); + } +#line 54756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3675: +#line 18051 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_create_stored_function_start((yyvsp[-5].object_ddl_options) | (yyvsp[-1].object_ddl_options), (yyvsp[-3].sp_aggregate_type), (yyvsp[0].spname))) + MYSQL_YYABORT; + } +#line 54767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3676: +#line 18058 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->stmt_create_routine_finalize(); + } +#line 54777 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3677: +#line 18063 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_create_stored_function_start((yyvsp[-5].object_ddl_options) | (yyvsp[-1].object_ddl_options), (yyvsp[-3].sp_aggregate_type), (yyvsp[0].spname))) + MYSQL_YYABORT; + } +#line 54788 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3678: +#line 18070 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->stmt_create_routine_finalize(); + } +#line 54798 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3679: +#line 18075 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (Lex->stmt_create_udf_function((yyvsp[-9].object_ddl_options) | (yyvsp[-5].object_ddl_options), (yyvsp[-7].sp_aggregate_type), (yyvsp[-4].ident_sys), + (Item_result) (yyvsp[-2].num), (yyvsp[0].lex_str))) + MYSQL_YYABORT; + } +#line 54810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3680: +#line 18085 "/home/buildbot/git/sql/sql_yacc.yy" + + { + (yyval.spblock).init(); + } +#line 54820 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3681: +#line 18089 "/home/buildbot/git/sql/sql_yacc.yy" + + { + // We check for declarations out of (standard) order this way + // because letting the grammar rules reflect it caused tricky + // shift/reduce conflicts with the wrong result. (And we get + // better error handling this way.) + if (unlikely(Lex->sp_declarations_join(&(yyval.spblock), (yyvsp[-2].spblock), (yyvsp[-1].spblock)))) + MYSQL_YYABORT; + } +#line 54835 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3682: +#line 18100 "/home/buildbot/git/sql/sql_yacc.yy" + + { (yyval.spblock)= (yyvsp[0].spblock); } +#line 54843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3684: +#line 18107 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->spcont->declare_condition(thd, &(yyvsp[-3].ident_sys), (yyvsp[0].spcondvalue)))) + MYSQL_YYABORT; + (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; + (yyval.spblock).conds= 1; + } +#line 54856 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3686: +#line 18115 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_block_init(thd); + } +#line 54866 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3687: +#line 18120 "/home/buildbot/git/sql/sql_yacc.yy" + + { + sp_pcontext *param_ctx= Lex->spcont; + if (unlikely(Lex->sp_block_finalize(thd))) + MYSQL_YYABORT; + if (unlikely(Lex->sp_declare_cursor(thd, &(yyvsp[-5].ident_sys), (yyvsp[0].sp_cursor_stmt), param_ctx, true))) + MYSQL_YYABORT; + (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0; + (yyval.spblock).curs= 1; + } +#line 54882 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3705: +#line 18171 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_block_init(thd, &(yyvsp[-1].lex_str)); + } +#line 54892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3706: +#line 18178 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-3].spblock), &(yyvsp[0].lex_str)))) + MYSQL_YYABORT; + } +#line 54903 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3707: +#line 18186 "/home/buildbot/git/sql/sql_yacc.yy" + + { + Lex->sp_block_init(thd); + } +#line 54913 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3708: +#line 18192 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) + MYSQL_YYABORT; + } +#line 54924 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3709: +#line 18200 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->maybe_start_compound_statement(thd))) + MYSQL_YYABORT; + Lex->sp_block_init(thd); + } +#line 54936 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + case 3710: +#line 18208 "/home/buildbot/git/sql/sql_yacc.yy" + + { + if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) + MYSQL_YYABORT; + } +#line 54947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + break; + + +#line 54952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" + + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (thd, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (thd, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, thd); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp, thd); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (thd, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, thd); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp, thd); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} |