/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 . */ /* 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. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ /* 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, and Bison version. */ #define YYBISON 30802 /* Bison version string. */ #define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "/home/buildbot/git/mkdist/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 /* First part of user prologue. */ #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_instr.h" // classes sp_instr,... #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 #include #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" #include "json_table.h" #include "sql_update.h" #include "sql_delete.h" /* this is to get the bison compilation windows warnings out */ #ifdef _MSC_VER /* warning C4065: switch statement contains 'default' but no 'case' labels */ /* warning C4102: 'yyexhaustedlab': unreferenced label */ #pragma warning (disable : 4065 4102) #endif #if defined (__GNUC__) || defined (__clang__) #pragma GCC diagnostic ignored "-Wunused-label" /* yyexhaustedlab: */ #endif /* Stack size 28200 with clang for MYSQLparse() and ORAparse() */ PRAGMA_DISABLE_CHECK_STACK_FRAME 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 \ { \ 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) { /* "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 #line 247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif #include "yy_mariadb.hh" /* Symbol kind. */ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ YYSYMBOL_YYerror = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_3_ = 3, /* '@' */ YYSYMBOL_ABORT_SYM = 4, /* ABORT_SYM */ YYSYMBOL_IMPOSSIBLE_ACTION = 5, /* IMPOSSIBLE_ACTION */ YYSYMBOL_FORCE_LOOKAHEAD = 6, /* FORCE_LOOKAHEAD */ YYSYMBOL_END_OF_INPUT = 7, /* END_OF_INPUT */ YYSYMBOL_COLON_ORACLE_SYM = 8, /* COLON_ORACLE_SYM */ YYSYMBOL_PARAM_MARKER = 9, /* PARAM_MARKER */ YYSYMBOL_FOR_SYSTEM_TIME_SYM = 10, /* FOR_SYSTEM_TIME_SYM */ YYSYMBOL_LEFT_PAREN_ALT = 11, /* LEFT_PAREN_ALT */ YYSYMBOL_LEFT_PAREN_WITH = 12, /* LEFT_PAREN_WITH */ YYSYMBOL_LEFT_PAREN_LIKE = 13, /* LEFT_PAREN_LIKE */ YYSYMBOL_ORACLE_CONCAT_SYM = 14, /* ORACLE_CONCAT_SYM */ YYSYMBOL_PERCENT_ORACLE_SYM = 15, /* PERCENT_ORACLE_SYM */ YYSYMBOL_WITH_CUBE_SYM = 16, /* WITH_CUBE_SYM */ YYSYMBOL_WITH_ROLLUP_SYM = 17, /* WITH_ROLLUP_SYM */ YYSYMBOL_WITH_SYSTEM_SYM = 18, /* WITH_SYSTEM_SYM */ YYSYMBOL_IDENT = 19, /* IDENT */ YYSYMBOL_IDENT_QUOTED = 20, /* IDENT_QUOTED */ YYSYMBOL_LEX_HOSTNAME = 21, /* LEX_HOSTNAME */ YYSYMBOL_UNDERSCORE_CHARSET = 22, /* UNDERSCORE_CHARSET */ YYSYMBOL_BIN_NUM = 23, /* BIN_NUM */ YYSYMBOL_DECIMAL_NUM = 24, /* DECIMAL_NUM */ YYSYMBOL_FLOAT_NUM = 25, /* FLOAT_NUM */ YYSYMBOL_HEX_NUM = 26, /* HEX_NUM */ YYSYMBOL_HEX_STRING = 27, /* HEX_STRING */ YYSYMBOL_LONG_NUM = 28, /* LONG_NUM */ YYSYMBOL_NCHAR_STRING = 29, /* NCHAR_STRING */ YYSYMBOL_NUM = 30, /* NUM */ YYSYMBOL_TEXT_STRING = 31, /* TEXT_STRING */ YYSYMBOL_ULONGLONG_NUM = 32, /* ULONGLONG_NUM */ YYSYMBOL_AND_AND_SYM = 33, /* AND_AND_SYM */ YYSYMBOL_DOT_DOT_SYM = 34, /* DOT_DOT_SYM */ YYSYMBOL_EQUAL_SYM = 35, /* EQUAL_SYM */ YYSYMBOL_GE = 36, /* GE */ YYSYMBOL_LE = 37, /* LE */ YYSYMBOL_MYSQL_CONCAT_SYM = 38, /* MYSQL_CONCAT_SYM */ YYSYMBOL_NE = 39, /* NE */ YYSYMBOL_NOT2_SYM = 40, /* NOT2_SYM */ YYSYMBOL_OR2_SYM = 41, /* OR2_SYM */ YYSYMBOL_SET_VAR = 42, /* SET_VAR */ YYSYMBOL_SHIFT_LEFT = 43, /* SHIFT_LEFT */ YYSYMBOL_SHIFT_RIGHT = 44, /* SHIFT_RIGHT */ YYSYMBOL_ACCESSIBLE_SYM = 45, /* ACCESSIBLE_SYM */ YYSYMBOL_ADD = 46, /* ADD */ YYSYMBOL_ALL = 47, /* ALL */ YYSYMBOL_ALTER = 48, /* ALTER */ YYSYMBOL_ANALYZE_SYM = 49, /* ANALYZE_SYM */ YYSYMBOL_AND_SYM = 50, /* AND_SYM */ YYSYMBOL_ASC = 51, /* ASC */ YYSYMBOL_ASENSITIVE_SYM = 52, /* ASENSITIVE_SYM */ YYSYMBOL_AS = 53, /* AS */ YYSYMBOL_BEFORE_SYM = 54, /* BEFORE_SYM */ YYSYMBOL_BETWEEN_SYM = 55, /* BETWEEN_SYM */ YYSYMBOL_BIGINT = 56, /* BIGINT */ YYSYMBOL_BINARY = 57, /* BINARY */ YYSYMBOL_BIT_AND = 58, /* BIT_AND */ YYSYMBOL_BIT_OR = 59, /* BIT_OR */ YYSYMBOL_BIT_XOR = 60, /* BIT_XOR */ YYSYMBOL_BLOB_MARIADB_SYM = 61, /* BLOB_MARIADB_SYM */ YYSYMBOL_BLOB_ORACLE_SYM = 62, /* BLOB_ORACLE_SYM */ YYSYMBOL_BODY_ORACLE_SYM = 63, /* BODY_ORACLE_SYM */ YYSYMBOL_BOTH = 64, /* BOTH */ YYSYMBOL_BY = 65, /* BY */ YYSYMBOL_CALL_SYM = 66, /* CALL_SYM */ YYSYMBOL_CASCADE = 67, /* CASCADE */ YYSYMBOL_CASE_SYM = 68, /* CASE_SYM */ YYSYMBOL_CAST_SYM = 69, /* CAST_SYM */ YYSYMBOL_CHANGE = 70, /* CHANGE */ YYSYMBOL_CHAR_SYM = 71, /* CHAR_SYM */ YYSYMBOL_CHECK_SYM = 72, /* CHECK_SYM */ YYSYMBOL_COLLATE_SYM = 73, /* COLLATE_SYM */ YYSYMBOL_CONDITION_SYM = 74, /* CONDITION_SYM */ YYSYMBOL_CONSTRAINT = 75, /* CONSTRAINT */ YYSYMBOL_CONTINUE_MARIADB_SYM = 76, /* CONTINUE_MARIADB_SYM */ YYSYMBOL_CONTINUE_ORACLE_SYM = 77, /* CONTINUE_ORACLE_SYM */ YYSYMBOL_CONVERT_SYM = 78, /* CONVERT_SYM */ YYSYMBOL_COUNT_SYM = 79, /* COUNT_SYM */ YYSYMBOL_CREATE = 80, /* CREATE */ YYSYMBOL_CROSS = 81, /* CROSS */ YYSYMBOL_CUME_DIST_SYM = 82, /* CUME_DIST_SYM */ YYSYMBOL_CURDATE = 83, /* CURDATE */ YYSYMBOL_CURRENT_ROLE = 84, /* CURRENT_ROLE */ YYSYMBOL_CURRENT_USER = 85, /* CURRENT_USER */ YYSYMBOL_CURSOR_SYM = 86, /* CURSOR_SYM */ YYSYMBOL_CURTIME = 87, /* CURTIME */ YYSYMBOL_DATABASE = 88, /* DATABASE */ YYSYMBOL_DATABASES = 89, /* DATABASES */ YYSYMBOL_DATE_ADD_INTERVAL = 90, /* DATE_ADD_INTERVAL */ YYSYMBOL_DATE_SUB_INTERVAL = 91, /* DATE_SUB_INTERVAL */ YYSYMBOL_DAY_HOUR_SYM = 92, /* DAY_HOUR_SYM */ YYSYMBOL_DAY_MICROSECOND_SYM = 93, /* DAY_MICROSECOND_SYM */ YYSYMBOL_DAY_MINUTE_SYM = 94, /* DAY_MINUTE_SYM */ YYSYMBOL_DAY_SECOND_SYM = 95, /* DAY_SECOND_SYM */ YYSYMBOL_DECIMAL_SYM = 96, /* DECIMAL_SYM */ YYSYMBOL_DECLARE_MARIADB_SYM = 97, /* DECLARE_MARIADB_SYM */ YYSYMBOL_DECLARE_ORACLE_SYM = 98, /* DECLARE_ORACLE_SYM */ YYSYMBOL_DEFAULT = 99, /* DEFAULT */ YYSYMBOL_DELETE_DOMAIN_ID_SYM = 100, /* DELETE_DOMAIN_ID_SYM */ YYSYMBOL_DELETE_SYM = 101, /* DELETE_SYM */ YYSYMBOL_DENSE_RANK_SYM = 102, /* DENSE_RANK_SYM */ YYSYMBOL_DESCRIBE = 103, /* DESCRIBE */ YYSYMBOL_DESC = 104, /* DESC */ YYSYMBOL_DETERMINISTIC_SYM = 105, /* DETERMINISTIC_SYM */ YYSYMBOL_DISTINCT = 106, /* DISTINCT */ YYSYMBOL_DIV_SYM = 107, /* DIV_SYM */ YYSYMBOL_DO_DOMAIN_IDS_SYM = 108, /* DO_DOMAIN_IDS_SYM */ YYSYMBOL_DOUBLE_SYM = 109, /* DOUBLE_SYM */ YYSYMBOL_DROP = 110, /* DROP */ YYSYMBOL_DUAL_SYM = 111, /* DUAL_SYM */ YYSYMBOL_EACH_SYM = 112, /* EACH_SYM */ YYSYMBOL_ELSEIF_MARIADB_SYM = 113, /* ELSEIF_MARIADB_SYM */ YYSYMBOL_ELSE = 114, /* ELSE */ YYSYMBOL_ELSIF_ORACLE_SYM = 115, /* ELSIF_ORACLE_SYM */ YYSYMBOL_EMPTY_SYM = 116, /* EMPTY_SYM */ YYSYMBOL_ENCLOSED = 117, /* ENCLOSED */ YYSYMBOL_ESCAPED = 118, /* ESCAPED */ YYSYMBOL_EXCEPT_SYM = 119, /* EXCEPT_SYM */ YYSYMBOL_EXISTS = 120, /* EXISTS */ YYSYMBOL_EXTRACT_SYM = 121, /* EXTRACT_SYM */ YYSYMBOL_FALSE_SYM = 122, /* FALSE_SYM */ YYSYMBOL_FETCH_SYM = 123, /* FETCH_SYM */ YYSYMBOL_FIRST_VALUE_SYM = 124, /* FIRST_VALUE_SYM */ YYSYMBOL_FLOAT_SYM = 125, /* FLOAT_SYM */ YYSYMBOL_FOREIGN = 126, /* FOREIGN */ YYSYMBOL_FOR_SYM = 127, /* FOR_SYM */ YYSYMBOL_FROM = 128, /* FROM */ YYSYMBOL_FULLTEXT_SYM = 129, /* FULLTEXT_SYM */ YYSYMBOL_GOTO_ORACLE_SYM = 130, /* GOTO_ORACLE_SYM */ YYSYMBOL_GRANT = 131, /* GRANT */ YYSYMBOL_GROUP_CONCAT_SYM = 132, /* GROUP_CONCAT_SYM */ YYSYMBOL_JSON_ARRAYAGG_SYM = 133, /* JSON_ARRAYAGG_SYM */ YYSYMBOL_JSON_OBJECTAGG_SYM = 134, /* JSON_OBJECTAGG_SYM */ YYSYMBOL_JSON_TABLE_SYM = 135, /* JSON_TABLE_SYM */ YYSYMBOL_GROUP_SYM = 136, /* GROUP_SYM */ YYSYMBOL_HAVING = 137, /* HAVING */ YYSYMBOL_HOUR_MICROSECOND_SYM = 138, /* HOUR_MICROSECOND_SYM */ YYSYMBOL_HOUR_MINUTE_SYM = 139, /* HOUR_MINUTE_SYM */ YYSYMBOL_HOUR_SECOND_SYM = 140, /* HOUR_SECOND_SYM */ YYSYMBOL_IF_SYM = 141, /* IF_SYM */ YYSYMBOL_IGNORE_DOMAIN_IDS_SYM = 142, /* IGNORE_DOMAIN_IDS_SYM */ YYSYMBOL_IGNORE_SYM = 143, /* IGNORE_SYM */ YYSYMBOL_IGNORED_SYM = 144, /* IGNORED_SYM */ YYSYMBOL_INDEX_SYM = 145, /* INDEX_SYM */ YYSYMBOL_INFILE = 146, /* INFILE */ YYSYMBOL_INNER_SYM = 147, /* INNER_SYM */ YYSYMBOL_INOUT_SYM = 148, /* INOUT_SYM */ YYSYMBOL_INSENSITIVE_SYM = 149, /* INSENSITIVE_SYM */ YYSYMBOL_INSERT = 150, /* INSERT */ YYSYMBOL_IN_SYM = 151, /* IN_SYM */ YYSYMBOL_INTERSECT_SYM = 152, /* INTERSECT_SYM */ YYSYMBOL_INTERVAL_SYM = 153, /* INTERVAL_SYM */ YYSYMBOL_INTO = 154, /* INTO */ YYSYMBOL_INT_SYM = 155, /* INT_SYM */ YYSYMBOL_IS = 156, /* IS */ YYSYMBOL_ITERATE_SYM = 157, /* ITERATE_SYM */ YYSYMBOL_JOIN_SYM = 158, /* JOIN_SYM */ YYSYMBOL_KEYS = 159, /* KEYS */ YYSYMBOL_KEY_SYM = 160, /* KEY_SYM */ YYSYMBOL_KILL_SYM = 161, /* KILL_SYM */ YYSYMBOL_LAG_SYM = 162, /* LAG_SYM */ YYSYMBOL_LEADING = 163, /* LEADING */ YYSYMBOL_LEAD_SYM = 164, /* LEAD_SYM */ YYSYMBOL_LEAVE_SYM = 165, /* LEAVE_SYM */ YYSYMBOL_LEFT = 166, /* LEFT */ YYSYMBOL_LIKE = 167, /* LIKE */ YYSYMBOL_LIMIT = 168, /* LIMIT */ YYSYMBOL_LINEAR_SYM = 169, /* LINEAR_SYM */ YYSYMBOL_LINES = 170, /* LINES */ YYSYMBOL_LOAD = 171, /* LOAD */ YYSYMBOL_LOCATOR_SYM = 172, /* LOCATOR_SYM */ YYSYMBOL_LOCK_SYM = 173, /* LOCK_SYM */ YYSYMBOL_LONGBLOB = 174, /* LONGBLOB */ YYSYMBOL_LONG_SYM = 175, /* LONG_SYM */ YYSYMBOL_LONGTEXT = 176, /* LONGTEXT */ YYSYMBOL_LOOP_SYM = 177, /* LOOP_SYM */ YYSYMBOL_LOW_PRIORITY = 178, /* LOW_PRIORITY */ YYSYMBOL_MASTER_SSL_VERIFY_SERVER_CERT_SYM = 179, /* MASTER_SSL_VERIFY_SERVER_CERT_SYM */ YYSYMBOL_MATCH = 180, /* MATCH */ YYSYMBOL_MAX_SYM = 181, /* MAX_SYM */ YYSYMBOL_MAXVALUE_SYM = 182, /* MAXVALUE_SYM */ YYSYMBOL_MEDIAN_SYM = 183, /* MEDIAN_SYM */ YYSYMBOL_MEDIUMBLOB = 184, /* MEDIUMBLOB */ YYSYMBOL_MEDIUMINT = 185, /* MEDIUMINT */ YYSYMBOL_MEDIUMTEXT = 186, /* MEDIUMTEXT */ YYSYMBOL_MIN_SYM = 187, /* MIN_SYM */ YYSYMBOL_MINUS_ORACLE_SYM = 188, /* MINUS_ORACLE_SYM */ YYSYMBOL_MINUTE_MICROSECOND_SYM = 189, /* MINUTE_MICROSECOND_SYM */ YYSYMBOL_MINUTE_SECOND_SYM = 190, /* MINUTE_SECOND_SYM */ YYSYMBOL_MODIFIES_SYM = 191, /* MODIFIES_SYM */ YYSYMBOL_MOD_SYM = 192, /* MOD_SYM */ YYSYMBOL_NATURAL = 193, /* NATURAL */ YYSYMBOL_NEG = 194, /* NEG */ YYSYMBOL_NESTED_SYM = 195, /* NESTED_SYM */ YYSYMBOL_NOT_SYM = 196, /* NOT_SYM */ YYSYMBOL_NO_WRITE_TO_BINLOG = 197, /* NO_WRITE_TO_BINLOG */ YYSYMBOL_NOW_SYM = 198, /* NOW_SYM */ YYSYMBOL_NTH_VALUE_SYM = 199, /* NTH_VALUE_SYM */ YYSYMBOL_NTILE_SYM = 200, /* NTILE_SYM */ YYSYMBOL_NULL_SYM = 201, /* NULL_SYM */ YYSYMBOL_NUMERIC_SYM = 202, /* NUMERIC_SYM */ YYSYMBOL_ON = 203, /* ON */ YYSYMBOL_OPTIMIZE = 204, /* OPTIMIZE */ YYSYMBOL_OPTIONALLY = 205, /* OPTIONALLY */ YYSYMBOL_ORDER_SYM = 206, /* ORDER_SYM */ YYSYMBOL_ORDINALITY_SYM = 207, /* ORDINALITY_SYM */ YYSYMBOL_OR_SYM = 208, /* OR_SYM */ YYSYMBOL_OTHERS_ORACLE_SYM = 209, /* OTHERS_ORACLE_SYM */ YYSYMBOL_OUTER = 210, /* OUTER */ YYSYMBOL_OUTFILE = 211, /* OUTFILE */ YYSYMBOL_OUT_SYM = 212, /* OUT_SYM */ YYSYMBOL_OVER_SYM = 213, /* OVER_SYM */ YYSYMBOL_PACKAGE_ORACLE_SYM = 214, /* PACKAGE_ORACLE_SYM */ YYSYMBOL_PAGE_CHECKSUM_SYM = 215, /* PAGE_CHECKSUM_SYM */ YYSYMBOL_PARSE_VCOL_EXPR_SYM = 216, /* PARSE_VCOL_EXPR_SYM */ YYSYMBOL_PARTITION_SYM = 217, /* PARTITION_SYM */ YYSYMBOL_PATH_SYM = 218, /* PATH_SYM */ YYSYMBOL_PERCENTILE_CONT_SYM = 219, /* PERCENTILE_CONT_SYM */ YYSYMBOL_PERCENTILE_DISC_SYM = 220, /* PERCENTILE_DISC_SYM */ YYSYMBOL_PERCENT_RANK_SYM = 221, /* PERCENT_RANK_SYM */ YYSYMBOL_PORTION_SYM = 222, /* PORTION_SYM */ YYSYMBOL_POSITION_SYM = 223, /* POSITION_SYM */ YYSYMBOL_PRECISION = 224, /* PRECISION */ YYSYMBOL_PRIMARY_SYM = 225, /* PRIMARY_SYM */ YYSYMBOL_PROCEDURE_SYM = 226, /* PROCEDURE_SYM */ YYSYMBOL_PURGE = 227, /* PURGE */ YYSYMBOL_RAISE_ORACLE_SYM = 228, /* RAISE_ORACLE_SYM */ YYSYMBOL_RANGE_SYM = 229, /* RANGE_SYM */ YYSYMBOL_RANK_SYM = 230, /* RANK_SYM */ YYSYMBOL_READS_SYM = 231, /* READS_SYM */ YYSYMBOL_READ_SYM = 232, /* READ_SYM */ YYSYMBOL_READ_WRITE_SYM = 233, /* READ_WRITE_SYM */ YYSYMBOL_REAL = 234, /* REAL */ YYSYMBOL_RECURSIVE_SYM = 235, /* RECURSIVE_SYM */ YYSYMBOL_REFERENCES = 236, /* REFERENCES */ YYSYMBOL_REF_SYSTEM_ID_SYM = 237, /* REF_SYSTEM_ID_SYM */ YYSYMBOL_REGEXP = 238, /* REGEXP */ YYSYMBOL_RELEASE_SYM = 239, /* RELEASE_SYM */ YYSYMBOL_RENAME = 240, /* RENAME */ YYSYMBOL_REPEAT_SYM = 241, /* REPEAT_SYM */ YYSYMBOL_REQUIRE_SYM = 242, /* REQUIRE_SYM */ YYSYMBOL_RESIGNAL_SYM = 243, /* RESIGNAL_SYM */ YYSYMBOL_RESTRICT = 244, /* RESTRICT */ YYSYMBOL_RETURNING_SYM = 245, /* RETURNING_SYM */ YYSYMBOL_RETURN_MARIADB_SYM = 246, /* RETURN_MARIADB_SYM */ YYSYMBOL_RETURN_ORACLE_SYM = 247, /* RETURN_ORACLE_SYM */ YYSYMBOL_REVOKE = 248, /* REVOKE */ YYSYMBOL_RIGHT = 249, /* RIGHT */ YYSYMBOL_ROW_NUMBER_SYM = 250, /* ROW_NUMBER_SYM */ YYSYMBOL_ROWS_SYM = 251, /* ROWS_SYM */ YYSYMBOL_ROWTYPE_ORACLE_SYM = 252, /* ROWTYPE_ORACLE_SYM */ YYSYMBOL_SECOND_MICROSECOND_SYM = 253, /* SECOND_MICROSECOND_SYM */ YYSYMBOL_SELECT_SYM = 254, /* SELECT_SYM */ YYSYMBOL_SENSITIVE_SYM = 255, /* SENSITIVE_SYM */ YYSYMBOL_SEPARATOR_SYM = 256, /* SEPARATOR_SYM */ YYSYMBOL_SERVER_OPTIONS = 257, /* SERVER_OPTIONS */ YYSYMBOL_SET = 258, /* SET */ YYSYMBOL_SHOW = 259, /* SHOW */ YYSYMBOL_SIGNAL_SYM = 260, /* SIGNAL_SYM */ YYSYMBOL_SMALLINT = 261, /* SMALLINT */ YYSYMBOL_SPATIAL_SYM = 262, /* SPATIAL_SYM */ YYSYMBOL_SPECIFIC_SYM = 263, /* SPECIFIC_SYM */ YYSYMBOL_SQL_BIG_RESULT = 264, /* SQL_BIG_RESULT */ YYSYMBOL_SQLEXCEPTION_SYM = 265, /* SQLEXCEPTION_SYM */ YYSYMBOL_SQL_SMALL_RESULT = 266, /* SQL_SMALL_RESULT */ YYSYMBOL_SQLSTATE_SYM = 267, /* SQLSTATE_SYM */ YYSYMBOL_SQL_SYM = 268, /* SQL_SYM */ YYSYMBOL_SQLWARNING_SYM = 269, /* SQLWARNING_SYM */ YYSYMBOL_SSL_SYM = 270, /* SSL_SYM */ YYSYMBOL_STARTING = 271, /* STARTING */ YYSYMBOL_STATS_AUTO_RECALC_SYM = 272, /* STATS_AUTO_RECALC_SYM */ YYSYMBOL_STATS_PERSISTENT_SYM = 273, /* STATS_PERSISTENT_SYM */ YYSYMBOL_STATS_SAMPLE_PAGES_SYM = 274, /* STATS_SAMPLE_PAGES_SYM */ YYSYMBOL_STDDEV_SAMP_SYM = 275, /* STDDEV_SAMP_SYM */ YYSYMBOL_STD_SYM = 276, /* STD_SYM */ YYSYMBOL_STRAIGHT_JOIN = 277, /* STRAIGHT_JOIN */ YYSYMBOL_SUM_SYM = 278, /* SUM_SYM */ YYSYMBOL_SYSDATE = 279, /* SYSDATE */ YYSYMBOL_TABLE_REF_PRIORITY = 280, /* TABLE_REF_PRIORITY */ YYSYMBOL_TABLE_SYM = 281, /* TABLE_SYM */ YYSYMBOL_TERMINATED = 282, /* TERMINATED */ YYSYMBOL_THEN_SYM = 283, /* THEN_SYM */ YYSYMBOL_TINYBLOB = 284, /* TINYBLOB */ YYSYMBOL_TINYINT = 285, /* TINYINT */ YYSYMBOL_TINYTEXT = 286, /* TINYTEXT */ YYSYMBOL_TO_SYM = 287, /* TO_SYM */ YYSYMBOL_TRAILING = 288, /* TRAILING */ YYSYMBOL_TRIGGER_SYM = 289, /* TRIGGER_SYM */ YYSYMBOL_TRUE_SYM = 290, /* TRUE_SYM */ YYSYMBOL_UNDO_SYM = 291, /* UNDO_SYM */ YYSYMBOL_UNION_SYM = 292, /* UNION_SYM */ YYSYMBOL_UNIQUE_SYM = 293, /* UNIQUE_SYM */ YYSYMBOL_UNLOCK_SYM = 294, /* UNLOCK_SYM */ YYSYMBOL_UNSIGNED = 295, /* UNSIGNED */ YYSYMBOL_UPDATE_SYM = 296, /* UPDATE_SYM */ YYSYMBOL_USAGE = 297, /* USAGE */ YYSYMBOL_USE_SYM = 298, /* USE_SYM */ YYSYMBOL_USING = 299, /* USING */ YYSYMBOL_UTC_DATE_SYM = 300, /* UTC_DATE_SYM */ YYSYMBOL_UTC_TIMESTAMP_SYM = 301, /* UTC_TIMESTAMP_SYM */ YYSYMBOL_UTC_TIME_SYM = 302, /* UTC_TIME_SYM */ YYSYMBOL_VALUES_IN_SYM = 303, /* VALUES_IN_SYM */ YYSYMBOL_VALUES_LESS_SYM = 304, /* VALUES_LESS_SYM */ YYSYMBOL_VALUES = 305, /* VALUES */ YYSYMBOL_VARBINARY = 306, /* VARBINARY */ YYSYMBOL_VARCHAR = 307, /* VARCHAR */ YYSYMBOL_VARIANCE_SYM = 308, /* VARIANCE_SYM */ YYSYMBOL_VAR_SAMP_SYM = 309, /* VAR_SAMP_SYM */ YYSYMBOL_VARYING = 310, /* VARYING */ YYSYMBOL_WHEN_SYM = 311, /* WHEN_SYM */ YYSYMBOL_WHERE = 312, /* WHERE */ YYSYMBOL_WHILE_SYM = 313, /* WHILE_SYM */ YYSYMBOL_WITH = 314, /* WITH */ YYSYMBOL_XOR = 315, /* XOR */ YYSYMBOL_YEAR_MONTH_SYM = 316, /* YEAR_MONTH_SYM */ YYSYMBOL_ZEROFILL = 317, /* ZEROFILL */ YYSYMBOL_BODY_MARIADB_SYM = 318, /* BODY_MARIADB_SYM */ YYSYMBOL_ELSEIF_ORACLE_SYM = 319, /* ELSEIF_ORACLE_SYM */ YYSYMBOL_ELSIF_MARIADB_SYM = 320, /* ELSIF_MARIADB_SYM */ YYSYMBOL_EXCEPTION_ORACLE_SYM = 321, /* EXCEPTION_ORACLE_SYM */ YYSYMBOL_GOTO_MARIADB_SYM = 322, /* GOTO_MARIADB_SYM */ YYSYMBOL_OTHERS_MARIADB_SYM = 323, /* OTHERS_MARIADB_SYM */ YYSYMBOL_PACKAGE_MARIADB_SYM = 324, /* PACKAGE_MARIADB_SYM */ YYSYMBOL_RAISE_MARIADB_SYM = 325, /* RAISE_MARIADB_SYM */ YYSYMBOL_ROWTYPE_MARIADB_SYM = 326, /* ROWTYPE_MARIADB_SYM */ YYSYMBOL_ROWNUM_SYM = 327, /* ROWNUM_SYM */ YYSYMBOL_REPLACE = 328, /* REPLACE */ YYSYMBOL_SUBSTRING = 329, /* SUBSTRING */ YYSYMBOL_TRIM = 330, /* TRIM */ YYSYMBOL_ACCOUNT_SYM = 331, /* ACCOUNT_SYM */ YYSYMBOL_ACTION = 332, /* ACTION */ YYSYMBOL_ADMIN_SYM = 333, /* ADMIN_SYM */ YYSYMBOL_ADDDATE_SYM = 334, /* ADDDATE_SYM */ YYSYMBOL_AFTER_SYM = 335, /* AFTER_SYM */ YYSYMBOL_AGAINST = 336, /* AGAINST */ YYSYMBOL_AGGREGATE_SYM = 337, /* AGGREGATE_SYM */ YYSYMBOL_ALGORITHM_SYM = 338, /* ALGORITHM_SYM */ YYSYMBOL_ALWAYS_SYM = 339, /* ALWAYS_SYM */ YYSYMBOL_ANY_SYM = 340, /* ANY_SYM */ YYSYMBOL_ASCII_SYM = 341, /* ASCII_SYM */ YYSYMBOL_AT_SYM = 342, /* AT_SYM */ YYSYMBOL_ATOMIC_SYM = 343, /* ATOMIC_SYM */ YYSYMBOL_AUTHORS_SYM = 344, /* AUTHORS_SYM */ YYSYMBOL_AUTOEXTEND_SIZE_SYM = 345, /* AUTOEXTEND_SIZE_SYM */ YYSYMBOL_AUTO_INC = 346, /* AUTO_INC */ YYSYMBOL_AUTO_SYM = 347, /* AUTO_SYM */ YYSYMBOL_AVG_ROW_LENGTH = 348, /* AVG_ROW_LENGTH */ YYSYMBOL_AVG_SYM = 349, /* AVG_SYM */ YYSYMBOL_BACKUP_SYM = 350, /* BACKUP_SYM */ YYSYMBOL_BEGIN_MARIADB_SYM = 351, /* BEGIN_MARIADB_SYM */ YYSYMBOL_BEGIN_ORACLE_SYM = 352, /* BEGIN_ORACLE_SYM */ YYSYMBOL_BINLOG_SYM = 353, /* BINLOG_SYM */ YYSYMBOL_BIT_SYM = 354, /* BIT_SYM */ YYSYMBOL_BLOCK_SYM = 355, /* BLOCK_SYM */ YYSYMBOL_BOOL_SYM = 356, /* BOOL_SYM */ YYSYMBOL_BOOLEAN_SYM = 357, /* BOOLEAN_SYM */ YYSYMBOL_BTREE_SYM = 358, /* BTREE_SYM */ YYSYMBOL_BYTE_SYM = 359, /* BYTE_SYM */ YYSYMBOL_CACHE_SYM = 360, /* CACHE_SYM */ YYSYMBOL_CASCADED = 361, /* CASCADED */ YYSYMBOL_CATALOG_NAME_SYM = 362, /* CATALOG_NAME_SYM */ YYSYMBOL_CHAIN_SYM = 363, /* CHAIN_SYM */ YYSYMBOL_CHANGED = 364, /* CHANGED */ YYSYMBOL_CHANNEL_SYM = 365, /* CHANNEL_SYM */ YYSYMBOL_CHARSET = 366, /* CHARSET */ YYSYMBOL_CHECKPOINT_SYM = 367, /* CHECKPOINT_SYM */ YYSYMBOL_CHECKSUM_SYM = 368, /* CHECKSUM_SYM */ YYSYMBOL_CIPHER_SYM = 369, /* CIPHER_SYM */ YYSYMBOL_CLASS_ORIGIN_SYM = 370, /* CLASS_ORIGIN_SYM */ YYSYMBOL_CLIENT_SYM = 371, /* CLIENT_SYM */ YYSYMBOL_CLOB_MARIADB_SYM = 372, /* CLOB_MARIADB_SYM */ YYSYMBOL_CLOB_ORACLE_SYM = 373, /* CLOB_ORACLE_SYM */ YYSYMBOL_CLOSE_SYM = 374, /* CLOSE_SYM */ YYSYMBOL_COALESCE = 375, /* COALESCE */ YYSYMBOL_CODE_SYM = 376, /* CODE_SYM */ YYSYMBOL_COLLATION_SYM = 377, /* COLLATION_SYM */ YYSYMBOL_COLUMNS = 378, /* COLUMNS */ YYSYMBOL_COLUMN_ADD_SYM = 379, /* COLUMN_ADD_SYM */ YYSYMBOL_COLUMN_CHECK_SYM = 380, /* COLUMN_CHECK_SYM */ YYSYMBOL_COLUMN_CREATE_SYM = 381, /* COLUMN_CREATE_SYM */ YYSYMBOL_COLUMN_DELETE_SYM = 382, /* COLUMN_DELETE_SYM */ YYSYMBOL_COLUMN_GET_SYM = 383, /* COLUMN_GET_SYM */ YYSYMBOL_COLUMN_SYM = 384, /* COLUMN_SYM */ YYSYMBOL_COLUMN_NAME_SYM = 385, /* COLUMN_NAME_SYM */ YYSYMBOL_COMMENT_SYM = 386, /* COMMENT_SYM */ YYSYMBOL_COMMITTED_SYM = 387, /* COMMITTED_SYM */ YYSYMBOL_COMMIT_SYM = 388, /* COMMIT_SYM */ YYSYMBOL_COMPACT_SYM = 389, /* COMPACT_SYM */ YYSYMBOL_COMPLETION_SYM = 390, /* COMPLETION_SYM */ YYSYMBOL_COMPRESSED_SYM = 391, /* COMPRESSED_SYM */ YYSYMBOL_CONCURRENT = 392, /* CONCURRENT */ YYSYMBOL_CONNECTION_SYM = 393, /* CONNECTION_SYM */ YYSYMBOL_CONSISTENT_SYM = 394, /* CONSISTENT_SYM */ YYSYMBOL_CONSTRAINT_CATALOG_SYM = 395, /* CONSTRAINT_CATALOG_SYM */ YYSYMBOL_CONSTRAINT_NAME_SYM = 396, /* CONSTRAINT_NAME_SYM */ YYSYMBOL_CONSTRAINT_SCHEMA_SYM = 397, /* CONSTRAINT_SCHEMA_SYM */ YYSYMBOL_CONTAINS_SYM = 398, /* CONTAINS_SYM */ YYSYMBOL_CONTEXT_SYM = 399, /* CONTEXT_SYM */ YYSYMBOL_CONTRIBUTORS_SYM = 400, /* CONTRIBUTORS_SYM */ YYSYMBOL_CPU_SYM = 401, /* CPU_SYM */ YYSYMBOL_CUBE_SYM = 402, /* CUBE_SYM */ YYSYMBOL_CURRENT_SYM = 403, /* CURRENT_SYM */ YYSYMBOL_CURRENT_POS_SYM = 404, /* CURRENT_POS_SYM */ YYSYMBOL_CURSOR_NAME_SYM = 405, /* CURSOR_NAME_SYM */ YYSYMBOL_CYCLE_SYM = 406, /* CYCLE_SYM */ YYSYMBOL_DATAFILE_SYM = 407, /* DATAFILE_SYM */ YYSYMBOL_DATA_SYM = 408, /* DATA_SYM */ YYSYMBOL_DATETIME = 409, /* DATETIME */ YYSYMBOL_DATE_SYM = 410, /* DATE_SYM */ YYSYMBOL_DAY_SYM = 411, /* DAY_SYM */ YYSYMBOL_DEALLOCATE_SYM = 412, /* DEALLOCATE_SYM */ YYSYMBOL_DEFINER_SYM = 413, /* DEFINER_SYM */ YYSYMBOL_DELAYED_SYM = 414, /* DELAYED_SYM */ YYSYMBOL_DELAY_KEY_WRITE_SYM = 415, /* DELAY_KEY_WRITE_SYM */ YYSYMBOL_DES_KEY_FILE = 416, /* DES_KEY_FILE */ YYSYMBOL_DIAGNOSTICS_SYM = 417, /* DIAGNOSTICS_SYM */ YYSYMBOL_DIRECTORY_SYM = 418, /* DIRECTORY_SYM */ YYSYMBOL_DISABLE_SYM = 419, /* DISABLE_SYM */ YYSYMBOL_DISCARD = 420, /* DISCARD */ YYSYMBOL_DISK_SYM = 421, /* DISK_SYM */ YYSYMBOL_DO_SYM = 422, /* DO_SYM */ YYSYMBOL_DUMPFILE = 423, /* DUMPFILE */ YYSYMBOL_DUPLICATE_SYM = 424, /* DUPLICATE_SYM */ YYSYMBOL_DYNAMIC_SYM = 425, /* DYNAMIC_SYM */ YYSYMBOL_ENABLE_SYM = 426, /* ENABLE_SYM */ YYSYMBOL_END = 427, /* END */ YYSYMBOL_ENDS_SYM = 428, /* ENDS_SYM */ YYSYMBOL_ENGINES_SYM = 429, /* ENGINES_SYM */ YYSYMBOL_ENGINE_SYM = 430, /* ENGINE_SYM */ YYSYMBOL_ENUM = 431, /* ENUM */ YYSYMBOL_ERROR_SYM = 432, /* ERROR_SYM */ YYSYMBOL_ERRORS = 433, /* ERRORS */ YYSYMBOL_ESCAPE_SYM = 434, /* ESCAPE_SYM */ YYSYMBOL_EVENTS_SYM = 435, /* EVENTS_SYM */ YYSYMBOL_EVENT_SYM = 436, /* EVENT_SYM */ YYSYMBOL_EVERY_SYM = 437, /* EVERY_SYM */ YYSYMBOL_EXCHANGE_SYM = 438, /* EXCHANGE_SYM */ YYSYMBOL_EXAMINED_SYM = 439, /* EXAMINED_SYM */ YYSYMBOL_EXCLUDE_SYM = 440, /* EXCLUDE_SYM */ YYSYMBOL_EXECUTE_SYM = 441, /* EXECUTE_SYM */ YYSYMBOL_EXCEPTION_MARIADB_SYM = 442, /* EXCEPTION_MARIADB_SYM */ YYSYMBOL_EXIT_MARIADB_SYM = 443, /* EXIT_MARIADB_SYM */ YYSYMBOL_EXIT_ORACLE_SYM = 444, /* EXIT_ORACLE_SYM */ YYSYMBOL_EXPANSION_SYM = 445, /* EXPANSION_SYM */ YYSYMBOL_EXPIRE_SYM = 446, /* EXPIRE_SYM */ YYSYMBOL_EXPORT_SYM = 447, /* EXPORT_SYM */ YYSYMBOL_EXTENDED_SYM = 448, /* EXTENDED_SYM */ YYSYMBOL_EXTENT_SIZE_SYM = 449, /* EXTENT_SIZE_SYM */ YYSYMBOL_FAST_SYM = 450, /* FAST_SYM */ YYSYMBOL_FAULTS_SYM = 451, /* FAULTS_SYM */ YYSYMBOL_FEDERATED_SYM = 452, /* FEDERATED_SYM */ YYSYMBOL_FILE_SYM = 453, /* FILE_SYM */ YYSYMBOL_FIRST_SYM = 454, /* FIRST_SYM */ YYSYMBOL_FIXED_SYM = 455, /* FIXED_SYM */ YYSYMBOL_FLUSH_SYM = 456, /* FLUSH_SYM */ YYSYMBOL_FOLLOWS_SYM = 457, /* FOLLOWS_SYM */ YYSYMBOL_FOLLOWING_SYM = 458, /* FOLLOWING_SYM */ YYSYMBOL_FORCE_SYM = 459, /* FORCE_SYM */ YYSYMBOL_FORMAT_SYM = 460, /* FORMAT_SYM */ YYSYMBOL_FOUND_SYM = 461, /* FOUND_SYM */ YYSYMBOL_FULL = 462, /* FULL */ YYSYMBOL_FUNCTION_SYM = 463, /* FUNCTION_SYM */ YYSYMBOL_GENERAL = 464, /* GENERAL */ YYSYMBOL_GENERATED_SYM = 465, /* GENERATED_SYM */ YYSYMBOL_GET_FORMAT = 466, /* GET_FORMAT */ YYSYMBOL_GET_SYM = 467, /* GET_SYM */ YYSYMBOL_GLOBAL_SYM = 468, /* GLOBAL_SYM */ YYSYMBOL_GRANTS = 469, /* GRANTS */ YYSYMBOL_HANDLER_SYM = 470, /* HANDLER_SYM */ YYSYMBOL_HARD_SYM = 471, /* HARD_SYM */ YYSYMBOL_HASH_SYM = 472, /* HASH_SYM */ YYSYMBOL_HELP_SYM = 473, /* HELP_SYM */ YYSYMBOL_HIGH_PRIORITY = 474, /* HIGH_PRIORITY */ YYSYMBOL_HISTORY_SYM = 475, /* HISTORY_SYM */ YYSYMBOL_HOST_SYM = 476, /* HOST_SYM */ YYSYMBOL_HOSTS_SYM = 477, /* HOSTS_SYM */ YYSYMBOL_HOUR_SYM = 478, /* HOUR_SYM */ YYSYMBOL_ID_SYM = 479, /* ID_SYM */ YYSYMBOL_IDENTIFIED_SYM = 480, /* IDENTIFIED_SYM */ YYSYMBOL_IGNORE_SERVER_IDS_SYM = 481, /* IGNORE_SERVER_IDS_SYM */ YYSYMBOL_IMMEDIATE_SYM = 482, /* IMMEDIATE_SYM */ YYSYMBOL_IMPORT = 483, /* IMPORT */ YYSYMBOL_INCREMENT_SYM = 484, /* INCREMENT_SYM */ YYSYMBOL_INDEXES = 485, /* INDEXES */ YYSYMBOL_INITIAL_SIZE_SYM = 486, /* INITIAL_SIZE_SYM */ YYSYMBOL_INSERT_METHOD = 487, /* INSERT_METHOD */ YYSYMBOL_INSTALL_SYM = 488, /* INSTALL_SYM */ YYSYMBOL_INVOKER_SYM = 489, /* INVOKER_SYM */ YYSYMBOL_IO_SYM = 490, /* IO_SYM */ YYSYMBOL_IPC_SYM = 491, /* IPC_SYM */ YYSYMBOL_ISOLATION = 492, /* ISOLATION */ YYSYMBOL_ISOPEN_SYM = 493, /* ISOPEN_SYM */ YYSYMBOL_ISSUER_SYM = 494, /* ISSUER_SYM */ YYSYMBOL_INVISIBLE_SYM = 495, /* INVISIBLE_SYM */ YYSYMBOL_JSON_SYM = 496, /* JSON_SYM */ YYSYMBOL_KEY_BLOCK_SIZE = 497, /* KEY_BLOCK_SIZE */ YYSYMBOL_LANGUAGE_SYM = 498, /* LANGUAGE_SYM */ YYSYMBOL_LAST_SYM = 499, /* LAST_SYM */ YYSYMBOL_LAST_VALUE = 500, /* LAST_VALUE */ YYSYMBOL_LASTVAL_SYM = 501, /* LASTVAL_SYM */ YYSYMBOL_LEAVES = 502, /* LEAVES */ YYSYMBOL_LESS_SYM = 503, /* LESS_SYM */ YYSYMBOL_LEVEL_SYM = 504, /* LEVEL_SYM */ YYSYMBOL_LIST_SYM = 505, /* LIST_SYM */ YYSYMBOL_LOCAL_SYM = 506, /* LOCAL_SYM */ YYSYMBOL_LOCKED_SYM = 507, /* LOCKED_SYM */ YYSYMBOL_LOCKS_SYM = 508, /* LOCKS_SYM */ YYSYMBOL_LOGFILE_SYM = 509, /* LOGFILE_SYM */ YYSYMBOL_LOGS_SYM = 510, /* LOGS_SYM */ YYSYMBOL_MASTER_CONNECT_RETRY_SYM = 511, /* MASTER_CONNECT_RETRY_SYM */ YYSYMBOL_MASTER_DELAY_SYM = 512, /* MASTER_DELAY_SYM */ YYSYMBOL_MASTER_GTID_POS_SYM = 513, /* MASTER_GTID_POS_SYM */ YYSYMBOL_MASTER_HOST_SYM = 514, /* MASTER_HOST_SYM */ YYSYMBOL_MASTER_LOG_FILE_SYM = 515, /* MASTER_LOG_FILE_SYM */ YYSYMBOL_MASTER_LOG_POS_SYM = 516, /* MASTER_LOG_POS_SYM */ YYSYMBOL_MASTER_PASSWORD_SYM = 517, /* MASTER_PASSWORD_SYM */ YYSYMBOL_MASTER_PORT_SYM = 518, /* MASTER_PORT_SYM */ YYSYMBOL_MASTER_SERVER_ID_SYM = 519, /* MASTER_SERVER_ID_SYM */ YYSYMBOL_MASTER_SSL_CAPATH_SYM = 520, /* MASTER_SSL_CAPATH_SYM */ YYSYMBOL_MASTER_SSL_CA_SYM = 521, /* MASTER_SSL_CA_SYM */ YYSYMBOL_MASTER_SSL_CERT_SYM = 522, /* MASTER_SSL_CERT_SYM */ YYSYMBOL_MASTER_SSL_CIPHER_SYM = 523, /* MASTER_SSL_CIPHER_SYM */ YYSYMBOL_MASTER_SSL_CRL_SYM = 524, /* MASTER_SSL_CRL_SYM */ YYSYMBOL_MASTER_SSL_CRLPATH_SYM = 525, /* MASTER_SSL_CRLPATH_SYM */ YYSYMBOL_MASTER_SSL_KEY_SYM = 526, /* MASTER_SSL_KEY_SYM */ YYSYMBOL_MASTER_SSL_SYM = 527, /* MASTER_SSL_SYM */ YYSYMBOL_MASTER_SYM = 528, /* MASTER_SYM */ YYSYMBOL_MASTER_USER_SYM = 529, /* MASTER_USER_SYM */ YYSYMBOL_MASTER_USE_GTID_SYM = 530, /* MASTER_USE_GTID_SYM */ YYSYMBOL_MASTER_HEARTBEAT_PERIOD_SYM = 531, /* MASTER_HEARTBEAT_PERIOD_SYM */ YYSYMBOL_MASTER_DEMOTE_TO_SLAVE_SYM = 532, /* MASTER_DEMOTE_TO_SLAVE_SYM */ YYSYMBOL_MAX_CONNECTIONS_PER_HOUR = 533, /* MAX_CONNECTIONS_PER_HOUR */ YYSYMBOL_MAX_QUERIES_PER_HOUR = 534, /* MAX_QUERIES_PER_HOUR */ YYSYMBOL_MAX_ROWS = 535, /* MAX_ROWS */ YYSYMBOL_MAX_SIZE_SYM = 536, /* MAX_SIZE_SYM */ YYSYMBOL_MAX_UPDATES_PER_HOUR = 537, /* MAX_UPDATES_PER_HOUR */ YYSYMBOL_MAX_STATEMENT_TIME_SYM = 538, /* MAX_STATEMENT_TIME_SYM */ YYSYMBOL_MAX_USER_CONNECTIONS_SYM = 539, /* MAX_USER_CONNECTIONS_SYM */ YYSYMBOL_MEDIUM_SYM = 540, /* MEDIUM_SYM */ YYSYMBOL_MEMORY_SYM = 541, /* MEMORY_SYM */ YYSYMBOL_MERGE_SYM = 542, /* MERGE_SYM */ YYSYMBOL_MESSAGE_TEXT_SYM = 543, /* MESSAGE_TEXT_SYM */ YYSYMBOL_MICROSECOND_SYM = 544, /* MICROSECOND_SYM */ YYSYMBOL_MIGRATE_SYM = 545, /* MIGRATE_SYM */ YYSYMBOL_MINUTE_SYM = 546, /* MINUTE_SYM */ YYSYMBOL_MINVALUE_SYM = 547, /* MINVALUE_SYM */ YYSYMBOL_MIN_ROWS = 548, /* MIN_ROWS */ YYSYMBOL_MODE_SYM = 549, /* MODE_SYM */ YYSYMBOL_MODIFY_SYM = 550, /* MODIFY_SYM */ YYSYMBOL_MONITOR_SYM = 551, /* MONITOR_SYM */ YYSYMBOL_MONTH_SYM = 552, /* MONTH_SYM */ YYSYMBOL_MUTEX_SYM = 553, /* MUTEX_SYM */ YYSYMBOL_MYSQL_SYM = 554, /* MYSQL_SYM */ YYSYMBOL_MYSQL_ERRNO_SYM = 555, /* MYSQL_ERRNO_SYM */ YYSYMBOL_NAMES_SYM = 556, /* NAMES_SYM */ YYSYMBOL_NAME_SYM = 557, /* NAME_SYM */ YYSYMBOL_NATIONAL_SYM = 558, /* NATIONAL_SYM */ YYSYMBOL_NCHAR_SYM = 559, /* NCHAR_SYM */ YYSYMBOL_NEVER_SYM = 560, /* NEVER_SYM */ YYSYMBOL_NEXT_SYM = 561, /* NEXT_SYM */ YYSYMBOL_NEXTVAL_SYM = 562, /* NEXTVAL_SYM */ YYSYMBOL_NOCACHE_SYM = 563, /* NOCACHE_SYM */ YYSYMBOL_NOCYCLE_SYM = 564, /* NOCYCLE_SYM */ YYSYMBOL_NODEGROUP_SYM = 565, /* NODEGROUP_SYM */ YYSYMBOL_NONE_SYM = 566, /* NONE_SYM */ YYSYMBOL_NOTFOUND_SYM = 567, /* NOTFOUND_SYM */ YYSYMBOL_NO_SYM = 568, /* NO_SYM */ YYSYMBOL_NOMAXVALUE_SYM = 569, /* NOMAXVALUE_SYM */ YYSYMBOL_NOMINVALUE_SYM = 570, /* NOMINVALUE_SYM */ YYSYMBOL_NO_WAIT_SYM = 571, /* NO_WAIT_SYM */ YYSYMBOL_NOWAIT_SYM = 572, /* NOWAIT_SYM */ YYSYMBOL_NUMBER_MARIADB_SYM = 573, /* NUMBER_MARIADB_SYM */ YYSYMBOL_NUMBER_ORACLE_SYM = 574, /* NUMBER_ORACLE_SYM */ YYSYMBOL_NVARCHAR_SYM = 575, /* NVARCHAR_SYM */ YYSYMBOL_OF_SYM = 576, /* OF_SYM */ YYSYMBOL_OFFSET_SYM = 577, /* OFFSET_SYM */ YYSYMBOL_OLD_PASSWORD_SYM = 578, /* OLD_PASSWORD_SYM */ YYSYMBOL_ONE_SYM = 579, /* ONE_SYM */ YYSYMBOL_ONLY_SYM = 580, /* ONLY_SYM */ YYSYMBOL_ONLINE_SYM = 581, /* ONLINE_SYM */ YYSYMBOL_OPEN_SYM = 582, /* OPEN_SYM */ YYSYMBOL_OPTIONS_SYM = 583, /* OPTIONS_SYM */ YYSYMBOL_OPTION = 584, /* OPTION */ YYSYMBOL_OVERLAPS_SYM = 585, /* OVERLAPS_SYM */ YYSYMBOL_OWNER_SYM = 586, /* OWNER_SYM */ YYSYMBOL_PACK_KEYS_SYM = 587, /* PACK_KEYS_SYM */ YYSYMBOL_PAGE_SYM = 588, /* PAGE_SYM */ YYSYMBOL_PARSER_SYM = 589, /* PARSER_SYM */ YYSYMBOL_PARTIAL = 590, /* PARTIAL */ YYSYMBOL_PARTITIONS_SYM = 591, /* PARTITIONS_SYM */ YYSYMBOL_PARTITIONING_SYM = 592, /* PARTITIONING_SYM */ YYSYMBOL_PASSWORD_SYM = 593, /* PASSWORD_SYM */ YYSYMBOL_PERIOD_SYM = 594, /* PERIOD_SYM */ YYSYMBOL_PERSISTENT_SYM = 595, /* PERSISTENT_SYM */ YYSYMBOL_PHASE_SYM = 596, /* PHASE_SYM */ YYSYMBOL_PLUGINS_SYM = 597, /* PLUGINS_SYM */ YYSYMBOL_PLUGIN_SYM = 598, /* PLUGIN_SYM */ YYSYMBOL_PORT_SYM = 599, /* PORT_SYM */ YYSYMBOL_PRECEDES_SYM = 600, /* PRECEDES_SYM */ YYSYMBOL_PRECEDING_SYM = 601, /* PRECEDING_SYM */ YYSYMBOL_PREPARE_SYM = 602, /* PREPARE_SYM */ YYSYMBOL_PRESERVE_SYM = 603, /* PRESERVE_SYM */ YYSYMBOL_PREV_SYM = 604, /* PREV_SYM */ YYSYMBOL_PREVIOUS_SYM = 605, /* PREVIOUS_SYM */ YYSYMBOL_PRIVILEGES = 606, /* PRIVILEGES */ YYSYMBOL_PROCESS = 607, /* PROCESS */ YYSYMBOL_PROCESSLIST_SYM = 608, /* PROCESSLIST_SYM */ YYSYMBOL_PROFILE_SYM = 609, /* PROFILE_SYM */ YYSYMBOL_PROFILES_SYM = 610, /* PROFILES_SYM */ YYSYMBOL_PROXY_SYM = 611, /* PROXY_SYM */ YYSYMBOL_QUARTER_SYM = 612, /* QUARTER_SYM */ YYSYMBOL_QUERY_SYM = 613, /* QUERY_SYM */ YYSYMBOL_QUICK = 614, /* QUICK */ YYSYMBOL_RAW_MARIADB_SYM = 615, /* RAW_MARIADB_SYM */ YYSYMBOL_RAW_ORACLE_SYM = 616, /* RAW_ORACLE_SYM */ YYSYMBOL_READ_ONLY_SYM = 617, /* READ_ONLY_SYM */ YYSYMBOL_REBUILD_SYM = 618, /* REBUILD_SYM */ YYSYMBOL_RECOVER_SYM = 619, /* RECOVER_SYM */ YYSYMBOL_REDOFILE_SYM = 620, /* REDOFILE_SYM */ YYSYMBOL_REDO_BUFFER_SIZE_SYM = 621, /* REDO_BUFFER_SIZE_SYM */ YYSYMBOL_REDUNDANT_SYM = 622, /* REDUNDANT_SYM */ YYSYMBOL_RELAY = 623, /* RELAY */ YYSYMBOL_RELAYLOG_SYM = 624, /* RELAYLOG_SYM */ YYSYMBOL_RELAY_LOG_FILE_SYM = 625, /* RELAY_LOG_FILE_SYM */ YYSYMBOL_RELAY_LOG_POS_SYM = 626, /* RELAY_LOG_POS_SYM */ YYSYMBOL_RELAY_THREAD = 627, /* RELAY_THREAD */ YYSYMBOL_RELOAD = 628, /* RELOAD */ YYSYMBOL_REMOVE_SYM = 629, /* REMOVE_SYM */ YYSYMBOL_REORGANIZE_SYM = 630, /* REORGANIZE_SYM */ YYSYMBOL_REPAIR = 631, /* REPAIR */ YYSYMBOL_REPEATABLE_SYM = 632, /* REPEATABLE_SYM */ YYSYMBOL_REPLAY_SYM = 633, /* REPLAY_SYM */ YYSYMBOL_REPLICATION = 634, /* REPLICATION */ YYSYMBOL_RESET_SYM = 635, /* RESET_SYM */ YYSYMBOL_RESTART_SYM = 636, /* RESTART_SYM */ YYSYMBOL_RESOURCES = 637, /* RESOURCES */ YYSYMBOL_RESTORE_SYM = 638, /* RESTORE_SYM */ YYSYMBOL_RESUME_SYM = 639, /* RESUME_SYM */ YYSYMBOL_RETURNED_SQLSTATE_SYM = 640, /* RETURNED_SQLSTATE_SYM */ YYSYMBOL_RETURNS_SYM = 641, /* RETURNS_SYM */ YYSYMBOL_REUSE_SYM = 642, /* REUSE_SYM */ YYSYMBOL_REVERSE_SYM = 643, /* REVERSE_SYM */ YYSYMBOL_ROLE_SYM = 644, /* ROLE_SYM */ YYSYMBOL_ROLLBACK_SYM = 645, /* ROLLBACK_SYM */ YYSYMBOL_ROLLUP_SYM = 646, /* ROLLUP_SYM */ YYSYMBOL_ROUTINE_SYM = 647, /* ROUTINE_SYM */ YYSYMBOL_ROWCOUNT_SYM = 648, /* ROWCOUNT_SYM */ YYSYMBOL_ROW_SYM = 649, /* ROW_SYM */ YYSYMBOL_ROW_COUNT_SYM = 650, /* ROW_COUNT_SYM */ YYSYMBOL_ROW_FORMAT_SYM = 651, /* ROW_FORMAT_SYM */ YYSYMBOL_RTREE_SYM = 652, /* RTREE_SYM */ YYSYMBOL_SAVEPOINT_SYM = 653, /* SAVEPOINT_SYM */ YYSYMBOL_SCHEDULE_SYM = 654, /* SCHEDULE_SYM */ YYSYMBOL_SCHEMA_NAME_SYM = 655, /* SCHEMA_NAME_SYM */ YYSYMBOL_SECOND_SYM = 656, /* SECOND_SYM */ YYSYMBOL_SECURITY_SYM = 657, /* SECURITY_SYM */ YYSYMBOL_SEQUENCE_SYM = 658, /* SEQUENCE_SYM */ YYSYMBOL_SERIALIZABLE_SYM = 659, /* SERIALIZABLE_SYM */ YYSYMBOL_SERIAL_SYM = 660, /* SERIAL_SYM */ YYSYMBOL_SESSION_SYM = 661, /* SESSION_SYM */ YYSYMBOL_SERVER_SYM = 662, /* SERVER_SYM */ YYSYMBOL_SETVAL_SYM = 663, /* SETVAL_SYM */ YYSYMBOL_SHARE_SYM = 664, /* SHARE_SYM */ YYSYMBOL_SHUTDOWN = 665, /* SHUTDOWN */ YYSYMBOL_SIGNED_SYM = 666, /* SIGNED_SYM */ YYSYMBOL_SIMPLE_SYM = 667, /* SIMPLE_SYM */ YYSYMBOL_SKIP_SYM = 668, /* SKIP_SYM */ YYSYMBOL_SLAVE = 669, /* SLAVE */ YYSYMBOL_SLAVES = 670, /* SLAVES */ YYSYMBOL_SLAVE_POS_SYM = 671, /* SLAVE_POS_SYM */ YYSYMBOL_SLOW = 672, /* SLOW */ YYSYMBOL_SNAPSHOT_SYM = 673, /* SNAPSHOT_SYM */ YYSYMBOL_SOCKET_SYM = 674, /* SOCKET_SYM */ YYSYMBOL_SOFT_SYM = 675, /* SOFT_SYM */ YYSYMBOL_SONAME_SYM = 676, /* SONAME_SYM */ YYSYMBOL_SOUNDS_SYM = 677, /* SOUNDS_SYM */ YYSYMBOL_SOURCE_SYM = 678, /* SOURCE_SYM */ YYSYMBOL_SQL_AFTER_GTIDS_SYM = 679, /* SQL_AFTER_GTIDS_SYM */ YYSYMBOL_SQL_BEFORE_GTIDS_SYM = 680, /* SQL_BEFORE_GTIDS_SYM */ YYSYMBOL_SQL_BUFFER_RESULT = 681, /* SQL_BUFFER_RESULT */ YYSYMBOL_SQL_CACHE_SYM = 682, /* SQL_CACHE_SYM */ YYSYMBOL_SQL_CALC_FOUND_ROWS = 683, /* SQL_CALC_FOUND_ROWS */ YYSYMBOL_SQL_NO_CACHE_SYM = 684, /* SQL_NO_CACHE_SYM */ YYSYMBOL_SQL_THREAD = 685, /* SQL_THREAD */ YYSYMBOL_STAGE_SYM = 686, /* STAGE_SYM */ YYSYMBOL_STARTS_SYM = 687, /* STARTS_SYM */ YYSYMBOL_START_SYM = 688, /* START_SYM */ YYSYMBOL_STATEMENT_SYM = 689, /* STATEMENT_SYM */ YYSYMBOL_STATUS_SYM = 690, /* STATUS_SYM */ YYSYMBOL_STOP_SYM = 691, /* STOP_SYM */ YYSYMBOL_STORAGE_SYM = 692, /* STORAGE_SYM */ YYSYMBOL_STORED_SYM = 693, /* STORED_SYM */ YYSYMBOL_STRING_SYM = 694, /* STRING_SYM */ YYSYMBOL_SUBCLASS_ORIGIN_SYM = 695, /* SUBCLASS_ORIGIN_SYM */ YYSYMBOL_SUBDATE_SYM = 696, /* SUBDATE_SYM */ YYSYMBOL_SUBJECT_SYM = 697, /* SUBJECT_SYM */ YYSYMBOL_SUBPARTITIONS_SYM = 698, /* SUBPARTITIONS_SYM */ YYSYMBOL_SUBPARTITION_SYM = 699, /* SUBPARTITION_SYM */ YYSYMBOL_SUPER_SYM = 700, /* SUPER_SYM */ YYSYMBOL_SUSPEND_SYM = 701, /* SUSPEND_SYM */ YYSYMBOL_SWAPS_SYM = 702, /* SWAPS_SYM */ YYSYMBOL_SWITCHES_SYM = 703, /* SWITCHES_SYM */ YYSYMBOL_SYSTEM = 704, /* SYSTEM */ YYSYMBOL_SYSTEM_TIME_SYM = 705, /* SYSTEM_TIME_SYM */ YYSYMBOL_TABLES = 706, /* TABLES */ YYSYMBOL_TABLESPACE = 707, /* TABLESPACE */ YYSYMBOL_TABLE_CHECKSUM_SYM = 708, /* TABLE_CHECKSUM_SYM */ YYSYMBOL_TABLE_NAME_SYM = 709, /* TABLE_NAME_SYM */ YYSYMBOL_TEMPORARY = 710, /* TEMPORARY */ YYSYMBOL_TEMPTABLE_SYM = 711, /* TEMPTABLE_SYM */ YYSYMBOL_TEXT_SYM = 712, /* TEXT_SYM */ YYSYMBOL_THAN_SYM = 713, /* THAN_SYM */ YYSYMBOL_TIES_SYM = 714, /* TIES_SYM */ YYSYMBOL_TIMESTAMP = 715, /* TIMESTAMP */ YYSYMBOL_TIMESTAMP_ADD = 716, /* TIMESTAMP_ADD */ YYSYMBOL_TIMESTAMP_DIFF = 717, /* TIMESTAMP_DIFF */ YYSYMBOL_TIME_SYM = 718, /* TIME_SYM */ YYSYMBOL_TRANSACTION_SYM = 719, /* TRANSACTION_SYM */ YYSYMBOL_TRANSACTIONAL_SYM = 720, /* TRANSACTIONAL_SYM */ YYSYMBOL_THREADS_SYM = 721, /* THREADS_SYM */ YYSYMBOL_TRIGGERS_SYM = 722, /* TRIGGERS_SYM */ YYSYMBOL_TRIM_ORACLE = 723, /* TRIM_ORACLE */ YYSYMBOL_TRUNCATE_SYM = 724, /* TRUNCATE_SYM */ YYSYMBOL_TYPE_SYM = 725, /* TYPE_SYM */ YYSYMBOL_UDF_RETURNS_SYM = 726, /* UDF_RETURNS_SYM */ YYSYMBOL_UNBOUNDED_SYM = 727, /* UNBOUNDED_SYM */ YYSYMBOL_UNCOMMITTED_SYM = 728, /* UNCOMMITTED_SYM */ YYSYMBOL_UNDEFINED_SYM = 729, /* UNDEFINED_SYM */ YYSYMBOL_UNDOFILE_SYM = 730, /* UNDOFILE_SYM */ YYSYMBOL_UNDO_BUFFER_SIZE_SYM = 731, /* UNDO_BUFFER_SIZE_SYM */ YYSYMBOL_UNICODE_SYM = 732, /* UNICODE_SYM */ YYSYMBOL_UNINSTALL_SYM = 733, /* UNINSTALL_SYM */ YYSYMBOL_UNKNOWN_SYM = 734, /* UNKNOWN_SYM */ YYSYMBOL_UNTIL_SYM = 735, /* UNTIL_SYM */ YYSYMBOL_UPGRADE_SYM = 736, /* UPGRADE_SYM */ YYSYMBOL_USER_SYM = 737, /* USER_SYM */ YYSYMBOL_USE_FRM = 738, /* USE_FRM */ YYSYMBOL_VALIDATION_SYM = 739, /* VALIDATION_SYM */ YYSYMBOL_VALUE_SYM = 740, /* VALUE_SYM */ YYSYMBOL_VARCHAR2_MARIADB_SYM = 741, /* VARCHAR2_MARIADB_SYM */ YYSYMBOL_VARCHAR2_ORACLE_SYM = 742, /* VARCHAR2_ORACLE_SYM */ YYSYMBOL_VARIABLES = 743, /* VARIABLES */ YYSYMBOL_VERSIONING_SYM = 744, /* VERSIONING_SYM */ YYSYMBOL_VIA_SYM = 745, /* VIA_SYM */ YYSYMBOL_VIEW_SYM = 746, /* VIEW_SYM */ YYSYMBOL_VISIBLE_SYM = 747, /* VISIBLE_SYM */ YYSYMBOL_VIRTUAL_SYM = 748, /* VIRTUAL_SYM */ YYSYMBOL_WAIT_SYM = 749, /* WAIT_SYM */ YYSYMBOL_WARNINGS = 750, /* WARNINGS */ YYSYMBOL_WEEK_SYM = 751, /* WEEK_SYM */ YYSYMBOL_WEIGHT_STRING_SYM = 752, /* WEIGHT_STRING_SYM */ YYSYMBOL_WINDOW_SYM = 753, /* WINDOW_SYM */ YYSYMBOL_WITHIN = 754, /* WITHIN */ YYSYMBOL_WITHOUT = 755, /* WITHOUT */ YYSYMBOL_WORK_SYM = 756, /* WORK_SYM */ YYSYMBOL_WRAPPER_SYM = 757, /* WRAPPER_SYM */ YYSYMBOL_WRITE_SYM = 758, /* WRITE_SYM */ YYSYMBOL_X509_SYM = 759, /* X509_SYM */ YYSYMBOL_XA_SYM = 760, /* XA_SYM */ YYSYMBOL_XML_SYM = 761, /* XML_SYM */ YYSYMBOL_YEAR_SYM = 762, /* YEAR_SYM */ YYSYMBOL_CONDITIONLESS_JOIN = 763, /* CONDITIONLESS_JOIN */ YYSYMBOL_ON_SYM = 764, /* ON_SYM */ YYSYMBOL_PREC_BELOW_NOT = 765, /* PREC_BELOW_NOT */ YYSYMBOL_766_ = 766, /* '=' */ YYSYMBOL_767_ = 767, /* '>' */ YYSYMBOL_768_ = 768, /* '<' */ YYSYMBOL_769_ = 769, /* '|' */ YYSYMBOL_770_ = 770, /* '&' */ YYSYMBOL_771_ = 771, /* '-' */ YYSYMBOL_772_ = 772, /* '+' */ YYSYMBOL_773_ = 773, /* '*' */ YYSYMBOL_774_ = 774, /* '/' */ YYSYMBOL_775_ = 775, /* '%' */ YYSYMBOL_776_ = 776, /* '^' */ YYSYMBOL_777_ = 777, /* '~' */ YYSYMBOL_SUBQUERY_AS_EXPR = 778, /* SUBQUERY_AS_EXPR */ YYSYMBOL_PREC_BELOW_IDENTIFIER_OPT_SPECIAL_CASE = 779, /* PREC_BELOW_IDENTIFIER_OPT_SPECIAL_CASE */ YYSYMBOL_USER = 780, /* USER */ YYSYMBOL_PREC_BELOW_SP_OBJECT_TYPE = 781, /* PREC_BELOW_SP_OBJECT_TYPE */ YYSYMBOL_PREC_BELOW_CONTRACTION_TOKEN2 = 782, /* PREC_BELOW_CONTRACTION_TOKEN2 */ YYSYMBOL_783_ = 783, /* '(' */ YYSYMBOL_784_ = 784, /* ')' */ YYSYMBOL_EMPTY_FROM_CLAUSE = 785, /* EMPTY_FROM_CLAUSE */ YYSYMBOL_786_ = 786, /* ',' */ YYSYMBOL_787_ = 787, /* '!' */ YYSYMBOL_788_ = 788, /* '{' */ YYSYMBOL_789_ = 789, /* '}' */ YYSYMBOL_790_ = 790, /* ';' */ YYSYMBOL_791_ = 791, /* '.' */ YYSYMBOL_792_ = 792, /* ':' */ YYSYMBOL_YYACCEPT = 793, /* $accept */ YYSYMBOL_query = 794, /* query */ YYSYMBOL_795_1 = 795, /* $@1 */ YYSYMBOL_opt_end_of_input = 796, /* opt_end_of_input */ YYSYMBOL_directly_executable_statement = 797, /* directly_executable_statement */ YYSYMBOL_verb_clause = 798, /* verb_clause */ YYSYMBOL_deallocate = 799, /* deallocate */ YYSYMBOL_deallocate_or_drop = 800, /* deallocate_or_drop */ YYSYMBOL_prepare = 801, /* prepare */ YYSYMBOL_802_2 = 802, /* $@2 */ YYSYMBOL_execute = 803, /* execute */ YYSYMBOL_804_3 = 804, /* $@3 */ YYSYMBOL_805_4 = 805, /* $@4 */ YYSYMBOL_execute_using = 806, /* execute_using */ YYSYMBOL_807_5 = 807, /* $@5 */ YYSYMBOL_execute_params = 808, /* execute_params */ YYSYMBOL_help = 809, /* help */ YYSYMBOL_810_6 = 810, /* $@6 */ YYSYMBOL_change = 811, /* change */ YYSYMBOL_812_7 = 812, /* $@7 */ YYSYMBOL_master_defs = 813, /* master_defs */ YYSYMBOL_master_def = 814, /* master_def */ YYSYMBOL_ignore_server_id_list = 815, /* ignore_server_id_list */ YYSYMBOL_ignore_server_id = 816, /* ignore_server_id */ YYSYMBOL_do_domain_id_list = 817, /* do_domain_id_list */ YYSYMBOL_do_domain_id = 818, /* do_domain_id */ YYSYMBOL_ignore_domain_id_list = 819, /* ignore_domain_id_list */ YYSYMBOL_ignore_domain_id = 820, /* ignore_domain_id */ YYSYMBOL_master_file_def = 821, /* master_file_def */ YYSYMBOL_optional_connection_name = 822, /* optional_connection_name */ YYSYMBOL_connection_name = 823, /* connection_name */ YYSYMBOL_optional_for_channel = 824, /* optional_for_channel */ YYSYMBOL_for_channel = 825, /* for_channel */ YYSYMBOL_create = 826, /* create */ YYSYMBOL_827_8 = 827, /* $@8 */ YYSYMBOL_828_9 = 828, /* $@9 */ YYSYMBOL_829_10 = 829, /* $@10 */ YYSYMBOL_830_11 = 830, /* $@11 */ YYSYMBOL_831_12 = 831, /* $@12 */ YYSYMBOL_832_13 = 832, /* $@13 */ YYSYMBOL_833_14 = 833, /* $@14 */ YYSYMBOL_834_15 = 834, /* $@15 */ YYSYMBOL_835_16 = 835, /* $@16 */ YYSYMBOL_836_17 = 836, /* $@17 */ YYSYMBOL_837_18 = 837, /* $@18 */ YYSYMBOL_838_19 = 838, /* $@19 */ YYSYMBOL_839_20 = 839, /* $@20 */ YYSYMBOL_840_21 = 840, /* $@21 */ YYSYMBOL_841_22 = 841, /* $@22 */ YYSYMBOL_842_23 = 842, /* $@23 */ YYSYMBOL_843_24 = 843, /* $@24 */ YYSYMBOL_opt_sequence = 844, /* opt_sequence */ YYSYMBOL_sequence_defs = 845, /* sequence_defs */ YYSYMBOL_sequence_def = 846, /* sequence_def */ YYSYMBOL_force_lookahead = 847, /* force_lookahead */ YYSYMBOL_server_def = 848, /* server_def */ YYSYMBOL_849_25 = 849, /* $@25 */ YYSYMBOL_server_options_list = 850, /* server_options_list */ YYSYMBOL_server_option = 851, /* server_option */ YYSYMBOL_event_tail = 852, /* event_tail */ YYSYMBOL_853_26 = 853, /* $@26 */ YYSYMBOL_ev_schedule_time = 854, /* ev_schedule_time */ YYSYMBOL_855_27 = 855, /* $@27 */ YYSYMBOL_opt_ev_status = 856, /* opt_ev_status */ YYSYMBOL_ev_starts = 857, /* ev_starts */ YYSYMBOL_ev_ends = 858, /* ev_ends */ YYSYMBOL_opt_ev_on_completion = 859, /* opt_ev_on_completion */ YYSYMBOL_ev_on_completion = 860, /* ev_on_completion */ YYSYMBOL_opt_ev_comment = 861, /* opt_ev_comment */ YYSYMBOL_ev_sql_stmt = 862, /* ev_sql_stmt */ YYSYMBOL_863_28 = 863, /* $@28 */ YYSYMBOL_clear_privileges = 864, /* clear_privileges */ YYSYMBOL_opt_aggregate = 865, /* opt_aggregate */ YYSYMBOL_sp_handler = 866, /* sp_handler */ YYSYMBOL_sp_handler_package_spec = 867, /* sp_handler_package_spec */ YYSYMBOL_sp_handler_package_body = 868, /* sp_handler_package_body */ YYSYMBOL_drop_routine = 869, /* drop_routine */ YYSYMBOL_sp_name = 870, /* sp_name */ YYSYMBOL_sp_a_chistics = 871, /* sp_a_chistics */ YYSYMBOL_sp_c_chistics = 872, /* sp_c_chistics */ YYSYMBOL_sp_chistic = 873, /* sp_chistic */ YYSYMBOL_sp_c_chistic = 874, /* sp_c_chistic */ YYSYMBOL_sp_suid = 875, /* sp_suid */ YYSYMBOL_call = 876, /* call */ YYSYMBOL_877_29 = 877, /* $@29 */ YYSYMBOL_878_30 = 878, /* $@30 */ YYSYMBOL_879_31 = 879, /* $@31 */ YYSYMBOL_opt_sp_cparam_list = 880, /* opt_sp_cparam_list */ YYSYMBOL_opt_sp_cparams = 881, /* opt_sp_cparams */ YYSYMBOL_sp_cparams = 882, /* sp_cparams */ YYSYMBOL_sp_fdparam_list = 883, /* sp_fdparam_list */ YYSYMBOL_884_32 = 884, /* $@32 */ YYSYMBOL_sp_fdparams = 885, /* sp_fdparams */ YYSYMBOL_sp_param_name = 886, /* sp_param_name */ YYSYMBOL_sp_pdparam_list = 887, /* sp_pdparam_list */ YYSYMBOL_sp_pdparams = 888, /* sp_pdparams */ YYSYMBOL_sp_parameter_type = 889, /* sp_parameter_type */ YYSYMBOL_sp_parenthesized_pdparam_list = 890, /* sp_parenthesized_pdparam_list */ YYSYMBOL_891_33 = 891, /* $@33 */ YYSYMBOL_sp_parenthesized_fdparam_list = 892, /* sp_parenthesized_fdparam_list */ YYSYMBOL_sp_proc_stmts = 893, /* sp_proc_stmts */ YYSYMBOL_sp_proc_stmts1 = 894, /* sp_proc_stmts1 */ YYSYMBOL_optionally_qualified_column_ident = 895, /* optionally_qualified_column_ident */ YYSYMBOL_row_field_definition = 896, /* row_field_definition */ YYSYMBOL_row_field_definition_list = 897, /* row_field_definition_list */ YYSYMBOL_row_type_body = 898, /* row_type_body */ YYSYMBOL_sp_decl_idents_init_vars = 899, /* sp_decl_idents_init_vars */ YYSYMBOL_sp_decl_variable_list = 900, /* sp_decl_variable_list */ YYSYMBOL_901_34 = 901, /* $@34 */ YYSYMBOL_sp_decl_handler = 902, /* sp_decl_handler */ YYSYMBOL_903_35 = 903, /* $@35 */ YYSYMBOL_opt_parenthesized_cursor_formal_parameters = 904, /* opt_parenthesized_cursor_formal_parameters */ YYSYMBOL_sp_cursor_stmt_lex = 905, /* sp_cursor_stmt_lex */ YYSYMBOL_sp_cursor_stmt = 906, /* sp_cursor_stmt */ YYSYMBOL_907_36 = 907, /* $@36 */ YYSYMBOL_sp_handler_type = 908, /* sp_handler_type */ YYSYMBOL_sp_hcond_list = 909, /* sp_hcond_list */ YYSYMBOL_sp_hcond_element = 910, /* sp_hcond_element */ YYSYMBOL_sp_cond = 911, /* sp_cond */ YYSYMBOL_sqlstate = 912, /* sqlstate */ YYSYMBOL_opt_value = 913, /* opt_value */ YYSYMBOL_sp_hcond = 914, /* sp_hcond */ YYSYMBOL_raise_stmt_oracle = 915, /* raise_stmt_oracle */ YYSYMBOL_signal_stmt = 916, /* signal_stmt */ YYSYMBOL_signal_value = 917, /* signal_value */ YYSYMBOL_opt_signal_value = 918, /* opt_signal_value */ YYSYMBOL_opt_set_signal_information = 919, /* opt_set_signal_information */ YYSYMBOL_signal_information_item_list = 920, /* signal_information_item_list */ YYSYMBOL_signal_allowed_expr = 921, /* signal_allowed_expr */ YYSYMBOL_signal_condition_information_item_name = 922, /* signal_condition_information_item_name */ YYSYMBOL_resignal_stmt = 923, /* resignal_stmt */ YYSYMBOL_get_diagnostics = 924, /* get_diagnostics */ YYSYMBOL_which_area = 925, /* which_area */ YYSYMBOL_diagnostics_information = 926, /* diagnostics_information */ YYSYMBOL_statement_information = 927, /* statement_information */ YYSYMBOL_statement_information_item = 928, /* statement_information_item */ YYSYMBOL_simple_target_specification = 929, /* simple_target_specification */ YYSYMBOL_statement_information_item_name = 930, /* statement_information_item_name */ YYSYMBOL_condition_number = 931, /* condition_number */ YYSYMBOL_condition_information = 932, /* condition_information */ YYSYMBOL_condition_information_item = 933, /* condition_information_item */ YYSYMBOL_condition_information_item_name = 934, /* condition_information_item_name */ YYSYMBOL_sp_decl_ident = 935, /* sp_decl_ident */ YYSYMBOL_sp_decl_idents = 936, /* sp_decl_idents */ YYSYMBOL_sp_proc_stmt_if = 937, /* sp_proc_stmt_if */ YYSYMBOL_938_37 = 938, /* $@37 */ YYSYMBOL_sp_proc_stmt_statement = 939, /* sp_proc_stmt_statement */ YYSYMBOL_940_38 = 940, /* $@38 */ YYSYMBOL_RETURN_ALLMODES_SYM = 941, /* RETURN_ALLMODES_SYM */ YYSYMBOL_sp_proc_stmt_return = 942, /* sp_proc_stmt_return */ YYSYMBOL_943_39 = 943, /* $@39 */ YYSYMBOL_sp_proc_stmt_exit_oracle = 944, /* sp_proc_stmt_exit_oracle */ YYSYMBOL_945_40 = 945, /* $@40 */ YYSYMBOL_946_41 = 946, /* $@41 */ YYSYMBOL_sp_proc_stmt_continue_oracle = 947, /* sp_proc_stmt_continue_oracle */ YYSYMBOL_948_42 = 948, /* $@42 */ YYSYMBOL_949_43 = 949, /* $@43 */ YYSYMBOL_sp_proc_stmt_leave = 950, /* sp_proc_stmt_leave */ YYSYMBOL_sp_proc_stmt_iterate = 951, /* sp_proc_stmt_iterate */ YYSYMBOL_sp_proc_stmt_goto_oracle = 952, /* sp_proc_stmt_goto_oracle */ YYSYMBOL_expr_lex = 953, /* expr_lex */ YYSYMBOL_954_44 = 954, /* @44 */ YYSYMBOL_assignment_source_lex = 955, /* assignment_source_lex */ YYSYMBOL_assignment_source_expr = 956, /* assignment_source_expr */ YYSYMBOL_957_45 = 957, /* $@45 */ YYSYMBOL_for_loop_bound_expr = 958, /* for_loop_bound_expr */ YYSYMBOL_959_46 = 959, /* $@46 */ YYSYMBOL_cursor_actual_parameters = 960, /* cursor_actual_parameters */ YYSYMBOL_opt_parenthesized_cursor_actual_parameters = 961, /* opt_parenthesized_cursor_actual_parameters */ YYSYMBOL_sp_proc_stmt_with_cursor = 962, /* sp_proc_stmt_with_cursor */ YYSYMBOL_sp_proc_stmt_open = 963, /* sp_proc_stmt_open */ YYSYMBOL_sp_proc_stmt_fetch_head = 964, /* sp_proc_stmt_fetch_head */ YYSYMBOL_sp_proc_stmt_fetch = 965, /* sp_proc_stmt_fetch */ YYSYMBOL_sp_proc_stmt_close = 966, /* sp_proc_stmt_close */ YYSYMBOL_sp_fetch_list = 967, /* sp_fetch_list */ YYSYMBOL_sp_if = 968, /* sp_if */ YYSYMBOL_969_47 = 969, /* $@47 */ YYSYMBOL_970_48 = 970, /* $@48 */ YYSYMBOL_sp_elseifs = 971, /* sp_elseifs */ YYSYMBOL_case_stmt_specification = 972, /* case_stmt_specification */ YYSYMBOL_973_49 = 973, /* $@49 */ YYSYMBOL_case_stmt_body = 974, /* case_stmt_body */ YYSYMBOL_975_50 = 975, /* $@50 */ YYSYMBOL_simple_when_clause_list = 976, /* simple_when_clause_list */ YYSYMBOL_searched_when_clause_list = 977, /* searched_when_clause_list */ YYSYMBOL_simple_when_clause = 978, /* simple_when_clause */ YYSYMBOL_979_51 = 979, /* $@51 */ YYSYMBOL_searched_when_clause = 980, /* searched_when_clause */ YYSYMBOL_981_52 = 981, /* $@52 */ YYSYMBOL_else_clause_opt = 982, /* else_clause_opt */ YYSYMBOL_sp_opt_label = 983, /* sp_opt_label */ YYSYMBOL_opt_sp_for_loop_direction = 984, /* opt_sp_for_loop_direction */ YYSYMBOL_sp_for_loop_index_and_bounds = 985, /* sp_for_loop_index_and_bounds */ YYSYMBOL_sp_for_loop_bounds = 986, /* sp_for_loop_bounds */ YYSYMBOL_loop_body = 987, /* loop_body */ YYSYMBOL_repeat_body = 988, /* repeat_body */ YYSYMBOL_pop_sp_loop_label = 989, /* pop_sp_loop_label */ YYSYMBOL_sp_labeled_control = 990, /* sp_labeled_control */ YYSYMBOL_991_53 = 991, /* $@53 */ YYSYMBOL_992_54 = 992, /* $@54 */ YYSYMBOL_993_55 = 993, /* $@55 */ YYSYMBOL_994_56 = 994, /* $@56 */ YYSYMBOL_995_57 = 995, /* $@57 */ YYSYMBOL_996_58 = 996, /* $@58 */ YYSYMBOL_sp_unlabeled_control = 997, /* sp_unlabeled_control */ YYSYMBOL_998_59 = 998, /* $@59 */ YYSYMBOL_999_60 = 999, /* $@60 */ YYSYMBOL_1000_61 = 1000, /* $@61 */ YYSYMBOL_1001_62 = 1001, /* $@62 */ YYSYMBOL_1002_63 = 1002, /* $@63 */ YYSYMBOL_trg_action_time = 1003, /* trg_action_time */ YYSYMBOL_trg_event = 1004, /* trg_event */ YYSYMBOL_create_body = 1005, /* create_body */ YYSYMBOL_1006_64 = 1006, /* $@64 */ YYSYMBOL_create_like = 1007, /* create_like */ YYSYMBOL_opt_create_select = 1008, /* opt_create_select */ YYSYMBOL_create_select_query_expression = 1009, /* create_select_query_expression */ YYSYMBOL_opt_create_partitioning = 1010, /* opt_create_partitioning */ YYSYMBOL_opt_partitioning = 1011, /* opt_partitioning */ YYSYMBOL_partitioning = 1012, /* partitioning */ YYSYMBOL_1013_65 = 1013, /* $@65 */ YYSYMBOL_have_partitioning = 1014, /* have_partitioning */ YYSYMBOL_partition_entry = 1015, /* partition_entry */ YYSYMBOL_1016_66 = 1016, /* $@66 */ YYSYMBOL_partition = 1017, /* partition */ YYSYMBOL_1018_67 = 1018, /* $@67 */ YYSYMBOL_part_type_def = 1019, /* part_type_def */ YYSYMBOL_1020_68 = 1020, /* $@68 */ YYSYMBOL_1021_69 = 1021, /* $@69 */ YYSYMBOL_1022_70 = 1022, /* $@70 */ YYSYMBOL_opt_linear = 1023, /* opt_linear */ YYSYMBOL_opt_key_algo = 1024, /* opt_key_algo */ YYSYMBOL_part_field_list = 1025, /* part_field_list */ YYSYMBOL_part_field_item_list = 1026, /* part_field_item_list */ YYSYMBOL_part_field_item = 1027, /* part_field_item */ YYSYMBOL_part_column_list = 1028, /* part_column_list */ YYSYMBOL_part_func = 1029, /* part_func */ YYSYMBOL_sub_part_func = 1030, /* sub_part_func */ YYSYMBOL_opt_num_parts = 1031, /* opt_num_parts */ YYSYMBOL_opt_sub_part = 1032, /* opt_sub_part */ YYSYMBOL_1033_71 = 1033, /* $@71 */ YYSYMBOL_1034_72 = 1034, /* $@72 */ YYSYMBOL_sub_part_field_list = 1035, /* sub_part_field_list */ YYSYMBOL_sub_part_field_item = 1036, /* sub_part_field_item */ YYSYMBOL_part_func_expr = 1037, /* part_func_expr */ YYSYMBOL_opt_num_subparts = 1038, /* opt_num_subparts */ YYSYMBOL_part_defs = 1039, /* part_defs */ YYSYMBOL_part_def_list = 1040, /* part_def_list */ YYSYMBOL_opt_partition = 1041, /* opt_partition */ YYSYMBOL_part_definition = 1042, /* part_definition */ YYSYMBOL_1043_73 = 1043, /* $@73 */ YYSYMBOL_part_name = 1044, /* part_name */ YYSYMBOL_opt_part_values = 1045, /* opt_part_values */ YYSYMBOL_1046_74 = 1046, /* $@74 */ YYSYMBOL_1047_75 = 1047, /* $@75 */ YYSYMBOL_part_func_max = 1048, /* part_func_max */ YYSYMBOL_part_values_in = 1049, /* part_values_in */ YYSYMBOL_part_value_list = 1050, /* part_value_list */ YYSYMBOL_part_value_item = 1051, /* part_value_item */ YYSYMBOL_1052_76 = 1052, /* $@76 */ YYSYMBOL_1053_77 = 1053, /* $@77 */ YYSYMBOL_part_value_item_list = 1054, /* part_value_item_list */ YYSYMBOL_part_value_expr_item = 1055, /* part_value_expr_item */ YYSYMBOL_opt_sub_partition = 1056, /* opt_sub_partition */ YYSYMBOL_sub_part_list = 1057, /* sub_part_list */ YYSYMBOL_sub_part_definition = 1058, /* sub_part_definition */ YYSYMBOL_1059_78 = 1059, /* $@78 */ YYSYMBOL_sub_name = 1060, /* sub_name */ YYSYMBOL_opt_part_options = 1061, /* opt_part_options */ YYSYMBOL_part_option_list = 1062, /* part_option_list */ YYSYMBOL_part_option = 1063, /* part_option */ YYSYMBOL_opt_subpart_options = 1064, /* opt_subpart_options */ YYSYMBOL_subpart_option_list = 1065, /* subpart_option_list */ YYSYMBOL_server_part_option = 1066, /* server_part_option */ YYSYMBOL_opt_versioning_rotation = 1067, /* opt_versioning_rotation */ YYSYMBOL_1068_79 = 1068, /* $@79 */ YYSYMBOL_opt_versioning_interval_start = 1069, /* opt_versioning_interval_start */ YYSYMBOL_opt_vers_auto_part = 1070, /* opt_vers_auto_part */ YYSYMBOL_opt_as = 1071, /* opt_as */ YYSYMBOL_opt_create_database_options = 1072, /* opt_create_database_options */ YYSYMBOL_create_database_options = 1073, /* create_database_options */ YYSYMBOL_create_database_option = 1074, /* create_database_option */ YYSYMBOL_opt_if_not_exists_table_element = 1075, /* opt_if_not_exists_table_element */ YYSYMBOL_opt_if_not_exists = 1076, /* opt_if_not_exists */ YYSYMBOL_create_or_replace = 1077, /* create_or_replace */ YYSYMBOL_opt_create_table_options = 1078, /* opt_create_table_options */ YYSYMBOL_create_table_options_space_separated = 1079, /* create_table_options_space_separated */ YYSYMBOL_create_table_options = 1080, /* create_table_options */ YYSYMBOL_create_table_option = 1081, /* create_table_option */ YYSYMBOL_1082_80 = 1082, /* $@80 */ YYSYMBOL_engine_defined_option = 1083, /* engine_defined_option */ YYSYMBOL_ident_options = 1084, /* ident_options */ YYSYMBOL_keyword_options = 1085, /* keyword_options */ YYSYMBOL_opt_versioning_option = 1086, /* opt_versioning_option */ YYSYMBOL_versioning_option = 1087, /* versioning_option */ YYSYMBOL_default_charset = 1088, /* default_charset */ YYSYMBOL_default_collation = 1089, /* default_collation */ YYSYMBOL_storage_engines = 1090, /* storage_engines */ YYSYMBOL_known_storage_engines = 1091, /* known_storage_engines */ YYSYMBOL_row_types = 1092, /* row_types */ YYSYMBOL_merge_insert_types = 1093, /* merge_insert_types */ YYSYMBOL_udf_type = 1094, /* udf_type */ YYSYMBOL_create_field_list = 1095, /* create_field_list */ YYSYMBOL_create_field_list_parens = 1096, /* create_field_list_parens */ YYSYMBOL_field_list = 1097, /* field_list */ YYSYMBOL_field_list_item = 1098, /* field_list_item */ YYSYMBOL_column_def = 1099, /* column_def */ YYSYMBOL_key_def = 1100, /* key_def */ YYSYMBOL_1101_81 = 1101, /* $@81 */ YYSYMBOL_1102_82 = 1102, /* $@82 */ YYSYMBOL_1103_83 = 1103, /* $@83 */ YYSYMBOL_1104_84 = 1104, /* $@84 */ YYSYMBOL_1105_85 = 1105, /* $@85 */ YYSYMBOL_1106_86 = 1106, /* $@86 */ YYSYMBOL_1107_87 = 1107, /* $@87 */ YYSYMBOL_constraint_def = 1108, /* constraint_def */ YYSYMBOL_period_for_system_time = 1109, /* period_for_system_time */ YYSYMBOL_period_for_application_time = 1110, /* period_for_application_time */ YYSYMBOL_opt_check_constraint = 1111, /* opt_check_constraint */ YYSYMBOL_check_constraint = 1112, /* check_constraint */ YYSYMBOL_opt_constraint_no_id = 1113, /* opt_constraint_no_id */ YYSYMBOL_opt_constraint = 1114, /* opt_constraint */ YYSYMBOL_constraint = 1115, /* constraint */ YYSYMBOL_field_spec = 1116, /* field_spec */ YYSYMBOL_1117_88 = 1117, /* @88 */ YYSYMBOL_field_type_or_serial = 1118, /* field_type_or_serial */ YYSYMBOL_1119_89 = 1119, /* $@89 */ YYSYMBOL_1120_90 = 1120, /* $@90 */ YYSYMBOL_opt_serial_attribute = 1121, /* opt_serial_attribute */ YYSYMBOL_opt_serial_attribute_list = 1122, /* opt_serial_attribute_list */ YYSYMBOL_opt_asrow_attribute = 1123, /* opt_asrow_attribute */ YYSYMBOL_opt_asrow_attribute_list = 1124, /* opt_asrow_attribute_list */ YYSYMBOL_field_def = 1125, /* field_def */ YYSYMBOL_1126_91 = 1126, /* $@91 */ YYSYMBOL_opt_generated_always = 1127, /* opt_generated_always */ YYSYMBOL_vcol_opt_specifier = 1128, /* vcol_opt_specifier */ YYSYMBOL_vcol_opt_attribute = 1129, /* vcol_opt_attribute */ YYSYMBOL_vcol_opt_attribute_list = 1130, /* vcol_opt_attribute_list */ YYSYMBOL_vcol_attribute = 1131, /* vcol_attribute */ YYSYMBOL_parse_vcol_expr = 1132, /* parse_vcol_expr */ YYSYMBOL_1133_92 = 1133, /* $@92 */ YYSYMBOL_parenthesized_expr = 1134, /* parenthesized_expr */ YYSYMBOL_virtual_column_func = 1135, /* virtual_column_func */ YYSYMBOL_expr_or_literal = 1136, /* expr_or_literal */ YYSYMBOL_column_default_expr = 1137, /* column_default_expr */ YYSYMBOL_field_type = 1138, /* field_type */ YYSYMBOL_qualified_field_type = 1139, /* qualified_field_type */ YYSYMBOL_udt_name = 1140, /* udt_name */ YYSYMBOL_field_type_all = 1141, /* field_type_all */ YYSYMBOL_field_type_numeric = 1142, /* field_type_numeric */ YYSYMBOL_opt_binary_and_compression = 1143, /* opt_binary_and_compression */ YYSYMBOL_field_type_string = 1144, /* field_type_string */ YYSYMBOL_field_type_temporal = 1145, /* field_type_temporal */ YYSYMBOL_field_type_lob = 1146, /* field_type_lob */ YYSYMBOL_field_type_misc = 1147, /* field_type_misc */ YYSYMBOL_char = 1148, /* char */ YYSYMBOL_nchar = 1149, /* nchar */ YYSYMBOL_varchar = 1150, /* varchar */ YYSYMBOL_nvarchar = 1151, /* nvarchar */ YYSYMBOL_int_type = 1152, /* int_type */ YYSYMBOL_real_type = 1153, /* real_type */ YYSYMBOL_srid_option = 1154, /* srid_option */ YYSYMBOL_float_options = 1155, /* float_options */ YYSYMBOL_precision = 1156, /* precision */ YYSYMBOL_field_options = 1157, /* field_options */ YYSYMBOL_last_field_options = 1158, /* last_field_options */ YYSYMBOL_field_length_str = 1159, /* field_length_str */ YYSYMBOL_field_length = 1160, /* field_length */ YYSYMBOL_field_scale = 1161, /* field_scale */ YYSYMBOL_opt_field_length = 1162, /* opt_field_length */ YYSYMBOL_opt_field_scale = 1163, /* opt_field_scale */ YYSYMBOL_opt_precision = 1164, /* opt_precision */ YYSYMBOL_attribute_list = 1165, /* attribute_list */ YYSYMBOL_attribute = 1166, /* attribute */ YYSYMBOL_opt_compression_method = 1167, /* opt_compression_method */ YYSYMBOL_opt_compressed = 1168, /* opt_compressed */ YYSYMBOL_opt_enable = 1169, /* opt_enable */ YYSYMBOL_compressed = 1170, /* compressed */ YYSYMBOL_compressed_deprecated_data_type_attribute = 1171, /* compressed_deprecated_data_type_attribute */ YYSYMBOL_compressed_deprecated_column_attribute = 1172, /* compressed_deprecated_column_attribute */ YYSYMBOL_asrow_attribute = 1173, /* asrow_attribute */ YYSYMBOL_serial_attribute = 1174, /* serial_attribute */ YYSYMBOL_with_or_without_system = 1175, /* with_or_without_system */ YYSYMBOL_charset = 1176, /* charset */ YYSYMBOL_charset_name = 1177, /* charset_name */ YYSYMBOL_charset_name_or_default = 1178, /* charset_name_or_default */ YYSYMBOL_opt_load_data_charset = 1179, /* opt_load_data_charset */ YYSYMBOL_old_or_new_charset_name = 1180, /* old_or_new_charset_name */ YYSYMBOL_old_or_new_charset_name_or_default = 1181, /* old_or_new_charset_name_or_default */ YYSYMBOL_collation_name = 1182, /* collation_name */ YYSYMBOL_collation_name_or_default = 1183, /* collation_name_or_default */ YYSYMBOL_opt_default = 1184, /* opt_default */ YYSYMBOL_charset_or_alias = 1185, /* charset_or_alias */ YYSYMBOL_opt_binary = 1186, /* opt_binary */ YYSYMBOL_binary = 1187, /* binary */ YYSYMBOL_opt_bin_mod = 1188, /* opt_bin_mod */ YYSYMBOL_ws_nweights = 1189, /* ws_nweights */ YYSYMBOL_1190_93 = 1190, /* $@93 */ YYSYMBOL_ws_level_flag_desc = 1191, /* ws_level_flag_desc */ YYSYMBOL_ws_level_flag_reverse = 1192, /* ws_level_flag_reverse */ YYSYMBOL_ws_level_flags = 1193, /* ws_level_flags */ YYSYMBOL_ws_level_number = 1194, /* ws_level_number */ YYSYMBOL_ws_level_list_item = 1195, /* ws_level_list_item */ YYSYMBOL_ws_level_list = 1196, /* ws_level_list */ YYSYMBOL_ws_level_range = 1197, /* ws_level_range */ YYSYMBOL_ws_level_list_or_range = 1198, /* ws_level_list_or_range */ YYSYMBOL_opt_ws_levels = 1199, /* opt_ws_levels */ YYSYMBOL_opt_primary = 1200, /* opt_primary */ YYSYMBOL_references = 1201, /* references */ YYSYMBOL_opt_ref_list = 1202, /* opt_ref_list */ YYSYMBOL_ref_list = 1203, /* ref_list */ YYSYMBOL_opt_match_clause = 1204, /* opt_match_clause */ YYSYMBOL_opt_on_update_delete = 1205, /* opt_on_update_delete */ YYSYMBOL_delete_option = 1206, /* delete_option */ YYSYMBOL_constraint_key_type = 1207, /* constraint_key_type */ YYSYMBOL_key_or_index = 1208, /* key_or_index */ YYSYMBOL_opt_key_or_index = 1209, /* opt_key_or_index */ YYSYMBOL_keys_or_index = 1210, /* keys_or_index */ YYSYMBOL_fulltext = 1211, /* fulltext */ YYSYMBOL_spatial = 1212, /* spatial */ YYSYMBOL_normal_key_options = 1213, /* normal_key_options */ YYSYMBOL_fulltext_key_options = 1214, /* fulltext_key_options */ YYSYMBOL_spatial_key_options = 1215, /* spatial_key_options */ YYSYMBOL_normal_key_opts = 1216, /* normal_key_opts */ YYSYMBOL_spatial_key_opts = 1217, /* spatial_key_opts */ YYSYMBOL_fulltext_key_opts = 1218, /* fulltext_key_opts */ YYSYMBOL_opt_USING_key_algorithm = 1219, /* opt_USING_key_algorithm */ YYSYMBOL_opt_key_algorithm_clause = 1220, /* opt_key_algorithm_clause */ YYSYMBOL_key_using_alg = 1221, /* key_using_alg */ YYSYMBOL_all_key_opt = 1222, /* all_key_opt */ YYSYMBOL_normal_key_opt = 1223, /* normal_key_opt */ YYSYMBOL_spatial_key_opt = 1224, /* spatial_key_opt */ YYSYMBOL_fulltext_key_opt = 1225, /* fulltext_key_opt */ YYSYMBOL_btree_or_rtree = 1226, /* btree_or_rtree */ YYSYMBOL_ignorability = 1227, /* ignorability */ YYSYMBOL_key_list = 1228, /* key_list */ YYSYMBOL_opt_without_overlaps = 1229, /* opt_without_overlaps */ YYSYMBOL_key_part = 1230, /* key_part */ YYSYMBOL_opt_ident = 1231, /* opt_ident */ YYSYMBOL_string_list = 1232, /* string_list */ YYSYMBOL_alter = 1233, /* alter */ YYSYMBOL_1234_94 = 1234, /* $@94 */ YYSYMBOL_1235_95 = 1235, /* $@95 */ YYSYMBOL_1236_96 = 1236, /* $@96 */ YYSYMBOL_1237_97 = 1237, /* $@97 */ YYSYMBOL_1238_98 = 1238, /* $@98 */ YYSYMBOL_1239_99 = 1239, /* $@99 */ YYSYMBOL_1240_100 = 1240, /* $@100 */ YYSYMBOL_1241_101 = 1241, /* $@101 */ YYSYMBOL_1242_102 = 1242, /* $@102 */ YYSYMBOL_1243_103 = 1243, /* $@103 */ YYSYMBOL_1244_104 = 1244, /* $@104 */ YYSYMBOL_1245_105 = 1245, /* $@105 */ YYSYMBOL_1246_106 = 1246, /* $@106 */ YYSYMBOL_account_locking_option = 1247, /* account_locking_option */ YYSYMBOL_opt_password_expire_option = 1248, /* opt_password_expire_option */ YYSYMBOL_opt_account_locking_and_opt_password_expiration = 1249, /* opt_account_locking_and_opt_password_expiration */ YYSYMBOL_ev_alter_on_schedule_completion = 1250, /* ev_alter_on_schedule_completion */ YYSYMBOL_opt_ev_rename_to = 1251, /* opt_ev_rename_to */ YYSYMBOL_opt_ev_sql_stmt = 1252, /* opt_ev_sql_stmt */ YYSYMBOL_ident_or_empty = 1253, /* ident_or_empty */ YYSYMBOL_alter_commands = 1254, /* alter_commands */ YYSYMBOL_1255_107 = 1255, /* $@107 */ YYSYMBOL_1256_108 = 1256, /* $@108 */ YYSYMBOL_1257_109 = 1257, /* $@109 */ YYSYMBOL_1258_110 = 1258, /* $@110 */ YYSYMBOL_remove_partitioning = 1259, /* remove_partitioning */ YYSYMBOL_all_or_alt_part_name_list = 1260, /* all_or_alt_part_name_list */ YYSYMBOL_add_partition_rule = 1261, /* add_partition_rule */ YYSYMBOL_1262_111 = 1262, /* $@111 */ YYSYMBOL_add_part_extra = 1263, /* add_part_extra */ YYSYMBOL_reorg_partition_rule = 1264, /* reorg_partition_rule */ YYSYMBOL_1265_112 = 1265, /* $@112 */ YYSYMBOL_reorg_parts_rule = 1266, /* reorg_parts_rule */ YYSYMBOL_1267_113 = 1267, /* $@113 */ YYSYMBOL_alt_part_name_list = 1268, /* alt_part_name_list */ YYSYMBOL_alt_part_name_item = 1269, /* alt_part_name_item */ YYSYMBOL_alter_list = 1270, /* alter_list */ YYSYMBOL_add_column = 1271, /* add_column */ YYSYMBOL_alter_list_item = 1272, /* alter_list_item */ YYSYMBOL_opt_without_validation = 1273, /* opt_without_validation */ YYSYMBOL_opt_index_lock_algorithm = 1274, /* opt_index_lock_algorithm */ YYSYMBOL_alter_algorithm_option = 1275, /* alter_algorithm_option */ YYSYMBOL_alter_lock_option = 1276, /* alter_lock_option */ YYSYMBOL_opt_column = 1277, /* opt_column */ YYSYMBOL_opt_ignore = 1278, /* opt_ignore */ YYSYMBOL_alter_options = 1279, /* alter_options */ YYSYMBOL_1280_114 = 1280, /* $@114 */ YYSYMBOL_alter_options_part2 = 1281, /* alter_options_part2 */ YYSYMBOL_alter_option_list = 1282, /* alter_option_list */ YYSYMBOL_alter_option = 1283, /* alter_option */ YYSYMBOL_opt_restrict = 1284, /* opt_restrict */ YYSYMBOL_opt_place = 1285, /* opt_place */ YYSYMBOL_opt_to = 1286, /* opt_to */ YYSYMBOL_slave = 1287, /* slave */ YYSYMBOL_1288_115 = 1288, /* $@115 */ YYSYMBOL_1289_116 = 1289, /* $@116 */ YYSYMBOL_start = 1290, /* start */ YYSYMBOL_opt_start_transaction_option_list = 1291, /* opt_start_transaction_option_list */ YYSYMBOL_start_transaction_option_list = 1292, /* start_transaction_option_list */ YYSYMBOL_start_transaction_option = 1293, /* start_transaction_option */ YYSYMBOL_slave_thread_opts = 1294, /* slave_thread_opts */ YYSYMBOL_1295_117 = 1295, /* $@117 */ YYSYMBOL_slave_thread_opt_list = 1296, /* slave_thread_opt_list */ YYSYMBOL_slave_thread_opt = 1297, /* slave_thread_opt */ YYSYMBOL_slave_until = 1298, /* slave_until */ YYSYMBOL_slave_until_opts = 1299, /* slave_until_opts */ YYSYMBOL_checksum = 1300, /* checksum */ YYSYMBOL_1301_118 = 1301, /* $@118 */ YYSYMBOL_opt_checksum_type = 1302, /* opt_checksum_type */ YYSYMBOL_repair_table_or_view = 1303, /* repair_table_or_view */ YYSYMBOL_1304_119 = 1304, /* $@119 */ YYSYMBOL_repair = 1305, /* repair */ YYSYMBOL_1306_120 = 1306, /* $@120 */ YYSYMBOL_opt_mi_repair_type = 1307, /* opt_mi_repair_type */ YYSYMBOL_mi_repair_types = 1308, /* mi_repair_types */ YYSYMBOL_mi_repair_type = 1309, /* mi_repair_type */ YYSYMBOL_opt_view_repair_type = 1310, /* opt_view_repair_type */ YYSYMBOL_analyze = 1311, /* analyze */ YYSYMBOL_1312_121 = 1312, /* $@121 */ YYSYMBOL_analyze_table_list = 1313, /* analyze_table_list */ YYSYMBOL_analyze_table_elem_spec = 1314, /* analyze_table_elem_spec */ YYSYMBOL_opt_persistent_stat_clause = 1315, /* opt_persistent_stat_clause */ YYSYMBOL_persistent_stat_spec = 1316, /* persistent_stat_spec */ YYSYMBOL_persistent_column_stat_spec = 1317, /* persistent_column_stat_spec */ YYSYMBOL_1318_122 = 1318, /* $@122 */ YYSYMBOL_persistent_index_stat_spec = 1319, /* persistent_index_stat_spec */ YYSYMBOL_1320_123 = 1320, /* $@123 */ YYSYMBOL_table_column_list = 1321, /* table_column_list */ YYSYMBOL_table_index_list = 1322, /* table_index_list */ YYSYMBOL_table_index_name = 1323, /* table_index_name */ YYSYMBOL_binlog_base64_event = 1324, /* binlog_base64_event */ YYSYMBOL_check_view_or_table = 1325, /* check_view_or_table */ YYSYMBOL_1326_124 = 1326, /* $@124 */ YYSYMBOL_check = 1327, /* check */ YYSYMBOL_1328_125 = 1328, /* $@125 */ YYSYMBOL_opt_mi_check_type = 1329, /* opt_mi_check_type */ YYSYMBOL_mi_check_types = 1330, /* mi_check_types */ YYSYMBOL_mi_check_type = 1331, /* mi_check_type */ YYSYMBOL_opt_view_check_type = 1332, /* opt_view_check_type */ YYSYMBOL_optimize = 1333, /* optimize */ YYSYMBOL_1334_126 = 1334, /* $@126 */ YYSYMBOL_opt_no_write_to_binlog = 1335, /* opt_no_write_to_binlog */ YYSYMBOL_rename = 1336, /* rename */ YYSYMBOL_1337_127 = 1337, /* $@127 */ YYSYMBOL_rename_list = 1338, /* rename_list */ YYSYMBOL_table_to_table_list = 1339, /* table_to_table_list */ YYSYMBOL_table_to_table = 1340, /* table_to_table */ YYSYMBOL_keycache = 1341, /* keycache */ YYSYMBOL_1342_128 = 1342, /* $@128 */ YYSYMBOL_keycache_list_or_parts = 1343, /* keycache_list_or_parts */ YYSYMBOL_keycache_list = 1344, /* keycache_list */ YYSYMBOL_assign_to_keycache = 1345, /* assign_to_keycache */ YYSYMBOL_assign_to_keycache_parts = 1346, /* assign_to_keycache_parts */ YYSYMBOL_key_cache_name = 1347, /* key_cache_name */ YYSYMBOL_preload = 1348, /* preload */ YYSYMBOL_1349_129 = 1349, /* $@129 */ YYSYMBOL_preload_list_or_parts = 1350, /* preload_list_or_parts */ YYSYMBOL_preload_list = 1351, /* preload_list */ YYSYMBOL_preload_keys = 1352, /* preload_keys */ YYSYMBOL_preload_keys_parts = 1353, /* preload_keys_parts */ YYSYMBOL_adm_partition = 1354, /* adm_partition */ YYSYMBOL_1355_130 = 1355, /* $@130 */ YYSYMBOL_cache_keys_spec = 1356, /* cache_keys_spec */ YYSYMBOL_1357_131 = 1357, /* $@131 */ YYSYMBOL_cache_key_list_or_empty = 1358, /* cache_key_list_or_empty */ YYSYMBOL_opt_ignore_leaves = 1359, /* opt_ignore_leaves */ YYSYMBOL_select = 1360, /* select */ YYSYMBOL_1361_132 = 1361, /* $@132 */ YYSYMBOL_1362_133 = 1362, /* $@133 */ YYSYMBOL_select_into = 1363, /* select_into */ YYSYMBOL_1364_134 = 1364, /* $@134 */ YYSYMBOL_1365_135 = 1365, /* $@135 */ YYSYMBOL_simple_table = 1366, /* simple_table */ YYSYMBOL_table_value_constructor = 1367, /* table_value_constructor */ YYSYMBOL_1368_136 = 1368, /* $@136 */ YYSYMBOL_query_specification_start = 1369, /* query_specification_start */ YYSYMBOL_1370_137 = 1370, /* $@137 */ YYSYMBOL_1371_138 = 1371, /* $@138 */ YYSYMBOL_query_specification = 1372, /* query_specification */ YYSYMBOL_select_into_query_specification = 1373, /* select_into_query_specification */ YYSYMBOL_query_expression = 1374, /* query_expression */ YYSYMBOL_query_expression_no_with_clause = 1375, /* query_expression_no_with_clause */ YYSYMBOL_query_expression_body_ext = 1376, /* query_expression_body_ext */ YYSYMBOL_1377_139 = 1377, /* $@139 */ YYSYMBOL_1378_140 = 1378, /* $@140 */ YYSYMBOL_query_expression_body_ext_parens = 1379, /* query_expression_body_ext_parens */ YYSYMBOL_query_expression_body = 1380, /* query_expression_body */ YYSYMBOL_1381_141 = 1381, /* $@141 */ YYSYMBOL_query_primary = 1382, /* query_primary */ YYSYMBOL_query_simple = 1383, /* query_simple */ YYSYMBOL_subselect = 1384, /* subselect */ YYSYMBOL_subquery = 1385, /* subquery */ YYSYMBOL_opt_from_clause = 1386, /* opt_from_clause */ YYSYMBOL_from_clause = 1387, /* from_clause */ YYSYMBOL_table_reference_list = 1388, /* table_reference_list */ YYSYMBOL_select_options = 1389, /* select_options */ YYSYMBOL_opt_history_unit = 1390, /* opt_history_unit */ YYSYMBOL_history_point = 1391, /* history_point */ YYSYMBOL_for_portion_of_time_clause = 1392, /* for_portion_of_time_clause */ YYSYMBOL_opt_for_portion_of_time_clause = 1393, /* opt_for_portion_of_time_clause */ YYSYMBOL_opt_for_system_time_clause = 1394, /* opt_for_system_time_clause */ YYSYMBOL_system_time_expr = 1395, /* system_time_expr */ YYSYMBOL_select_option_list = 1396, /* select_option_list */ YYSYMBOL_select_option = 1397, /* select_option */ YYSYMBOL_select_lock_type = 1398, /* select_lock_type */ YYSYMBOL_opt_select_lock_type = 1399, /* opt_select_lock_type */ YYSYMBOL_opt_lock_wait_timeout_new = 1400, /* opt_lock_wait_timeout_new */ YYSYMBOL_select_item_list = 1401, /* select_item_list */ YYSYMBOL_select_item = 1402, /* select_item */ YYSYMBOL_remember_tok_start = 1403, /* remember_tok_start */ YYSYMBOL_remember_name = 1404, /* remember_name */ YYSYMBOL_remember_end = 1405, /* remember_end */ YYSYMBOL_remember_cpp_ptr = 1406, /* remember_cpp_ptr */ YYSYMBOL_remember_start_opt = 1407, /* remember_start_opt */ YYSYMBOL_remember_end_opt = 1408, /* remember_end_opt */ YYSYMBOL_remember_lex = 1409, /* remember_lex */ YYSYMBOL_select_alias = 1410, /* select_alias */ YYSYMBOL_opt_default_time_precision = 1411, /* opt_default_time_precision */ YYSYMBOL_opt_time_precision = 1412, /* opt_time_precision */ YYSYMBOL_optional_braces = 1413, /* optional_braces */ YYSYMBOL_expr = 1414, /* expr */ YYSYMBOL_boolean_test = 1415, /* boolean_test */ YYSYMBOL_predicate = 1416, /* predicate */ YYSYMBOL_bit_expr = 1417, /* bit_expr */ YYSYMBOL_or = 1418, /* or */ YYSYMBOL_and = 1419, /* and */ YYSYMBOL_not = 1420, /* not */ YYSYMBOL_not2 = 1421, /* not2 */ YYSYMBOL_comp_op = 1422, /* comp_op */ YYSYMBOL_all_or_any = 1423, /* all_or_any */ YYSYMBOL_opt_dyncol_type = 1424, /* opt_dyncol_type */ YYSYMBOL_dyncol_type = 1425, /* dyncol_type */ YYSYMBOL_numeric_dyncol_type = 1426, /* numeric_dyncol_type */ YYSYMBOL_temporal_dyncol_type = 1427, /* temporal_dyncol_type */ YYSYMBOL_string_dyncol_type = 1428, /* string_dyncol_type */ YYSYMBOL_dyncall_create_element = 1429, /* dyncall_create_element */ YYSYMBOL_dyncall_create_list = 1430, /* dyncall_create_list */ YYSYMBOL_plsql_cursor_attr = 1431, /* plsql_cursor_attr */ YYSYMBOL_explicit_cursor_attr = 1432, /* explicit_cursor_attr */ YYSYMBOL_trim_operands = 1433, /* trim_operands */ YYSYMBOL_trim_operands_regular = 1434, /* trim_operands_regular */ YYSYMBOL_trim_operands_special = 1435, /* trim_operands_special */ YYSYMBOL_column_default_non_parenthesized_expr = 1436, /* column_default_non_parenthesized_expr */ YYSYMBOL_primary_expr = 1437, /* primary_expr */ YYSYMBOL_string_factor_expr = 1438, /* string_factor_expr */ YYSYMBOL_simple_expr = 1439, /* simple_expr */ YYSYMBOL_mysql_concatenation_expr = 1440, /* mysql_concatenation_expr */ YYSYMBOL_function_call_keyword_timestamp = 1441, /* function_call_keyword_timestamp */ YYSYMBOL_function_call_keyword = 1442, /* function_call_keyword */ YYSYMBOL_substring_operands = 1443, /* substring_operands */ YYSYMBOL_substring_operands_regular = 1444, /* substring_operands_regular */ YYSYMBOL_substring_operands_special = 1445, /* substring_operands_special */ YYSYMBOL_function_call_nonkeyword = 1446, /* function_call_nonkeyword */ YYSYMBOL_function_call_conflict = 1447, /* function_call_conflict */ YYSYMBOL_function_call_generic = 1448, /* function_call_generic */ YYSYMBOL_1449_142 = 1449, /* @142 */ YYSYMBOL_fulltext_options = 1450, /* fulltext_options */ YYSYMBOL_opt_natural_language_mode = 1451, /* opt_natural_language_mode */ YYSYMBOL_opt_query_expansion = 1452, /* opt_query_expansion */ YYSYMBOL_opt_udf_expr_list = 1453, /* opt_udf_expr_list */ YYSYMBOL_udf_expr_list = 1454, /* udf_expr_list */ YYSYMBOL_udf_expr = 1455, /* udf_expr */ YYSYMBOL_sum_expr = 1456, /* sum_expr */ YYSYMBOL_1457_143 = 1457, /* $@143 */ YYSYMBOL_1458_144 = 1458, /* $@144 */ YYSYMBOL_1459_145 = 1459, /* $@145 */ YYSYMBOL_1460_146 = 1460, /* $@146 */ YYSYMBOL_1461_147 = 1461, /* $@147 */ YYSYMBOL_window_func_expr = 1462, /* window_func_expr */ YYSYMBOL_window_func = 1463, /* window_func */ YYSYMBOL_simple_window_func = 1464, /* simple_window_func */ YYSYMBOL_inverse_distribution_function = 1465, /* inverse_distribution_function */ YYSYMBOL_percentile_function = 1466, /* percentile_function */ YYSYMBOL_1467_148 = 1467, /* $@148 */ YYSYMBOL_inverse_distribution_function_def = 1468, /* inverse_distribution_function_def */ YYSYMBOL_order_by_single_element_list = 1469, /* order_by_single_element_list */ YYSYMBOL_window_name = 1470, /* window_name */ YYSYMBOL_variable = 1471, /* variable */ YYSYMBOL_1472_149 = 1472, /* $@149 */ YYSYMBOL_variable_aux = 1473, /* variable_aux */ YYSYMBOL_opt_distinct = 1474, /* opt_distinct */ YYSYMBOL_opt_gconcat_separator = 1475, /* opt_gconcat_separator */ YYSYMBOL_opt_gorder_clause = 1476, /* opt_gorder_clause */ YYSYMBOL_gorder_list = 1477, /* gorder_list */ YYSYMBOL_opt_glimit_clause = 1478, /* opt_glimit_clause */ YYSYMBOL_glimit_clause = 1479, /* glimit_clause */ YYSYMBOL_glimit_options = 1480, /* glimit_options */ YYSYMBOL_in_sum_expr = 1481, /* in_sum_expr */ YYSYMBOL_1482_150 = 1482, /* $@150 */ YYSYMBOL_cast_type = 1483, /* cast_type */ YYSYMBOL_cast_type_numeric = 1484, /* cast_type_numeric */ YYSYMBOL_cast_type_temporal = 1485, /* cast_type_temporal */ YYSYMBOL_opt_expr_list = 1486, /* opt_expr_list */ YYSYMBOL_expr_list = 1487, /* expr_list */ YYSYMBOL_ident_list_arg = 1488, /* ident_list_arg */ YYSYMBOL_ident_list = 1489, /* ident_list */ YYSYMBOL_when_list = 1490, /* when_list */ YYSYMBOL_when_list_opt_else = 1491, /* when_list_opt_else */ YYSYMBOL_table_ref = 1492, /* table_ref */ YYSYMBOL_json_text_literal = 1493, /* json_text_literal */ YYSYMBOL_json_text_literal_or_num = 1494, /* json_text_literal_or_num */ YYSYMBOL_join_table_list = 1495, /* join_table_list */ YYSYMBOL_json_table_columns_clause = 1496, /* json_table_columns_clause */ YYSYMBOL_json_table_columns_list = 1497, /* json_table_columns_list */ YYSYMBOL_json_table_column = 1498, /* json_table_column */ YYSYMBOL_1499_151 = 1499, /* $@151 */ YYSYMBOL_1500_152 = 1500, /* $@152 */ YYSYMBOL_json_table_column_type = 1501, /* json_table_column_type */ YYSYMBOL_json_table_field_type = 1502, /* json_table_field_type */ YYSYMBOL_json_opt_on_empty_or_error = 1503, /* json_opt_on_empty_or_error */ YYSYMBOL_json_on_response = 1504, /* json_on_response */ YYSYMBOL_json_on_error_response = 1505, /* json_on_error_response */ YYSYMBOL_json_on_empty_response = 1506, /* json_on_empty_response */ YYSYMBOL_table_function = 1507, /* table_function */ YYSYMBOL_1508_153 = 1508, /* $@153 */ YYSYMBOL_1509_154 = 1509, /* $@154 */ YYSYMBOL_esc_table_ref = 1510, /* esc_table_ref */ YYSYMBOL_derived_table_list = 1511, /* derived_table_list */ YYSYMBOL_join_table = 1512, /* join_table */ YYSYMBOL_1513_155 = 1513, /* $@155 */ YYSYMBOL_1514_156 = 1514, /* $@156 */ YYSYMBOL_1515_157 = 1515, /* $@157 */ YYSYMBOL_1516_158 = 1516, /* $@158 */ YYSYMBOL_1517_159 = 1517, /* $@159 */ YYSYMBOL_1518_160 = 1518, /* $@160 */ YYSYMBOL_inner_join = 1519, /* inner_join */ YYSYMBOL_normal_join = 1520, /* normal_join */ YYSYMBOL_opt_use_partition = 1521, /* opt_use_partition */ YYSYMBOL_use_partition = 1522, /* use_partition */ YYSYMBOL_table_factor = 1523, /* table_factor */ YYSYMBOL_table_primary_ident_opt_parens = 1524, /* table_primary_ident_opt_parens */ YYSYMBOL_table_primary_derived_opt_parens = 1525, /* table_primary_derived_opt_parens */ YYSYMBOL_table_reference_list_parens = 1526, /* table_reference_list_parens */ YYSYMBOL_nested_table_reference_list = 1527, /* nested_table_reference_list */ YYSYMBOL_join_table_parens = 1528, /* join_table_parens */ YYSYMBOL_table_primary_ident = 1529, /* table_primary_ident */ YYSYMBOL_table_primary_derived = 1530, /* table_primary_derived */ YYSYMBOL_opt_outer = 1531, /* opt_outer */ YYSYMBOL_index_hint_clause = 1532, /* index_hint_clause */ YYSYMBOL_index_hint_type = 1533, /* index_hint_type */ YYSYMBOL_index_hint_definition = 1534, /* index_hint_definition */ YYSYMBOL_1535_161 = 1535, /* $@161 */ YYSYMBOL_1536_162 = 1536, /* $@162 */ YYSYMBOL_index_hints_list = 1537, /* index_hints_list */ YYSYMBOL_opt_index_hints_list = 1538, /* opt_index_hints_list */ YYSYMBOL_1539_163 = 1539, /* $@163 */ YYSYMBOL_opt_key_definition = 1540, /* opt_key_definition */ YYSYMBOL_1541_164 = 1541, /* $@164 */ YYSYMBOL_opt_key_usage_list = 1542, /* opt_key_usage_list */ YYSYMBOL_key_usage_element = 1543, /* key_usage_element */ YYSYMBOL_key_usage_list = 1544, /* key_usage_list */ YYSYMBOL_using_list = 1545, /* using_list */ YYSYMBOL_interval = 1546, /* interval */ YYSYMBOL_interval_time_stamp = 1547, /* interval_time_stamp */ YYSYMBOL_date_time_type = 1548, /* date_time_type */ YYSYMBOL_table_alias = 1549, /* table_alias */ YYSYMBOL_opt_table_alias_clause = 1550, /* opt_table_alias_clause */ YYSYMBOL_table_alias_clause = 1551, /* table_alias_clause */ YYSYMBOL_opt_all = 1552, /* opt_all */ YYSYMBOL_opt_where_clause = 1553, /* opt_where_clause */ YYSYMBOL_1554_165 = 1554, /* $@165 */ YYSYMBOL_opt_having_clause = 1555, /* opt_having_clause */ YYSYMBOL_1556_166 = 1556, /* $@166 */ YYSYMBOL_opt_group_clause = 1557, /* opt_group_clause */ YYSYMBOL_group_list = 1558, /* group_list */ YYSYMBOL_olap_opt = 1559, /* olap_opt */ YYSYMBOL_opt_window_clause = 1560, /* opt_window_clause */ YYSYMBOL_window_def_list = 1561, /* window_def_list */ YYSYMBOL_window_def = 1562, /* window_def */ YYSYMBOL_window_spec = 1563, /* window_spec */ YYSYMBOL_1564_167 = 1564, /* $@167 */ YYSYMBOL_opt_window_ref = 1565, /* opt_window_ref */ YYSYMBOL_opt_window_partition_clause = 1566, /* opt_window_partition_clause */ YYSYMBOL_opt_window_order_clause = 1567, /* opt_window_order_clause */ YYSYMBOL_opt_window_frame_clause = 1568, /* opt_window_frame_clause */ YYSYMBOL_window_frame_units = 1569, /* window_frame_units */ YYSYMBOL_window_frame_extent = 1570, /* window_frame_extent */ YYSYMBOL_window_frame_start = 1571, /* window_frame_start */ YYSYMBOL_window_frame_bound = 1572, /* window_frame_bound */ YYSYMBOL_opt_window_frame_exclusion = 1573, /* opt_window_frame_exclusion */ YYSYMBOL_alter_order_clause = 1574, /* alter_order_clause */ YYSYMBOL_alter_order_list = 1575, /* alter_order_list */ YYSYMBOL_alter_order_item = 1576, /* alter_order_item */ YYSYMBOL_opt_order_clause = 1577, /* opt_order_clause */ YYSYMBOL_order_clause = 1578, /* order_clause */ YYSYMBOL_1579_168 = 1579, /* $@168 */ YYSYMBOL_order_list = 1580, /* order_list */ YYSYMBOL_order_dir = 1581, /* order_dir */ YYSYMBOL_opt_limit_clause = 1582, /* opt_limit_clause */ YYSYMBOL_limit_clause = 1583, /* limit_clause */ YYSYMBOL_fetch_first_clause = 1584, /* fetch_first_clause */ YYSYMBOL_first_or_next = 1585, /* first_or_next */ YYSYMBOL_row_or_rows = 1586, /* row_or_rows */ YYSYMBOL_only_or_with_ties = 1587, /* only_or_with_ties */ YYSYMBOL_opt_global_limit_clause = 1588, /* opt_global_limit_clause */ YYSYMBOL_limit_options = 1589, /* limit_options */ YYSYMBOL_limit_option = 1590, /* limit_option */ YYSYMBOL_limit_rows_option = 1591, /* limit_rows_option */ YYSYMBOL_delete_limit_clause = 1592, /* delete_limit_clause */ YYSYMBOL_order_limit_lock = 1593, /* order_limit_lock */ YYSYMBOL_opt_order_limit_lock = 1594, /* opt_order_limit_lock */ YYSYMBOL_query_expression_tail = 1595, /* query_expression_tail */ YYSYMBOL_opt_query_expression_tail = 1596, /* opt_query_expression_tail */ YYSYMBOL_opt_procedure_or_into = 1597, /* opt_procedure_or_into */ YYSYMBOL_order_or_limit = 1598, /* order_or_limit */ YYSYMBOL_opt_plus = 1599, /* opt_plus */ YYSYMBOL_int_num = 1600, /* int_num */ YYSYMBOL_ulong_num = 1601, /* ulong_num */ YYSYMBOL_real_ulong_num = 1602, /* real_ulong_num */ YYSYMBOL_longlong_num = 1603, /* longlong_num */ YYSYMBOL_ulonglong_num = 1604, /* ulonglong_num */ YYSYMBOL_real_ulonglong_num = 1605, /* real_ulonglong_num */ YYSYMBOL_dec_num_error = 1606, /* dec_num_error */ YYSYMBOL_dec_num = 1607, /* dec_num */ YYSYMBOL_choice = 1608, /* choice */ YYSYMBOL_bool = 1609, /* bool */ YYSYMBOL_procedure_clause = 1610, /* procedure_clause */ YYSYMBOL_1611_169 = 1611, /* $@169 */ YYSYMBOL_procedure_list = 1612, /* procedure_list */ YYSYMBOL_procedure_list2 = 1613, /* procedure_list2 */ YYSYMBOL_procedure_item = 1614, /* procedure_item */ YYSYMBOL_select_var_list_init = 1615, /* select_var_list_init */ YYSYMBOL_1616_170 = 1616, /* $@170 */ YYSYMBOL_select_var_list = 1617, /* select_var_list */ YYSYMBOL_select_var_ident = 1618, /* select_var_ident */ YYSYMBOL_select_outvar = 1619, /* select_outvar */ YYSYMBOL_into = 1620, /* into */ YYSYMBOL_into_destination = 1621, /* into_destination */ YYSYMBOL_1622_171 = 1622, /* $@171 */ YYSYMBOL_1623_172 = 1623, /* $@172 */ YYSYMBOL_do = 1624, /* do */ YYSYMBOL_1625_173 = 1625, /* $@173 */ YYSYMBOL_drop = 1626, /* drop */ YYSYMBOL_1627_174 = 1627, /* $@174 */ YYSYMBOL_1628_175 = 1628, /* $@175 */ YYSYMBOL_1629_176 = 1629, /* $@176 */ YYSYMBOL_1630_177 = 1630, /* $@177 */ YYSYMBOL_table_list = 1631, /* table_list */ YYSYMBOL_table_name = 1632, /* table_name */ YYSYMBOL_table_name_with_opt_use_partition = 1633, /* table_name_with_opt_use_partition */ YYSYMBOL_table_alias_ref_list = 1634, /* table_alias_ref_list */ YYSYMBOL_table_alias_ref = 1635, /* table_alias_ref */ YYSYMBOL_opt_if_exists_table_element = 1636, /* opt_if_exists_table_element */ YYSYMBOL_opt_if_exists = 1637, /* opt_if_exists */ YYSYMBOL_opt_temporary = 1638, /* opt_temporary */ YYSYMBOL_insert = 1639, /* insert */ YYSYMBOL_1640_178 = 1640, /* $@178 */ YYSYMBOL_1641_179 = 1641, /* $@179 */ YYSYMBOL_replace = 1642, /* replace */ YYSYMBOL_1643_180 = 1643, /* $@180 */ YYSYMBOL_1644_181 = 1644, /* $@181 */ YYSYMBOL_insert_start = 1645, /* insert_start */ YYSYMBOL_stmt_end = 1646, /* stmt_end */ YYSYMBOL_insert_lock_option = 1647, /* insert_lock_option */ YYSYMBOL_replace_lock_option = 1648, /* replace_lock_option */ YYSYMBOL_insert_replace_option = 1649, /* insert_replace_option */ YYSYMBOL_opt_into = 1650, /* opt_into */ YYSYMBOL_insert_table = 1651, /* insert_table */ YYSYMBOL_1652_182 = 1652, /* $@182 */ YYSYMBOL_insert_field_spec = 1653, /* insert_field_spec */ YYSYMBOL_1654_183 = 1654, /* $@183 */ YYSYMBOL_insert_field_list = 1655, /* insert_field_list */ YYSYMBOL_opt_fields = 1656, /* opt_fields */ YYSYMBOL_fields = 1657, /* fields */ YYSYMBOL_insert_values = 1658, /* insert_values */ YYSYMBOL_values_list = 1659, /* values_list */ YYSYMBOL_ident_eq_list = 1660, /* ident_eq_list */ YYSYMBOL_ident_eq_value = 1661, /* ident_eq_value */ YYSYMBOL_equal = 1662, /* equal */ YYSYMBOL_opt_equal = 1663, /* opt_equal */ YYSYMBOL_opt_with = 1664, /* opt_with */ YYSYMBOL_opt_by = 1665, /* opt_by */ YYSYMBOL_no_braces = 1666, /* no_braces */ YYSYMBOL_1667_184 = 1667, /* $@184 */ YYSYMBOL_no_braces_with_names = 1668, /* no_braces_with_names */ YYSYMBOL_1669_185 = 1669, /* $@185 */ YYSYMBOL_opt_values = 1670, /* opt_values */ YYSYMBOL_opt_values_with_names = 1671, /* opt_values_with_names */ YYSYMBOL_values = 1672, /* values */ YYSYMBOL_values_with_names = 1673, /* values_with_names */ YYSYMBOL_expr_or_ignore = 1674, /* expr_or_ignore */ YYSYMBOL_expr_or_ignore_or_default = 1675, /* expr_or_ignore_or_default */ YYSYMBOL_opt_insert_update = 1676, /* opt_insert_update */ YYSYMBOL_1677_186 = 1677, /* $@186 */ YYSYMBOL_1678_187 = 1678, /* $@187 */ YYSYMBOL_update_table_list = 1679, /* update_table_list */ YYSYMBOL_update = 1680, /* update */ YYSYMBOL_1681_188 = 1681, /* $@188 */ YYSYMBOL_1682_189 = 1682, /* $@189 */ YYSYMBOL_1683_190 = 1683, /* $@190 */ YYSYMBOL_update_list = 1684, /* update_list */ YYSYMBOL_update_elem = 1685, /* update_elem */ YYSYMBOL_insert_update_list = 1686, /* insert_update_list */ YYSYMBOL_insert_update_elem = 1687, /* insert_update_elem */ YYSYMBOL_opt_low_priority = 1688, /* opt_low_priority */ YYSYMBOL_delete = 1689, /* delete */ YYSYMBOL_1690_191 = 1690, /* $@191 */ YYSYMBOL_opt_delete_system_time = 1691, /* opt_delete_system_time */ YYSYMBOL_delete_part2 = 1692, /* delete_part2 */ YYSYMBOL_1693_192 = 1693, /* $@192 */ YYSYMBOL_delete_single_table = 1694, /* delete_single_table */ YYSYMBOL_delete_single_table_for_period = 1695, /* delete_single_table_for_period */ YYSYMBOL_single_multi = 1696, /* single_multi */ YYSYMBOL_1697_193 = 1697, /* $@193 */ YYSYMBOL_1698_194 = 1698, /* $@194 */ YYSYMBOL_1699_195 = 1699, /* $@195 */ YYSYMBOL_1700_196 = 1700, /* $@196 */ YYSYMBOL_1701_197 = 1701, /* $@197 */ YYSYMBOL_opt_returning = 1702, /* opt_returning */ YYSYMBOL_1703_198 = 1703, /* $@198 */ YYSYMBOL_opt_wild = 1704, /* opt_wild */ YYSYMBOL_opt_delete_options = 1705, /* opt_delete_options */ YYSYMBOL_opt_delete_option = 1706, /* opt_delete_option */ YYSYMBOL_truncate = 1707, /* truncate */ YYSYMBOL_1708_199 = 1708, /* $@199 */ YYSYMBOL_1709_200 = 1709, /* $@200 */ YYSYMBOL_opt_table_sym = 1710, /* opt_table_sym */ YYSYMBOL_opt_profile_defs = 1711, /* opt_profile_defs */ YYSYMBOL_profile_defs = 1712, /* profile_defs */ YYSYMBOL_profile_def = 1713, /* profile_def */ YYSYMBOL_opt_profile_args = 1714, /* opt_profile_args */ YYSYMBOL_show = 1715, /* show */ YYSYMBOL_1716_201 = 1716, /* $@201 */ YYSYMBOL_show_param = 1717, /* show_param */ YYSYMBOL_1718_202 = 1718, /* $@202 */ YYSYMBOL_1719_203 = 1719, /* $@203 */ YYSYMBOL_show_engine_param = 1720, /* show_engine_param */ YYSYMBOL_master_or_binary = 1721, /* master_or_binary */ YYSYMBOL_opt_storage = 1722, /* opt_storage */ YYSYMBOL_opt_db = 1723, /* opt_db */ YYSYMBOL_opt_full = 1724, /* opt_full */ YYSYMBOL_from_or_in = 1725, /* from_or_in */ YYSYMBOL_binlog_in = 1726, /* binlog_in */ YYSYMBOL_binlog_from = 1727, /* binlog_from */ YYSYMBOL_wild_and_where = 1728, /* wild_and_where */ YYSYMBOL_describe = 1729, /* describe */ YYSYMBOL_1730_204 = 1730, /* $@204 */ YYSYMBOL_1731_205 = 1731, /* $@205 */ YYSYMBOL_explainable_command = 1732, /* explainable_command */ YYSYMBOL_describe_command = 1733, /* describe_command */ YYSYMBOL_analyze_stmt_command = 1734, /* analyze_stmt_command */ YYSYMBOL_opt_extended_describe = 1735, /* opt_extended_describe */ YYSYMBOL_opt_format_json = 1736, /* opt_format_json */ YYSYMBOL_opt_describe_column = 1737, /* opt_describe_column */ YYSYMBOL_explain_for_connection = 1738, /* explain_for_connection */ YYSYMBOL_flush = 1739, /* flush */ YYSYMBOL_1740_206 = 1740, /* $@206 */ YYSYMBOL_flush_options = 1741, /* flush_options */ YYSYMBOL_1742_207 = 1742, /* $@207 */ YYSYMBOL_opt_flush_lock = 1743, /* opt_flush_lock */ YYSYMBOL_flush_lock = 1744, /* flush_lock */ YYSYMBOL_1745_208 = 1745, /* $@208 */ YYSYMBOL_flush_options_list = 1746, /* flush_options_list */ YYSYMBOL_flush_option = 1747, /* flush_option */ YYSYMBOL_opt_table_list = 1748, /* opt_table_list */ YYSYMBOL_backup = 1749, /* backup */ YYSYMBOL_backup_statements = 1750, /* backup_statements */ YYSYMBOL_1751_209 = 1751, /* $@209 */ YYSYMBOL_opt_delete_gtid_domain = 1752, /* opt_delete_gtid_domain */ YYSYMBOL_delete_domain_id_list = 1753, /* delete_domain_id_list */ YYSYMBOL_delete_domain_id = 1754, /* delete_domain_id */ YYSYMBOL_optional_flush_tables_arguments = 1755, /* optional_flush_tables_arguments */ YYSYMBOL_reset = 1756, /* reset */ YYSYMBOL_1757_210 = 1757, /* $@210 */ YYSYMBOL_reset_options = 1758, /* reset_options */ YYSYMBOL_reset_option = 1759, /* reset_option */ YYSYMBOL_1760_211 = 1760, /* $@211 */ YYSYMBOL_1761_212 = 1761, /* $@212 */ YYSYMBOL_slave_reset_options = 1762, /* slave_reset_options */ YYSYMBOL_master_reset_options = 1763, /* master_reset_options */ YYSYMBOL_purge = 1764, /* purge */ YYSYMBOL_1765_213 = 1765, /* $@213 */ YYSYMBOL_kill = 1766, /* kill */ YYSYMBOL_1767_214 = 1767, /* $@214 */ YYSYMBOL_kill_type = 1768, /* kill_type */ YYSYMBOL_kill_option = 1769, /* kill_option */ YYSYMBOL_opt_connection = 1770, /* opt_connection */ YYSYMBOL_kill_expr = 1771, /* kill_expr */ YYSYMBOL_shutdown = 1772, /* shutdown */ YYSYMBOL_1773_215 = 1773, /* $@215 */ YYSYMBOL_shutdown_option = 1774, /* shutdown_option */ YYSYMBOL_use = 1775, /* use */ YYSYMBOL_load = 1776, /* load */ YYSYMBOL_1777_216 = 1777, /* $@216 */ YYSYMBOL_1778_217 = 1778, /* $@217 */ YYSYMBOL_1779_218 = 1779, /* $@218 */ YYSYMBOL_1780_219 = 1780, /* $@219 */ YYSYMBOL_data_or_xml = 1781, /* data_or_xml */ YYSYMBOL_opt_local = 1782, /* opt_local */ YYSYMBOL_load_data_lock = 1783, /* load_data_lock */ YYSYMBOL_opt_duplicate = 1784, /* opt_duplicate */ YYSYMBOL_opt_field_term = 1785, /* opt_field_term */ YYSYMBOL_field_term_list = 1786, /* field_term_list */ YYSYMBOL_field_term = 1787, /* field_term */ YYSYMBOL_opt_line_term = 1788, /* opt_line_term */ YYSYMBOL_line_term_list = 1789, /* line_term_list */ YYSYMBOL_line_term = 1790, /* line_term */ YYSYMBOL_opt_xml_rows_identified_by = 1791, /* opt_xml_rows_identified_by */ YYSYMBOL_opt_ignore_lines = 1792, /* opt_ignore_lines */ YYSYMBOL_lines_or_rows = 1793, /* lines_or_rows */ YYSYMBOL_opt_field_or_var_spec = 1794, /* opt_field_or_var_spec */ YYSYMBOL_fields_or_vars = 1795, /* fields_or_vars */ YYSYMBOL_field_or_var = 1796, /* field_or_var */ YYSYMBOL_opt_load_data_set_spec = 1797, /* opt_load_data_set_spec */ YYSYMBOL_load_data_set_list = 1798, /* load_data_set_list */ YYSYMBOL_load_data_set_elem = 1799, /* load_data_set_elem */ YYSYMBOL_text_literal = 1800, /* text_literal */ YYSYMBOL_text_string = 1801, /* text_string */ YYSYMBOL_hex_or_bin_String = 1802, /* hex_or_bin_String */ YYSYMBOL_param_marker = 1803, /* param_marker */ YYSYMBOL_signed_literal = 1804, /* signed_literal */ YYSYMBOL_literal = 1805, /* literal */ YYSYMBOL_NUM_literal = 1806, /* NUM_literal */ YYSYMBOL_temporal_literal = 1807, /* temporal_literal */ YYSYMBOL_with_clause = 1808, /* with_clause */ YYSYMBOL_1809_220 = 1809, /* $@220 */ YYSYMBOL_opt_recursive = 1810, /* opt_recursive */ YYSYMBOL_with_list = 1811, /* with_list */ YYSYMBOL_with_list_element = 1812, /* with_list_element */ YYSYMBOL_opt_cycle = 1813, /* opt_cycle */ YYSYMBOL_1814_221 = 1814, /* $@221 */ YYSYMBOL_opt_with_column_list = 1815, /* opt_with_column_list */ YYSYMBOL_with_column_list = 1816, /* with_column_list */ YYSYMBOL_ident_sys_alloc = 1817, /* ident_sys_alloc */ YYSYMBOL_comma_separated_ident_list = 1818, /* comma_separated_ident_list */ YYSYMBOL_with_element_head = 1819, /* with_element_head */ YYSYMBOL_insert_ident = 1820, /* insert_ident */ YYSYMBOL_table_wild = 1821, /* table_wild */ YYSYMBOL_select_sublist_qualified_asterisk = 1822, /* select_sublist_qualified_asterisk */ YYSYMBOL_order_ident = 1823, /* order_ident */ YYSYMBOL_simple_ident = 1824, /* simple_ident */ YYSYMBOL_simple_ident_nospvar = 1825, /* simple_ident_nospvar */ YYSYMBOL_field_ident = 1826, /* field_ident */ YYSYMBOL_table_ident = 1827, /* table_ident */ YYSYMBOL_table_ident_opt_wild = 1828, /* table_ident_opt_wild */ YYSYMBOL_table_ident_nodb = 1829, /* table_ident_nodb */ YYSYMBOL_IDENT_cli = 1830, /* IDENT_cli */ YYSYMBOL_ident_cli = 1831, /* ident_cli */ YYSYMBOL_IDENT_sys = 1832, /* IDENT_sys */ YYSYMBOL_ident_cli_func = 1833, /* ident_cli_func */ YYSYMBOL_ident_func = 1834, /* ident_func */ YYSYMBOL_TEXT_STRING_sys = 1835, /* TEXT_STRING_sys */ YYSYMBOL_TEXT_STRING_literal = 1836, /* TEXT_STRING_literal */ YYSYMBOL_TEXT_STRING_filesystem = 1837, /* TEXT_STRING_filesystem */ YYSYMBOL_ident_table_alias = 1838, /* ident_table_alias */ YYSYMBOL_ident_cli_set_usual_case = 1839, /* ident_cli_set_usual_case */ YYSYMBOL_ident_sysvar_name = 1840, /* ident_sysvar_name */ YYSYMBOL_ident = 1841, /* ident */ YYSYMBOL_label_ident = 1842, /* label_ident */ YYSYMBOL_ident_or_text = 1843, /* ident_or_text */ YYSYMBOL_user_maybe_role = 1844, /* user_maybe_role */ YYSYMBOL_user_or_role = 1845, /* user_or_role */ YYSYMBOL_user = 1846, /* user */ YYSYMBOL_keyword_table_alias = 1847, /* keyword_table_alias */ YYSYMBOL_keyword_ident = 1848, /* keyword_ident */ YYSYMBOL_keyword_sysvar_name = 1849, /* keyword_sysvar_name */ YYSYMBOL_keyword_set_usual_case = 1850, /* keyword_set_usual_case */ YYSYMBOL_non_reserved_keyword_udt = 1851, /* non_reserved_keyword_udt */ YYSYMBOL_keyword_sp_var_not_label = 1852, /* keyword_sp_var_not_label */ YYSYMBOL_keyword_sp_head = 1853, /* keyword_sp_head */ YYSYMBOL_keyword_verb_clause = 1854, /* keyword_verb_clause */ YYSYMBOL_keyword_set_special_case = 1855, /* keyword_set_special_case */ YYSYMBOL_keyword_sysvar_type = 1856, /* keyword_sysvar_type */ YYSYMBOL_keyword_data_type = 1857, /* keyword_data_type */ YYSYMBOL_keyword_cast_type = 1858, /* keyword_cast_type */ YYSYMBOL_keyword_func_sp_var_and_label = 1859, /* keyword_func_sp_var_and_label */ YYSYMBOL_keyword_func_sp_var_not_label = 1860, /* keyword_func_sp_var_not_label */ YYSYMBOL_keyword_sp_var_and_label = 1861, /* keyword_sp_var_and_label */ YYSYMBOL_reserved_keyword_udt_not_param_type = 1862, /* reserved_keyword_udt_not_param_type */ YYSYMBOL_set = 1863, /* set */ YYSYMBOL_1864_222 = 1864, /* $@222 */ YYSYMBOL_set_param = 1865, /* set_param */ YYSYMBOL_1866_223 = 1866, /* $@223 */ YYSYMBOL_1867_224 = 1867, /* $@224 */ YYSYMBOL_1868_225 = 1868, /* $@225 */ YYSYMBOL_set_stmt_option_list = 1869, /* set_stmt_option_list */ YYSYMBOL_start_option_value_list_following_option_type = 1870, /* start_option_value_list_following_option_type */ YYSYMBOL_1871_226 = 1871, /* $@226 */ YYSYMBOL_option_value_list = 1872, /* option_value_list */ YYSYMBOL_option_value = 1873, /* option_value */ YYSYMBOL_1874_227 = 1874, /* $@227 */ YYSYMBOL_option_type = 1875, /* option_type */ YYSYMBOL_opt_var_type = 1876, /* opt_var_type */ YYSYMBOL_opt_var_ident_type = 1877, /* opt_var_ident_type */ YYSYMBOL_set_stmt_option = 1878, /* set_stmt_option */ YYSYMBOL_1879_228 = 1879, /* $@228 */ YYSYMBOL_1880_229 = 1880, /* $@229 */ YYSYMBOL_1881_230 = 1881, /* $@230 */ YYSYMBOL_option_value_following_option_type = 1882, /* option_value_following_option_type */ YYSYMBOL_1883_231 = 1883, /* $@231 */ YYSYMBOL_1884_232 = 1884, /* $@232 */ YYSYMBOL_1885_233 = 1885, /* $@233 */ YYSYMBOL_option_value_no_option_type = 1886, /* option_value_no_option_type */ YYSYMBOL_1887_234 = 1887, /* $@234 */ YYSYMBOL_1888_235 = 1888, /* $@235 */ YYSYMBOL_1889_236 = 1889, /* $@236 */ YYSYMBOL_1890_237 = 1890, /* $@237 */ YYSYMBOL_1891_238 = 1891, /* $@238 */ YYSYMBOL_1892_239 = 1892, /* $@239 */ YYSYMBOL_1893_240 = 1893, /* $@240 */ YYSYMBOL_1894_241 = 1894, /* $@241 */ YYSYMBOL_1895_242 = 1895, /* $@242 */ YYSYMBOL_1896_243 = 1896, /* $@243 */ YYSYMBOL_transaction_characteristics = 1897, /* transaction_characteristics */ YYSYMBOL_transaction_access_mode = 1898, /* transaction_access_mode */ YYSYMBOL_isolation_level = 1899, /* isolation_level */ YYSYMBOL_transaction_access_mode_types = 1900, /* transaction_access_mode_types */ YYSYMBOL_isolation_types = 1901, /* isolation_types */ YYSYMBOL_text_or_password = 1902, /* text_or_password */ YYSYMBOL_set_expr_or_default = 1903, /* set_expr_or_default */ YYSYMBOL_set_expr_misc = 1904, /* set_expr_misc */ YYSYMBOL_lock = 1905, /* lock */ YYSYMBOL_1906_244 = 1906, /* $@244 */ YYSYMBOL_opt_lock_wait_timeout = 1907, /* opt_lock_wait_timeout */ YYSYMBOL_table_or_tables = 1908, /* table_or_tables */ YYSYMBOL_table_lock_list = 1909, /* table_lock_list */ YYSYMBOL_table_lock = 1910, /* table_lock */ YYSYMBOL_lock_option = 1911, /* lock_option */ YYSYMBOL_unlock = 1912, /* unlock */ YYSYMBOL_1913_245 = 1913, /* $@245 */ YYSYMBOL_handler = 1914, /* handler */ YYSYMBOL_1915_246 = 1915, /* $@246 */ YYSYMBOL_handler_tail = 1916, /* handler_tail */ YYSYMBOL_1917_247 = 1917, /* $@247 */ YYSYMBOL_handler_read_or_scan = 1918, /* handler_read_or_scan */ YYSYMBOL_handler_scan_function = 1919, /* handler_scan_function */ YYSYMBOL_handler_rkey_function = 1920, /* handler_rkey_function */ YYSYMBOL_1921_248 = 1921, /* $@248 */ YYSYMBOL_handler_rkey_mode = 1922, /* handler_rkey_mode */ YYSYMBOL_revoke = 1923, /* revoke */ YYSYMBOL_revoke_command = 1924, /* revoke_command */ YYSYMBOL_admin_option_for_role = 1925, /* admin_option_for_role */ YYSYMBOL_grant = 1926, /* grant */ YYSYMBOL_grant_command = 1927, /* grant_command */ YYSYMBOL_opt_with_admin = 1928, /* opt_with_admin */ YYSYMBOL_opt_with_admin_option = 1929, /* opt_with_admin_option */ YYSYMBOL_role_list = 1930, /* role_list */ YYSYMBOL_current_role = 1931, /* current_role */ YYSYMBOL_role_name = 1932, /* role_name */ YYSYMBOL_grant_role = 1933, /* grant_role */ YYSYMBOL_opt_table = 1934, /* opt_table */ YYSYMBOL_grant_privileges = 1935, /* grant_privileges */ YYSYMBOL_opt_privileges = 1936, /* opt_privileges */ YYSYMBOL_object_privilege_list = 1937, /* object_privilege_list */ YYSYMBOL_column_list_privilege = 1938, /* column_list_privilege */ YYSYMBOL_column_privilege = 1939, /* column_privilege */ YYSYMBOL_object_privilege = 1940, /* object_privilege */ YYSYMBOL_opt_and = 1941, /* opt_and */ YYSYMBOL_require_list = 1942, /* require_list */ YYSYMBOL_require_list_element = 1943, /* require_list_element */ YYSYMBOL_grant_ident = 1944, /* grant_ident */ YYSYMBOL_user_list = 1945, /* user_list */ YYSYMBOL_grant_list = 1946, /* grant_list */ YYSYMBOL_user_and_role_list = 1947, /* user_and_role_list */ YYSYMBOL_via_or_with = 1948, /* via_or_with */ YYSYMBOL_using_or_as = 1949, /* using_or_as */ YYSYMBOL_grant_user = 1950, /* grant_user */ YYSYMBOL_auth_expression = 1951, /* auth_expression */ YYSYMBOL_auth_token = 1952, /* auth_token */ YYSYMBOL_opt_auth_str = 1953, /* opt_auth_str */ YYSYMBOL_opt_require_clause = 1954, /* opt_require_clause */ YYSYMBOL_resource_option = 1955, /* resource_option */ YYSYMBOL_resource_option_list = 1956, /* resource_option_list */ YYSYMBOL_opt_resource_options = 1957, /* opt_resource_options */ YYSYMBOL_opt_grant_options = 1958, /* opt_grant_options */ YYSYMBOL_opt_grant_option = 1959, /* opt_grant_option */ YYSYMBOL_grant_option_list = 1960, /* grant_option_list */ YYSYMBOL_grant_option = 1961, /* grant_option */ YYSYMBOL_begin_stmt_mariadb = 1962, /* begin_stmt_mariadb */ YYSYMBOL_1963_249 = 1963, /* $@249 */ YYSYMBOL_compound_statement = 1964, /* compound_statement */ YYSYMBOL_opt_not = 1965, /* opt_not */ YYSYMBOL_opt_work = 1966, /* opt_work */ YYSYMBOL_opt_chain = 1967, /* opt_chain */ YYSYMBOL_opt_release = 1968, /* opt_release */ YYSYMBOL_commit = 1969, /* commit */ YYSYMBOL_rollback = 1970, /* rollback */ YYSYMBOL_savepoint = 1971, /* savepoint */ YYSYMBOL_release = 1972, /* release */ YYSYMBOL_unit_type_decl = 1973, /* unit_type_decl */ YYSYMBOL_union_option = 1974, /* union_option */ YYSYMBOL_query_expression_option = 1975, /* query_expression_option */ YYSYMBOL_definer_opt = 1976, /* definer_opt */ YYSYMBOL_no_definer = 1977, /* no_definer */ YYSYMBOL_definer = 1978, /* definer */ YYSYMBOL_view_algorithm = 1979, /* view_algorithm */ YYSYMBOL_opt_view_suid = 1980, /* opt_view_suid */ YYSYMBOL_view_suid = 1981, /* view_suid */ YYSYMBOL_view_list_opt = 1982, /* view_list_opt */ YYSYMBOL_view_list = 1983, /* view_list */ YYSYMBOL_view_select = 1984, /* view_select */ YYSYMBOL_1985_250 = 1985, /* $@250 */ YYSYMBOL_view_check_option = 1986, /* view_check_option */ YYSYMBOL_trigger_action_order = 1987, /* trigger_action_order */ YYSYMBOL_trigger_follows_precedes_clause = 1988, /* trigger_follows_precedes_clause */ YYSYMBOL_trigger_tail = 1989, /* trigger_tail */ YYSYMBOL_1990_251 = 1990, /* $@251 */ YYSYMBOL_1991_252 = 1991, /* $@252 */ YYSYMBOL_1992_253 = 1992, /* $@253 */ YYSYMBOL_1993_254 = 1993, /* $@254 */ YYSYMBOL_1994_255 = 1994, /* $@255 */ YYSYMBOL_sf_return_type = 1995, /* sf_return_type */ YYSYMBOL_1996_256 = 1996, /* $@256 */ YYSYMBOL_create_package_chistic = 1997, /* create_package_chistic */ YYSYMBOL_create_package_chistics = 1998, /* create_package_chistics */ YYSYMBOL_opt_create_package_chistics = 1999, /* opt_create_package_chistics */ YYSYMBOL_opt_create_package_chistics_init = 2000, /* opt_create_package_chistics_init */ YYSYMBOL_2001_257 = 2001, /* $@257 */ YYSYMBOL_xa = 2002, /* xa */ YYSYMBOL_opt_format_xid = 2003, /* opt_format_xid */ YYSYMBOL_xid = 2004, /* xid */ YYSYMBOL_begin_or_start = 2005, /* begin_or_start */ YYSYMBOL_opt_join_or_resume = 2006, /* opt_join_or_resume */ YYSYMBOL_opt_one_phase = 2007, /* opt_one_phase */ YYSYMBOL_opt_suspend = 2008, /* opt_suspend */ YYSYMBOL_2009_258 = 2009, /* $@258 */ YYSYMBOL_opt_migrate = 2010, /* opt_migrate */ YYSYMBOL_install = 2011, /* install */ YYSYMBOL_uninstall = 2012, /* uninstall */ YYSYMBOL_keep_gcc_happy = 2013, /* keep_gcc_happy */ YYSYMBOL__empty = 2014, /* _empty */ YYSYMBOL_statement = 2015, /* statement */ YYSYMBOL_sp_statement = 2016, /* sp_statement */ YYSYMBOL_sp_if_then_statements = 2017, /* sp_if_then_statements */ YYSYMBOL_sp_case_then_statements = 2018, /* sp_case_then_statements */ YYSYMBOL_sp_tail_is = 2019, /* sp_tail_is */ YYSYMBOL_sp_package_function_body = 2020, /* sp_package_function_body */ YYSYMBOL_sp_package_procedure_body = 2021, /* sp_package_procedure_body */ YYSYMBOL_opt_trailing_sp_name = 2022, /* opt_trailing_sp_name */ YYSYMBOL_opt_package_routine_end_name = 2023, /* opt_package_routine_end_name */ YYSYMBOL_sf_parameters = 2024, /* sf_parameters */ YYSYMBOL_sp_parameters = 2025, /* sp_parameters */ YYSYMBOL_sf_returned_type_clause = 2026, /* sf_returned_type_clause */ YYSYMBOL_package_implementation_item_declaration = 2027, /* package_implementation_item_declaration */ YYSYMBOL_package_implementation_declare_section_list = 2028, /* package_implementation_declare_section_list */ YYSYMBOL_package_implementation_declare_section = 2029, /* package_implementation_declare_section */ YYSYMBOL_package_implementation_executable_section = 2030, /* package_implementation_executable_section */ YYSYMBOL_reserved_keyword_udt_param_type = 2031, /* reserved_keyword_udt_param_type */ YYSYMBOL_reserved_keyword_udt = 2032, /* reserved_keyword_udt */ YYSYMBOL_keyword_sp_block_section = 2033, /* keyword_sp_block_section */ YYSYMBOL_keyword_label = 2034, /* keyword_label */ YYSYMBOL_keyword_sp_decl = 2035, /* keyword_sp_decl */ YYSYMBOL_opt_truncate_table_storage_clause = 2036, /* opt_truncate_table_storage_clause */ YYSYMBOL_ident_for_loop_index = 2037, /* ident_for_loop_index */ YYSYMBOL_row_field_name = 2038, /* row_field_name */ YYSYMBOL_while_body = 2039, /* while_body */ YYSYMBOL_2040_259 = 2040, /* $@259 */ YYSYMBOL_for_loop_statements = 2041, /* for_loop_statements */ YYSYMBOL_sp_label = 2042, /* sp_label */ YYSYMBOL_sp_control_label = 2043, /* sp_control_label */ YYSYMBOL_sp_block_label = 2044, /* sp_block_label */ YYSYMBOL_sp_opt_default = 2045, /* sp_opt_default */ YYSYMBOL_sp_decl_variable_list_anchored = 2046, /* sp_decl_variable_list_anchored */ YYSYMBOL_sp_param_name_and_mode = 2047, /* sp_param_name_and_mode */ YYSYMBOL_sp_param = 2048, /* sp_param */ YYSYMBOL_sp_param_anchored = 2049, /* sp_param_anchored */ YYSYMBOL_sf_c_chistics_and_body_standalone = 2050, /* sf_c_chistics_and_body_standalone */ YYSYMBOL_2051_260 = 2051, /* $@260 */ YYSYMBOL_sp_tail_standalone = 2052, /* sp_tail_standalone */ YYSYMBOL_2053_261 = 2053, /* $@261 */ YYSYMBOL_2054_262 = 2054, /* $@262 */ YYSYMBOL_sp_decls = 2055, /* sp_decls */ YYSYMBOL_sp_decl = 2056, /* sp_decl */ YYSYMBOL_sp_decl_body = 2057, /* sp_decl_body */ YYSYMBOL_2058_263 = 2058, /* $@263 */ YYSYMBOL_sp_proc_stmt_in_returns_clause = 2059, /* sp_proc_stmt_in_returns_clause */ YYSYMBOL_sp_proc_stmt = 2060, /* sp_proc_stmt */ YYSYMBOL_sp_proc_stmt_compound_ok = 2061, /* sp_proc_stmt_compound_ok */ YYSYMBOL_sp_labeled_block = 2062, /* sp_labeled_block */ YYSYMBOL_2063_264 = 2063, /* $@264 */ YYSYMBOL_sp_unlabeled_block = 2064, /* sp_unlabeled_block */ YYSYMBOL_2065_265 = 2065, /* $@265 */ YYSYMBOL_sp_unlabeled_block_not_atomic = 2066, /* sp_unlabeled_block_not_atomic */ YYSYMBOL_2067_266 = 2067, /* $@266 */ YYSYMBOL_package_implementation_declare_section_list1 = 2068, /* package_implementation_declare_section_list1 */ YYSYMBOL_package_implementation_declare_section_list2 = 2069, /* package_implementation_declare_section_list2 */ YYSYMBOL_package_specification_function = 2070, /* package_specification_function */ YYSYMBOL_2071_267 = 2071, /* $@267 */ YYSYMBOL_package_specification_procedure = 2072, /* package_specification_procedure */ YYSYMBOL_2073_268 = 2073, /* $@268 */ YYSYMBOL_package_implementation_routine_definition = 2074, /* package_implementation_routine_definition */ YYSYMBOL_package_implementation_function_body = 2075, /* package_implementation_function_body */ YYSYMBOL_2076_269 = 2076, /* $@269 */ YYSYMBOL_package_implementation_procedure_body = 2077, /* package_implementation_procedure_body */ YYSYMBOL_2078_270 = 2078, /* $@270 */ YYSYMBOL_opt_package_specification_element_list = 2079, /* opt_package_specification_element_list */ YYSYMBOL_package_specification_element_list = 2080, /* package_specification_element_list */ YYSYMBOL_package_specification_element = 2081, /* package_specification_element */ YYSYMBOL_create_routine = 2082, /* create_routine */ YYSYMBOL_2083_271 = 2083, /* $@271 */ YYSYMBOL_2084_272 = 2084, /* $@272 */ YYSYMBOL_2085_273 = 2085, /* $@273 */ YYSYMBOL_2086_274 = 2086, /* $@274 */ YYSYMBOL_2087_275 = 2087, /* $@275 */ YYSYMBOL_2088_276 = 2088 /* $@276 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; /* Second part of user prologue. */ #line 338 "/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 2375 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure and (if available) are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif /* Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants. This workaround can likely be removed in 2023, as HPE has promised support for HP-UX 11.23 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of . */ #ifdef __hpux # undef UINT_LEAST8_MAX # undef UINT_LEAST16_MAX # define UINT_LEAST8_MAX 255 # define UINT_LEAST16_MAX 65535 #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_int16 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* 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_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YY_USE(E) ((void) (E)) #else # define YY_USE(E) /* empty */ #endif /* Suppress an incorrect diagnostic about yylval being uninitialized. */ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ # if __GNUC__ * 100 + __GNUC_MINOR__ < 407 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") # else # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # endif # 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 __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if !defined yyoverflow /* 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 /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* 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 /* 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 */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (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 \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*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, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_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 746 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 113010 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 793 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 1296 /* YYNRULES -- Number of rules. */ #define YYNRULES 3784 /* YYNSTATES -- Number of states. */ #define YYNSTATES 6350 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 1025 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int16 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, 787, 2, 2, 2, 775, 770, 2, 783, 784, 773, 772, 786, 771, 791, 774, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 792, 790, 768, 766, 767, 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, 776, 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, 788, 769, 789, 777, 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, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 778, 779, 780, 781, 782, 785 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 2006, 2006, 2016, 2015, 2040, 2047, 2049, 2053, 2054, 2055, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2123, 2130, 2131, 2136, 2135, 2146, 2152, 2154, 2151, 2163, 2165, 2164, 2174, 2179, 2191, 2190, 2207, 2206, 2216, 2217, 2221, 2225, 2229, 2233, 2237, 2241, 2251, 2256, 2260, 2264, 2268, 2272, 2276, 2281, 2285, 2290, 2318, 2322, 2326, 2331, 2334, 2336, 2337, 2341, 2347, 2349, 2350, 2354, 2360, 2362, 2363, 2367, 2374, 2378, 2393, 2397, 2403, 2409, 2415, 2421, 2429, 2433, 2437, 2449, 2452, 2457, 2479, 2491, 2478, 2514, 2513, 2569, 2576, 2568, 2588, 2595, 2587, 2608, 2614, 2607, 2626, 2632, 2625, 2644, 2643, 2657, 2655, 2671, 2669, 2683, 2682, 2693, 2692, 2702, 2709, 2716, 2716, 2719, 2723, 2724, 2728, 2729, 2733, 2738, 2744, 2750, 2758, 2764, 2770, 2778, 2786, 2794, 2802, 2810, 2818, 2830, 2846, 2846, 2850, 2849, 2861, 2862, 2866, 2871, 2876, 2881, 2886, 2891, 2896, 2904, 2903, 2936, 2935, 2942, 2949, 2950, 2956, 2962, 2972, 2978, 2984, 2986, 2993, 2994, 2998, 3008, 3009, 3017, 3017, 3059, 3068, 3069, 3074, 3075, 3076, 3077, 3081, 3082, 3086, 3087, 3091, 3096, 3105, 3110, 3118, 3119, 3123, 3124, 3129, 3131, 3133, 3135, 3137, 3139, 3141, 3147, 3148, 3152, 3153, 3158, 3157, 3168, 3167, 3178, 3177, 3190, 3192, 3195, 3197, 3201, 3205, 3214, 3219, 3219, 3229, 3230, 3234, 3242, 3244, 3248, 3249, 3253, 3254, 3255, 3260, 3259, 3271, 3275, 3276, 3280, 3281, 3286, 3292, 3298, 3308, 3316, 3321, 3329, 3333, 3342, 3340, 3355, 3365, 3370, 3369, 3383, 3385, 3390, 3400, 3399, 3428, 3429, 3430, 3431, 3436, 3438, 3443, 3458, 3466, 3470, 3490, 3491, 3495, 3499, 3505, 3511, 3517, 3523, 3533, 3538, 3546, 3554, 3559, 3565, 3566, 3572, 3575, 3579, 3587, 3604, 3606, 3624, 3630, 3632, 3634, 3636, 3638, 3640, 3642, 3644, 3646, 3648, 3650, 3652, 3654, 3659, 3667, 3683, 3684, 3689, 3695, 3704, 3711, 3720, 3729, 3734, 3748, 3750, 3752, 3761, 3766, 3773, 3782, 3791, 3793, 3795, 3797, 3799, 3801, 3803, 3805, 3807, 3809, 3811, 3813, 3815, 3817, 3822, 3823, 3831, 3843, 3859, 3858, 3869, 3869, 3891, 3892, 3897, 3896, 3904, 3915, 3920, 3927, 3926, 3934, 3933, 3943, 3948, 3954, 3953, 3960, 3959, 3969, 3977, 3985, 3994, 3994, 4027, 4037, 4036, 4067, 4066, 4096, 4102, 4110, 4111, 4115, 4116, 4117, 4121, 4129, 4134, 4139, 4147, 4148, 4156, 4174, 4190, 4210, 4215, 4209, 4227, 4229, 4230, 4231, 4236, 4235, 4306, 4305, 4312, 4317, 4318, 4322, 4323, 4328, 4327, 4343, 4342, 4357, 4367, 4371, 4372, 4377, 4378, 4382, 4390, 4395, 4402, 4411, 4425, 4433, 4442, 4441, 4449, 4448, 4456, 4461, 4468, 4455, 4478, 4477, 4488, 4487, 4497, 4496, 4506, 4513, 4505, 4528, 4527, 4539, 4541, 4546, 4548, 4550, 4556, 4555, 4558, 4559, 4573, 4574, 4578, 4579, 4589, 4594, 4605, 4642, 4643, 4648, 4647, 4663, 4678, 4677, 4699, 4698, 4704, 4712, 4711, 4714, 4716, 4719, 4718, 4727, 4730, 4729, 4738, 4739, 4745, 4746, 4763, 4764, 4768, 4769, 4773, 4787, 4797, 4808, 4817, 4818, 4831, 4833, 4832, 4837, 4835, 4846, 4847, 4851, 4865, 4877, 4878, 4891, 4900, 4922, 4923, 4926, 4928, 4933, 4932, 4956, 4968, 4984, 4983, 4998, 4997, 5011, 5018, 5025, 5045, 5063, 5067, 5094, 5106, 5107, 5112, 5121, 5111, 5146, 5147, 5151, 5162, 5181, 5194, 5220, 5221, 5226, 5225, 5262, 5271, 5272, 5276, 5277, 5281, 5282, 5290, 5291, 5295, 5296, 5300, 5302, 5308, 5314, 5316, 5318, 5320, 5322, 5324, 5329, 5330, 5330, 5339, 5351, 5354, 5362, 5365, 5375, 5376, 5380, 5381, 5385, 5386, 5390, 5391, 5392, 5401, 5404, 5411, 5415, 5422, 5426, 5432, 5434, 5438, 5439, 5443, 5444, 5445, 5449, 5464, 5469, 5474, 5479, 5484, 5489, 5494, 5509, 5515, 5530, 5535, 5550, 5556, 5574, 5579, 5584, 5589, 5594, 5599, 5605, 5604, 5630, 5631, 5632, 5637, 5642, 5647, 5649, 5651, 5653, 5659, 5664, 5669, 5673, 5678, 5682, 5689, 5696, 5701, 5709, 5710, 5721, 5722, 5725, 5727, 5731, 5750, 5759, 5769, 5779, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5800, 5801, 5802, 5806, 5807, 5808, 5809, 5814, 5821, 5828, 5829, 5833, 5834, 5835, 5836, 5837, 5841, 5843, 5854, 5853, 5861, 5860, 5868, 5867, 5875, 5874, 5884, 5881, 5892, 5890, 5899, 5898, 5917, 5925, 5933, 5941, 5942, 5946, 5956, 5957, 5961, 5962, 5966, 5971, 5970, 6009, 6008, 6024, 6023, 6034, 6035, 6039, 6040, 6044, 6045, 6049, 6050, 6054, 6055, 6056, 6057, 6064, 6063, 6071, 6077, 6086, 6087, 6092, 6095, 6099, 6103, 6110, 6111, 6115, 6116, 6120, 6126, 6132, 6133, 6141, 6140, 6162, 6163, 6173, 6181, 6193, 6193, 6196, 6197, 6204, 6211, 6215, 6223, 6224, 6225, 6229, 6230, 6231, 6232, 6233, 6234, 6242, 6246, 6247, 6261, 6265, 6269, 6273, 6275, 6282, 6284, 6290, 6291, 6292, 6293, 6297, 6301, 6306, 6310, 6314, 6318, 6323, 6327, 6334, 6347, 6348, 6355, 6362, 6370, 6374, 6378, 6382, 6386, 6390, 6394, 6398, 6400, 6402, 6404, 6406, 6408, 6410, 6412, 6419, 6421, 6426, 6430, 6431, 6435, 6436, 6440, 6441, 6442, 6443, 6444, 6448, 6449, 6450, 6451, 6452, 6456, 6462, 6463, 6468, 6470, 6477, 6478, 6479, 6483, 6487, 6488, 6489, 6490, 6491, 6492, 6496, 6500, 6501, 6502, 6503, 6506, 6510, 6515, 6516, 6520, 6521, 6525, 6526, 6531, 6537, 6541, 6547, 6552, 6560, 6561, 6568, 6572, 6576, 6577, 6581, 6582, 6586, 6587, 6591, 6599, 6607, 6616, 6620, 6626, 6630, 6631, 6635, 6648, 6654, 6664, 6665, 6669, 6676, 6680, 6681, 6685, 6686, 6690, 6699, 6703, 6704, 6708, 6716, 6717, 6721, 6722, 6726, 6727, 6728, 6736, 6737, 6741, 6745, 6749, 6754, 6755, 6760, 6767, 6776, 6780, 6787, 6788, 6793, 6792, 6805, 6806, 6810, 6813, 6814, 6815, 6816, 6820, 6828, 6835, 6836, 6840, 6850, 6851, 6855, 6856, 6859, 6861, 6865, 6877, 6878, 6882, 6889, 6902, 6903, 6905, 6907, 6913, 6918, 6924, 6930, 6937, 6947, 6948, 6949, 6950, 6951, 6955, 6956, 6960, 6961, 6965, 6966, 6970, 6971, 6972, 6976, 6980, 6992, 6993, 6997, 6998, 7002, 7003, 7007, 7008, 7012, 7013, 7017, 7018, 7022, 7023, 7028, 7029, 7030, 7034, 7036, 7041, 7046, 7048, 7052, 7056, 7063, 7064, 7068, 7072, 7073, 7083, 7084, 7085, 7089, 7090, 7094, 7099, 7107, 7108, 7116, 7122, 7134, 7135, 7139, 7141, 7151, 7167, 7150, 7190, 7189, 7206, 7205, 7220, 7229, 7228, 7236, 7235, 7243, 7242, 7256, 7250, 7264, 7263, 7303, 7302, 7309, 7316, 7324, 7334, 7315, 7343, 7347, 7355, 7358, 7362, 7366, 7374, 7376, 7377, 7378, 7379, 7383, 7384, 7385, 7386, 7390, 7391, 7403, 7404, 7409, 7410, 7413, 7415, 7423, 7432, 7434, 7436, 7437, 7445, 7446, 7452, 7461, 7459, 7472, 7485, 7484, 7497, 7495, 7508, 7515, 7525, 7526, 7532, 7544, 7543, 7583, 7590, 7594, 7600, 7598, 7615, 7617, 7622, 7630, 7629, 7643, 7647, 7646, 7658, 7659, 7663, 7676, 7677, 7681, 7685, 7692, 7697, 7701, 7708, 7715, 7719, 7724, 7732, 7740, 7750, 7761, 7771, 7782, 7792, 7798, 7804, 7811, 7821, 7826, 7832, 7837, 7847, 7853, 7860, 7865, 7869, 7874, 7875, 7876, 7881, 7886, 7890, 7900, 7902, 7906, 7912, 7914, 7915, 7916, 7917, 7921, 7926, 7934, 7939, 7947, 7948, 7952, 7953, 7957, 7957, 7960, 7962, 7966, 7967, 7971, 7972, 7980, 7981, 7982, 7986, 7987, 7992, 8001, 8002, 8003, 8004, 8009, 8008, 8018, 8017, 8025, 8032, 8042, 8059, 8062, 8069, 8073, 8080, 8084, 8088, 8095, 8095, 8101, 8102, 8106, 8107, 8108, 8112, 8113, 8122, 8127, 8132, 8140, 8141, 8146, 8145, 8157, 8158, 8159, 8163, 8165, 8164, 8171, 8170, 8191, 8192, 8196, 8197, 8201, 8202, 8203, 8207, 8208, 8209, 8214, 8213, 8234, 8235, 8239, 8244, 8245, 8252, 8254, 8259, 8261, 8260, 8273, 8275, 8274, 8288, 8289, 8294, 8303, 8304, 8305, 8309, 8316, 8326, 8334, 8343, 8345, 8344, 8350, 8349, 8372, 8373, 8377, 8378, 8382, 8383, 8384, 8385, 8386, 8387, 8391, 8392, 8397, 8396, 8417, 8418, 8419, 8424, 8423, 8434, 8441, 8447, 8456, 8457, 8461, 8477, 8476, 8489, 8490, 8494, 8495, 8499, 8510, 8521, 8522, 8527, 8526, 8541, 8542, 8546, 8547, 8551, 8562, 8574, 8573, 8581, 8581, 8590, 8591, 8596, 8597, 8607, 8606, 8621, 8620, 8639, 8638, 8655, 8653, 8674, 8675, 8680, 8679, 8693, 8702, 8692, 8712, 8724, 8788, 8793, 8808, 8809, 8824, 8823, 8839, 8838, 8851, 8853, 8868, 8876, 8874, 8889, 8907, 8909, 8919, 8923, 8964, 8973, 8983, 8984, 8988, 8992, 8998, 9005, 9007, 9016, 9020, 9024, 9031, 9040, 9044, 9051, 9068, 9071, 9079, 9082, 9089, 9093, 9097, 9101, 9108, 9109, 9113, 9114, 9123, 9136, 9142, 9153, 9156, 9164, 9167, 9173, 9179, 9188, 9189, 9190, 9210, 9215, 9237, 9243, 9249, 9255, 9261, 9270, 9279, 9285, 9286, 9287, 9288, 9289, 9293, 9294, 9295, 9299, 9300, 9301, 9305, 9306, 9311, 9362, 9369, 9412, 9418, 9422, 9428, 9434, 9440, 9446, 9452, 9458, 9464, 9470, 9476, 9482, 9488, 9492, 9498, 9507, 9513, 9521, 9527, 9536, 9542, 9550, 9560, 9566, 9573, 9580, 9588, 9594, 9603, 9607, 9613, 9619, 9625, 9631, 9638, 9644, 9650, 9656, 9662, 9669, 9675, 9681, 9687, 9693, 9699, 9705, 9711, 9717, 9721, 9722, 9726, 9727, 9731, 9732, 9736, 9737, 9741, 9742, 9743, 9744, 9745, 9746, 9750, 9751, 9756, 9759, 9763, 9764, 9765, 9769, 9770, 9771, 9772, 9773, 9774, 9778, 9779, 9780, 9784, 9791, 9798, 9820, 9827, 9836, 9837, 9838, 9839, 9843, 9852, 9853, 9857, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9915, 9923, 9924, 9931, 9937, 9942, 9952, 9957, 9962, 9968, 9973, 9981, 9992, 9999, 10004, 10009, 10014, 10019, 10024, 10029, 10037, 10038, 10039, 10040, 10048, 10049, 10058, 10059, 10065, 10069, 10075, 10081, 10090, 10091, 10100, 10107, 10121, 10127, 10135, 10144, 10153, 10160, 10166, 10172, 10178, 10193, 10204, 10210, 10216, 10223, 10229, 10235, 10243, 10250, 10254, 10260, 10268, 10278, 10279, 10283, 10287, 10294, 10298, 10318, 10325, 10331, 10338, 10345, 10351, 10357, 10363, 10369, 10376, 10382, 10393, 10400, 10406, 10419, 10424, 10429, 10435, 10441, 10446, 10453, 10460, 10468, 10475, 10482, 10489, 10504, 10510, 10516, 10525, 10536, 10543, 10549, 10557, 10563, 10569, 10575, 10581, 10589, 10601, 10621, 10620, 10696, 10702, 10708, 10714, 10719, 10724, 10729, 10734, 10739, 10744, 10764, 10766, 10771, 10772, 10776, 10777, 10781, 10782, 10786, 10793, 10801, 10828, 10834, 10840, 10846, 10852, 10858, 10867, 10874, 10876, 10873, 10883, 10894, 10900, 10906, 10912, 10918, 10924, 10930, 10936, 10942, 10949, 10948, 10969, 10968, 10999, 10998, 11012, 11021, 11039, 11041, 11043, 11058, 11065, 11072, 11079, 11086, 11093, 11100, 11107, 11114, 11121, 11132, 11139, 11150, 11161, 11181, 11180, 11186, 11203, 11209, 11218, 11227, 11237, 11236, 11248, 11263, 11276, 11281, 11289, 11290, 11295, 11300, 11303, 11305, 11309, 11314, 11322, 11323, 11328, 11335, 11345, 11344, 11361, 11363, 11370, 11377, 11384, 11388, 11389, 11390, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11409, 11410, 11411, 11412, 11419, 11420, 11424, 11429, 11437, 11438, 11442, 11449, 11457, 11466, 11476, 11477, 11488, 11489, 11501, 11505, 11509, 11517, 11518, 11522, 11526, 11530, 11537, 11541, 11546, 11547, 11553, 11552, 11581, 11580, 11596, 11605, 11617, 11629, 11630, 11631, 11632, 11637, 11638, 11639, 11640, 11641, 11645, 11649, 11653, 11663, 11670, 11678, 11684, 11677, 11730, 11731, 11737, 11742, 11756, 11764, 11762, 11782, 11780, 11793, 11805, 11803, 11823, 11822, 11834, 11847, 11845, 11866, 11865, 11878, 11892, 11893, 11894, 11898, 11899, 11907, 11908, 11912, 11921, 11922, 11923, 11928, 11929, 11933, 11934, 11938, 11939, 11943, 11944, 11952, 11960, 11968, 11969, 11982, 11998, 12017, 12018, 12023, 12027, 12028, 12029, 12033, 12034, 12039, 12038, 12044, 12043, 12051, 12052, 12055, 12057, 12057, 12061, 12061, 12066, 12067, 12071, 12073, 12078, 12079, 12083, 12094, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12135, 12136, 12137, 12138, 12141, 12143, 12144, 12148, 12149, 12153, 12161, 12163, 12167, 12169, 12168, 12182, 12185, 12184, 12202, 12204, 12208, 12213, 12221, 12222, 12239, 12262, 12263, 12269, 12270, 12274, 12287, 12286, 12295, 12296, 12305, 12306, 12310, 12311, 12315, 12316, 12330, 12331, 12335, 12345, 12354, 12361, 12368, 12378, 12379, 12386, 12396, 12397, 12399, 12401, 12403, 12405, 12414, 12418, 12419, 12423, 12437, 12438, 12444, 12443, 12454, 12460, 12469, 12470, 12471, 12477, 12478, 12483, 12490, 12496, 12501, 12512, 12522, 12533, 12540, 12548, 12558, 12559, 12563, 12564, 12568, 12569, 12574, 12581, 12588, 12595, 12605, 12610, 12615, 12619, 12625, 12631, 12640, 12648, 12652, 12659, 12660, 12664, 12669, 12674, 12687, 12691, 12695, 12699, 12704, 12707, 12711, 12720, 12728, 12739, 12741, 12745, 12746, 12750, 12751, 12752, 12753, 12754, 12755, 12759, 12760, 12761, 12762, 12763, 12767, 12768, 12769, 12770, 12774, 12775, 12776, 12777, 12778, 12782, 12783, 12784, 12785, 12786, 12790, 12795, 12796, 12800, 12801, 12805, 12806, 12807, 12812, 12811, 12843, 12844, 12848, 12849, 12853, 12863, 12863, 12875, 12876, 12879, 12899, 12909, 12914, 12922, 12928, 12940, 12927, 12942, 12957, 12970, 12969, 12992, 12991, 13001, 13000, 13023, 13029, 13033, 13038, 13037, 13046, 13051, 13057, 13064, 13062, 13073, 13077, 13078, 13082, 13094, 13107, 13108, 13112, 13126, 13130, 13138, 13142, 13149, 13150, 13158, 13165, 13157, 13178, 13185, 13177, 13196, 13205, 13214, 13222, 13223, 13227, 13228, 13232, 13233, 13241, 13241, 13244, 13244, 13257, 13258, 13260, 13259, 13272, 13278, 13280, 13284, 13286, 13292, 13296, 13297, 13301, 13302, 13306, 13316, 13317, 13321, 13322, 13326, 13327, 13331, 13332, 13337, 13336, 13353, 13352, 13368, 13369, 13373, 13374, 13378, 13383, 13391, 13399, 13410, 13411, 13420, 13421, 13429, 13431, 13433, 13431, 13443, 13455, 13462, 13472, 13499, 13461, 13506, 13507, 13511, 13518, 13526, 13527, 13531, 13541, 13542, 13549, 13548, 13568, 13571, 13578, 13580, 13579, 13595, 13625, 13638, 13633, 13651, 13662, 13650, 13667, 13678, 13666, 13686, 13690, 13689, 13723, 13724, 13728, 13729, 13733, 13734, 13735, 13740, 13751, 13739, 13761, 13763, 13766, 13768, 13771, 13772, 13775, 13779, 13783, 13787, 13791, 13795, 13799, 13803, 13807, 13815, 13818, 13828, 13827, 13846, 13853, 13861, 13869, 13877, 13885, 13893, 13900, 13907, 13913, 13915, 13917, 13926, 13930, 13935, 13934, 13941, 13940, 13947, 13956, 13963, 13968, 13973, 13978, 13983, 13988, 13990, 13992, 13994, 14001, 14009, 14011, 14019, 14026, 14033, 14041, 14047, 14052, 14060, 14068, 14076, 14080, 14084, 14091, 14098, 14105, 14112, 14118, 14124, 14130, 14136, 14142, 14150, 14155, 14162, 14169, 14176, 14183, 14190, 14197, 14202, 14207, 14212, 14217, 14222, 14234, 14242, 14264, 14266, 14268, 14273, 14274, 14277, 14279, 14283, 14284, 14288, 14289, 14293, 14294, 14298, 14299, 14303, 14304, 14308, 14309, 14318, 14330, 14329, 14348, 14347, 14357, 14358, 14359, 14360, 14361, 14362, 14366, 14367, 14371, 14378, 14379, 14381, 14382, 14386, 14387, 14400, 14401, 14402, 14418, 14442, 14441, 14453, 14452, 14464, 14469, 14470, 14483, 14486, 14485, 14498, 14499, 14504, 14506, 14508, 14510, 14512, 14514, 14522, 14524, 14526, 14528, 14533, 14535, 14543, 14545, 14547, 14549, 14551, 14553, 14570, 14571, 14575, 14579, 14592, 14591, 14606, 14616, 14617, 14620, 14622, 14623, 14627, 14643, 14644, 14649, 14648, 14658, 14659, 14663, 14663, 14668, 14667, 14673, 14677, 14678, 14682, 14683, 14690, 14695, 14694, 14709, 14708, 14723, 14724, 14725, 14729, 14730, 14731, 14740, 14741, 14745, 14749, 14757, 14757, 14762, 14763, 14772, 14784, 14798, 14809, 14822, 14783, 14833, 14834, 14838, 14839, 14843, 14844, 14852, 14856, 14857, 14858, 14861, 14863, 14867, 14868, 14872, 14877, 14884, 14889, 14896, 14898, 14902, 14903, 14907, 14912, 14920, 14921, 14925, 14927, 14935, 14936, 14940, 14941, 14942, 14946, 14948, 14953, 14954, 14969, 14970, 14974, 14975, 14979, 14992, 14997, 15002, 15009, 15017, 15025, 15030, 15038, 15046, 15061, 15068, 15074, 15084, 15085, 15093, 15094, 15095, 15096, 15110, 15116, 15122, 15128, 15134, 15140, 15163, 15173, 15183, 15189, 15196, 15206, 15213, 15220, 15231, 15230, 15255, 15256, 15261, 15262, 15267, 15291, 15294, 15293, 15309, 15313, 15318, 15322, 15329, 15335, 15344, 15362, 15363, 15367, 15372, 15380, 15385, 15393, 15398, 15403, 15408, 15414, 15419, 15427, 15432, 15437, 15442, 15448, 15456, 15457, 15468, 15476, 15480, 15486, 15492, 15502, 15508, 15517, 15527, 15528, 15532, 15533, 15534, 15538, 15546, 15547, 15548, 15549, 15553, 15562, 15570, 15578, 15586, 15587, 15595, 15596, 15600, 15601, 15606, 15615, 15616, 15624, 15625, 15633, 15634, 15635, 15639, 15650, 15679, 15688, 15688, 15690, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 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, 15877, 15878, 15879, 15880, 15881, 15882, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15906, 15907, 15908, 15912, 15913, 15914, 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, 15953, 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, 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, 16116, 16118, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16270, 16271, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16293, 16295, 16296, 16297, 16298, 16300, 16302, 16303, 16304, 16305, 16306, 16307, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16561, 16560, 16573, 16574, 16576, 16575, 16587, 16586, 16593, 16591, 16611, 16612, 16617, 16618, 16620, 16619, 16633, 16634, 16640, 16639, 16644, 16648, 16649, 16650, 16654, 16655, 16656, 16657, 16661, 16662, 16663, 16664, 16673, 16672, 16687, 16686, 16701, 16700, 16718, 16717, 16732, 16731, 16746, 16745, 16762, 16761, 16776, 16775, 16790, 16789, 16803, 16802, 16828, 16827, 16839, 16838, 16851, 16850, 16861, 16879, 16890, 16901, 16911, 16933, 16949, 16961, 16960, 16975, 16974, 16986, 16985, 16999, 17000, 17001, 17002, 17006, 17025, 17043, 17044, 17048, 17049, 17050, 17051, 17056, 17061, 17066, 17077, 17090, 17096, 17103, 17104, 17105, 17112, 17111, 17125, 17126, 17132, 17141, 17142, 17146, 17147, 17151, 17170, 17171, 17172, 17177, 17178, 17183, 17182, 17200, 17199, 17211, 17220, 17230, 17229, 17272, 17273, 17277, 17278, 17282, 17283, 17284, 17285, 17287, 17286, 17299, 17300, 17301, 17302, 17303, 17309, 17314, 17319, 17324, 17328, 17333, 17342, 17344, 17349, 17354, 17360, 17366, 17371, 17383, 17384, 17388, 17389, 17393, 17398, 17406, 17415, 17436, 17436, 17439, 17440, 17444, 17445, 17452, 17454, 17458, 17463, 17470, 17474, 17483, 17490, 17491, 17492, 17493, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17543, 17544, 17548, 17549, 17553, 17560, 17567, 17577, 17586, 17592, 17599, 17607, 17612, 17620, 17625, 17633, 17638, 17645, 17645, 17646, 17646, 17649, 17655, 17661, 17666, 17673, 17679, 17686, 17695, 17699, 17705, 17713, 17715, 17719, 17723, 17727, 17734, 17739, 17744, 17749, 17754, 17762, 17763, 17767, 17768, 17773, 17774, 17778, 17779, 17783, 17784, 17788, 17789, 17794, 17793, 17803, 17812, 17813, 17817, 17818, 17823, 17824, 17825, 17830, 17831, 17832, 17836, 17848, 17857, 17863, 17872, 17881, 17894, 17896, 17898, 17906, 17907, 17908, 17912, 17913, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17935, 17936, 17941, 17954, 17968, 17969, 17970, 17974, 17975, 17979, 17980, 17985, 17986, 17990, 17996, 18005, 18005, 18019, 18020, 18021, 18022, 18032, 18034, 18040, 18046, 18056, 18065, 18071, 18076, 18080, 18054, 18129, 18129, 18142, 18144, 18149, 18150, 18154, 18155, 18159, 18159, 18166, 18170, 18174, 18178, 18182, 18186, 18194, 18195, 18211, 18218, 18225, 18238, 18239, 18240, 18244, 18245, 18246, 18250, 18251, 18256, 18258, 18257, 18263, 18264, 18268, 18273, 18280, 18285, 18294, 18300, 18308, 18312, 18316, 18320, 18324, 18328, 18332, 18336, 18340, 18341, 18345, 18349, 18353, 18357, 18364, 18365, 18366, 18372, 18376, 18384, 18385, 18386, 18390, 18391, 18396, 18397, 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18428, 18433, 18437, 18446, 18445, 18458, 18463, 18467, 18471, 18480, 18481, 18497, 18506, 18518, 18523, 18527, 18532, 18537, 18541, 18548, 18554, 18559, 18569, 18568, 18583, 18591, 18582, 18604, 18608, 18620, 18625, 18626, 18633, 18635, 18634, 18662, 18663, 18664, 18665, 18666, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18681, 18682, 18683, 18684, 18691, 18689, 18706, 18705, 18720, 18719, 19178, 19179, 19185, 19186, 19194, 19193, 19214, 19213, 19233, 19242, 19251, 19257, 19256, 19276, 19275, 19295, 19296, 19300, 19301, 19305, 19312, 19433, 19432, 19443, 19441, 19457, 19455, 19469, 19478, 19476, 19496, 19509, 19494 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) #if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "\"invalid token\"", "'@'", "ABORT_SYM", "IMPOSSIBLE_ACTION", "FORCE_LOOKAHEAD", "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", "EMPTY_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", "JSON_TABLE_SYM", "GROUP_SYM", "HAVING", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM", "HOUR_SECOND_SYM", "IF_SYM", "IGNORE_DOMAIN_IDS_SYM", "IGNORE_SYM", "IGNORED_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", "MINUS_ORACLE_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", "MODIFIES_SYM", "MOD_SYM", "NATURAL", "NEG", "NESTED_SYM", "NOT_SYM", "NO_WRITE_TO_BINLOG", "NOW_SYM", "NTH_VALUE_SYM", "NTILE_SYM", "NULL_SYM", "NUMERIC_SYM", "ON", "OPTIMIZE", "OPTIONALLY", "ORDER_SYM", "ORDINALITY_SYM", "OR_SYM", "OTHERS_ORACLE_SYM", "OUTER", "OUTFILE", "OUT_SYM", "OVER_SYM", "PACKAGE_ORACLE_SYM", "PAGE_CHECKSUM_SYM", "PARSE_VCOL_EXPR_SYM", "PARTITION_SYM", "PATH_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", "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", "SUM_SYM", "SYSDATE", "TABLE_REF_PRIORITY", "TABLE_SYM", "TERMINATED", "THEN_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING", "TRIGGER_SYM", "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", "ROWNUM_SYM", "REPLACE", "SUBSTRING", "TRIM", "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", "CHANNEL_SYM", "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_SYM", "DAY_SYM", "DEALLOCATE_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", "LOCKED_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", "MASTER_DEMOTE_TO_SLAVE_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", "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", "SKIP_SYM", "SLAVE", "SLAVES", "SLAVE_POS_SYM", "SLOW", "SNAPSHOT_SYM", "SOCKET_SYM", "SOFT_SYM", "SONAME_SYM", "SOUNDS_SYM", "SOURCE_SYM", "SQL_AFTER_GTIDS_SYM", "SQL_BEFORE_GTIDS_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", "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", "VALIDATION_SYM", "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_SP_OBJECT_TYPE", "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", "optional_for_channel", "for_channel", "create", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23", "$@24", "opt_sequence", "sequence_defs", "sequence_def", "force_lookahead", "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_handler_package_spec", "sp_handler_package_body", "drop_routine", "sp_name", "sp_a_chistics", "sp_c_chistics", "sp_chistic", "sp_c_chistic", "sp_suid", "call", "$@29", "$@30", "$@31", "opt_sp_cparam_list", "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", "$@32", "sp_fdparams", "sp_param_name", "sp_pdparam_list", "sp_pdparams", "sp_parameter_type", "sp_parenthesized_pdparam_list", "$@33", "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", "$@34", "sp_decl_handler", "$@35", "opt_parenthesized_cursor_formal_parameters", "sp_cursor_stmt_lex", "sp_cursor_stmt", "$@36", "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", "$@37", "sp_proc_stmt_statement", "$@38", "RETURN_ALLMODES_SYM", "sp_proc_stmt_return", "$@39", "sp_proc_stmt_exit_oracle", "$@40", "$@41", "sp_proc_stmt_continue_oracle", "$@42", "$@43", "sp_proc_stmt_leave", "sp_proc_stmt_iterate", "sp_proc_stmt_goto_oracle", "expr_lex", "@44", "assignment_source_lex", "assignment_source_expr", "$@45", "for_loop_bound_expr", "$@46", "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", "$@47", "$@48", "sp_elseifs", "case_stmt_specification", "$@49", "case_stmt_body", "$@50", "simple_when_clause_list", "searched_when_clause_list", "simple_when_clause", "$@51", "searched_when_clause", "$@52", "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", "$@53", "$@54", "$@55", "$@56", "$@57", "$@58", "sp_unlabeled_control", "$@59", "$@60", "$@61", "$@62", "$@63", "trg_action_time", "trg_event", "create_body", "$@64", "create_like", "opt_create_select", "create_select_query_expression", "opt_create_partitioning", "opt_partitioning", "partitioning", "$@65", "have_partitioning", "partition_entry", "$@66", "partition", "$@67", "part_type_def", "$@68", "$@69", "$@70", "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", "$@71", "$@72", "sub_part_field_list", "sub_part_field_item", "part_func_expr", "opt_num_subparts", "part_defs", "part_def_list", "opt_partition", "part_definition", "$@73", "part_name", "opt_part_values", "$@74", "$@75", "part_func_max", "part_values_in", "part_value_list", "part_value_item", "$@76", "$@77", "part_value_item_list", "part_value_expr_item", "opt_sub_partition", "sub_part_list", "sub_part_definition", "$@78", "sub_name", "opt_part_options", "part_option_list", "part_option", "opt_subpart_options", "subpart_option_list", "server_part_option", "opt_versioning_rotation", "$@79", "opt_versioning_interval_start", "opt_vers_auto_part", "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", "$@80", "engine_defined_option", "ident_options", "keyword_options", "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", "$@81", "$@82", "$@83", "$@84", "$@85", "$@86", "$@87", "constraint_def", "period_for_system_time", "period_for_application_time", "opt_check_constraint", "check_constraint", "opt_constraint_no_id", "opt_constraint", "constraint", "field_spec", "@88", "field_type_or_serial", "$@89", "$@90", "opt_serial_attribute", "opt_serial_attribute_list", "opt_asrow_attribute", "opt_asrow_attribute_list", "field_def", "$@91", "opt_generated_always", "vcol_opt_specifier", "vcol_opt_attribute", "vcol_opt_attribute_list", "vcol_attribute", "parse_vcol_expr", "$@92", "parenthesized_expr", "virtual_column_func", "expr_or_literal", "column_default_expr", "field_type", "qualified_field_type", "udt_name", "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_str", "field_length", "field_scale", "opt_field_length", "opt_field_scale", "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", "collation_name_or_default", "opt_default", "charset_or_alias", "opt_binary", "binary", "opt_bin_mod", "ws_nweights", "$@93", "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", "ignorability", "key_list", "opt_without_overlaps", "key_part", "opt_ident", "string_list", "alter", "$@94", "$@95", "$@96", "$@97", "$@98", "$@99", "$@100", "$@101", "$@102", "$@103", "$@104", "$@105", "$@106", "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", "$@107", "$@108", "$@109", "$@110", "remove_partitioning", "all_or_alt_part_name_list", "add_partition_rule", "$@111", "add_part_extra", "reorg_partition_rule", "$@112", "reorg_parts_rule", "$@113", "alt_part_name_list", "alt_part_name_item", "alter_list", "add_column", "alter_list_item", "opt_without_validation", "opt_index_lock_algorithm", "alter_algorithm_option", "alter_lock_option", "opt_column", "opt_ignore", "alter_options", "$@114", "alter_options_part2", "alter_option_list", "alter_option", "opt_restrict", "opt_place", "opt_to", "slave", "$@115", "$@116", "start", "opt_start_transaction_option_list", "start_transaction_option_list", "start_transaction_option", "slave_thread_opts", "$@117", "slave_thread_opt_list", "slave_thread_opt", "slave_until", "slave_until_opts", "checksum", "$@118", "opt_checksum_type", "repair_table_or_view", "$@119", "repair", "$@120", "opt_mi_repair_type", "mi_repair_types", "mi_repair_type", "opt_view_repair_type", "analyze", "$@121", "analyze_table_list", "analyze_table_elem_spec", "opt_persistent_stat_clause", "persistent_stat_spec", "persistent_column_stat_spec", "$@122", "persistent_index_stat_spec", "$@123", "table_column_list", "table_index_list", "table_index_name", "binlog_base64_event", "check_view_or_table", "$@124", "check", "$@125", "opt_mi_check_type", "mi_check_types", "mi_check_type", "opt_view_check_type", "optimize", "$@126", "opt_no_write_to_binlog", "rename", "$@127", "rename_list", "table_to_table_list", "table_to_table", "keycache", "$@128", "keycache_list_or_parts", "keycache_list", "assign_to_keycache", "assign_to_keycache_parts", "key_cache_name", "preload", "$@129", "preload_list_or_parts", "preload_list", "preload_keys", "preload_keys_parts", "adm_partition", "$@130", "cache_keys_spec", "$@131", "cache_key_list_or_empty", "opt_ignore_leaves", "select", "$@132", "$@133", "select_into", "$@134", "$@135", "simple_table", "table_value_constructor", "$@136", "query_specification_start", "$@137", "$@138", "query_specification", "select_into_query_specification", "query_expression", "query_expression_no_with_clause", "query_expression_body_ext", "$@139", "$@140", "query_expression_body_ext_parens", "query_expression_body", "$@141", "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", "remember_cpp_ptr", "remember_start_opt", "remember_end_opt", "remember_lex", "select_alias", "opt_default_time_precision", "opt_time_precision", "optional_braces", "expr", "boolean_test", "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", "dyncall_create_element", "dyncall_create_list", "plsql_cursor_attr", "explicit_cursor_attr", "trim_operands", "trim_operands_regular", "trim_operands_special", "column_default_non_parenthesized_expr", "primary_expr", "string_factor_expr", "simple_expr", "mysql_concatenation_expr", "function_call_keyword_timestamp", "function_call_keyword", "substring_operands", "substring_operands_regular", "substring_operands_special", "function_call_nonkeyword", "function_call_conflict", "function_call_generic", "@142", "fulltext_options", "opt_natural_language_mode", "opt_query_expansion", "opt_udf_expr_list", "udf_expr_list", "udf_expr", "sum_expr", "$@143", "$@144", "$@145", "$@146", "$@147", "window_func_expr", "window_func", "simple_window_func", "inverse_distribution_function", "percentile_function", "$@148", "inverse_distribution_function_def", "order_by_single_element_list", "window_name", "variable", "$@149", "variable_aux", "opt_distinct", "opt_gconcat_separator", "opt_gorder_clause", "gorder_list", "opt_glimit_clause", "glimit_clause", "glimit_options", "in_sum_expr", "$@150", "cast_type", "cast_type_numeric", "cast_type_temporal", "opt_expr_list", "expr_list", "ident_list_arg", "ident_list", "when_list", "when_list_opt_else", "table_ref", "json_text_literal", "json_text_literal_or_num", "join_table_list", "json_table_columns_clause", "json_table_columns_list", "json_table_column", "$@151", "$@152", "json_table_column_type", "json_table_field_type", "json_opt_on_empty_or_error", "json_on_response", "json_on_error_response", "json_on_empty_response", "table_function", "$@153", "$@154", "esc_table_ref", "derived_table_list", "join_table", "$@155", "$@156", "$@157", "$@158", "$@159", "$@160", "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", "$@161", "$@162", "index_hints_list", "opt_index_hints_list", "$@163", "opt_key_definition", "$@164", "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", "$@165", "opt_having_clause", "$@166", "opt_group_clause", "group_list", "olap_opt", "opt_window_clause", "window_def_list", "window_def", "window_spec", "$@167", "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", "$@168", "order_list", "order_dir", "opt_limit_clause", "limit_clause", "fetch_first_clause", "first_or_next", "row_or_rows", "only_or_with_ties", "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", "$@169", "procedure_list", "procedure_list2", "procedure_item", "select_var_list_init", "$@170", "select_var_list", "select_var_ident", "select_outvar", "into", "into_destination", "$@171", "$@172", "do", "$@173", "drop", "$@174", "$@175", "$@176", "$@177", "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", "$@178", "$@179", "replace", "$@180", "$@181", "insert_start", "stmt_end", "insert_lock_option", "replace_lock_option", "insert_replace_option", "opt_into", "insert_table", "$@182", "insert_field_spec", "$@183", "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", "$@184", "no_braces_with_names", "$@185", "opt_values", "opt_values_with_names", "values", "values_with_names", "expr_or_ignore", "expr_or_ignore_or_default", "opt_insert_update", "$@186", "$@187", "update_table_list", "update", "$@188", "$@189", "$@190", "update_list", "update_elem", "insert_update_list", "insert_update_elem", "opt_low_priority", "delete", "$@191", "opt_delete_system_time", "delete_part2", "$@192", "delete_single_table", "delete_single_table_for_period", "single_multi", "$@193", "$@194", "$@195", "$@196", "$@197", "opt_returning", "$@198", "opt_wild", "opt_delete_options", "opt_delete_option", "truncate", "$@199", "$@200", "opt_table_sym", "opt_profile_defs", "profile_defs", "profile_def", "opt_profile_args", "show", "$@201", "show_param", "$@202", "$@203", "show_engine_param", "master_or_binary", "opt_storage", "opt_db", "opt_full", "from_or_in", "binlog_in", "binlog_from", "wild_and_where", "describe", "$@204", "$@205", "explainable_command", "describe_command", "analyze_stmt_command", "opt_extended_describe", "opt_format_json", "opt_describe_column", "explain_for_connection", "flush", "$@206", "flush_options", "$@207", "opt_flush_lock", "flush_lock", "$@208", "flush_options_list", "flush_option", "opt_table_list", "backup", "backup_statements", "$@209", "opt_delete_gtid_domain", "delete_domain_id_list", "delete_domain_id", "optional_flush_tables_arguments", "reset", "$@210", "reset_options", "reset_option", "$@211", "$@212", "slave_reset_options", "master_reset_options", "purge", "$@213", "kill", "$@214", "kill_type", "kill_option", "opt_connection", "kill_expr", "shutdown", "$@215", "shutdown_option", "use", "load", "$@216", "$@217", "$@218", "$@219", "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", "$@220", "opt_recursive", "with_list", "with_list_element", "opt_cycle", "$@221", "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", "ident_cli_func", "ident_func", "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_func_sp_var_and_label", "keyword_func_sp_var_not_label", "keyword_sp_var_and_label", "reserved_keyword_udt_not_param_type", "set", "$@222", "set_param", "$@223", "$@224", "$@225", "set_stmt_option_list", "start_option_value_list_following_option_type", "$@226", "option_value_list", "option_value", "$@227", "option_type", "opt_var_type", "opt_var_ident_type", "set_stmt_option", "$@228", "$@229", "$@230", "option_value_following_option_type", "$@231", "$@232", "$@233", "option_value_no_option_type", "$@234", "$@235", "$@236", "$@237", "$@238", "$@239", "$@240", "$@241", "$@242", "$@243", "transaction_characteristics", "transaction_access_mode", "isolation_level", "transaction_access_mode_types", "isolation_types", "text_or_password", "set_expr_or_default", "set_expr_misc", "lock", "$@244", "opt_lock_wait_timeout", "table_or_tables", "table_lock_list", "table_lock", "lock_option", "unlock", "$@245", "handler", "$@246", "handler_tail", "$@247", "handler_read_or_scan", "handler_scan_function", "handler_rkey_function", "$@248", "handler_rkey_mode", "revoke", "revoke_command", "admin_option_for_role", "grant", "grant_command", "opt_with_admin", "opt_with_admin_option", "role_list", "current_role", "role_name", "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", "$@249", "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", "$@250", "view_check_option", "trigger_action_order", "trigger_follows_precedes_clause", "trigger_tail", "$@251", "$@252", "$@253", "$@254", "$@255", "sf_return_type", "$@256", "create_package_chistic", "create_package_chistics", "opt_create_package_chistics", "opt_create_package_chistics_init", "$@257", "xa", "opt_format_xid", "xid", "begin_or_start", "opt_join_or_resume", "opt_one_phase", "opt_suspend", "$@258", "opt_migrate", "install", "uninstall", "keep_gcc_happy", "_empty", "statement", "sp_statement", "sp_if_then_statements", "sp_case_then_statements", "sp_tail_is", "sp_package_function_body", "sp_package_procedure_body", "opt_trailing_sp_name", "opt_package_routine_end_name", "sf_parameters", "sp_parameters", "sf_returned_type_clause", "package_implementation_item_declaration", "package_implementation_declare_section_list", "package_implementation_declare_section", "package_implementation_executable_section", "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", "$@259", "for_loop_statements", "sp_label", "sp_control_label", "sp_block_label", "sp_opt_default", "sp_decl_variable_list_anchored", "sp_param_name_and_mode", "sp_param", "sp_param_anchored", "sf_c_chistics_and_body_standalone", "$@260", "sp_tail_standalone", "$@261", "$@262", "sp_decls", "sp_decl", "sp_decl_body", "$@263", "sp_proc_stmt_in_returns_clause", "sp_proc_stmt", "sp_proc_stmt_compound_ok", "sp_labeled_block", "$@264", "sp_unlabeled_block", "$@265", "sp_unlabeled_block_not_atomic", "$@266", "package_implementation_declare_section_list1", "package_implementation_declare_section_list2", "package_specification_function", "$@267", "package_specification_procedure", "$@268", "package_implementation_routine_definition", "package_implementation_function_body", "$@269", "package_implementation_procedure_body", "$@270", "opt_package_specification_element_list", "package_specification_element_list", "package_specification_element", "create_routine", "$@271", "$@272", "$@273", "$@274", "$@275", "$@276", YY_NULLPTR }; static const char * yysymbol_name (yysymbol_kind_t yysymbol) { return yytname[yysymbol]; } #endif #define YYPACT_NINF (-5651) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-3703) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const int yypact[] = { 6560, -5651, -5651, 3890, 1172, 92605, -5651, 842, -5651, 458, -5651, -5651, -5651, 3323, -5651, -5651, -5651, -5651, -5651, 386, 477, -5651, 1202, -5651, -5651, 462, 79213, 1090, 432, -5651, 82189, -5651, -5651, -5651, -5651, 82189, -5651, -5651, 92605, -5651, -5651, 1658, -5651, 196, 2073, 601, 1808, 477, 1221, -5651, -5651, 93349, 1202, 1792, -5651, -5651, -32, 92605, 1202, -5651, 1221, 92605, -5651, 252, 266, -5651, -24, 3625, 101, 2214, 2331, -5651, -5651, 1664, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3627, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 505, -5651, -5651, -5651, -5651, 3585, 2030, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 44868, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 101, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 94093, 92605, 1603, 1625, 92605, 2274, 79957, 2274, -5651, 126, -5651, -5651, 2113, -5651, 1781, -5651, 477, 2957, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1774, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2273, 2591, 107, 2297, 1053, 2274, -5651, 2565, -5651, 2274, 2342, 2274, -5651, 2274, 2274, -5651, 2274, 2274, 2274, -5651, -5651, 1022, 92605, 66565, -5651, -5651, 1088, 2509, -5651, -5651, -5651, -5651, -5651, -5651,107950, 477, 22862, 2611, -5651, -5651, 2156, 4340, 1974, -5651, 2467, -5651, -5651, 92605, -5651, 2274,107950, -5651, 2467, 67309, 3764, 48599, 13008, 2467, 477, 2553, -5651, 1959, -5651, -5651, -5651, -5651, -5651, -5651, 92605, -5651, -5651, -5651, 2412, 1221, 79957, -5651, -5651, -5651, -5651, -5651, 2711, 22862, 225, 2480, -5651, -5651, 2368, 45612, 79957, 2655, 2591, 2679, -5651, 1534, 1211, -5651, 2062, 2146, 2591, 1911, 2157, 2591, 2556, 2274, 2274, -5651, -5651, 2941, 2941, 2941, 2389, 2941, -5651, 2941, 2735, 2082, 335, -5651, -5651, 2108, 92605, 2655, -5651, 2655, -5651, 2734, 2655, 2655, 2242, 2763, 2769, 162, 1805, 205, 205, 2113, 40404, 1114, 2606, -5651, 2735, 1465, 427, 1408, 1408, 1408, 1465, 101, 1465, -5651, 3010, 1781, 3189, 92605, -5651, 2815, -5651, 2155, -5651, -5651, 374, -5651, 2222, -5651, 2159, 1421, 68797, -5651, 2849, -5651, -5651, -5651, -5651, -5651, -5651, 2693, 384, 2329, 2581, 2243, -5651, 2733, 79957, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 92605, 2268, -5651, -5651, -5651, 2907, 2273, -5651, 2774, -5651, -5651, -5651, -5651, 45612, -5651, -5651, -5651, 2928, -5651, -5651, 82933, 622, 92605, 2924, -5651, 92605, -5651, 92605, -5651, 79957, -5651, -5651, 92605, 2274, 2274, -5651, -5651, 2939, 2463, 2432, 2245, 2314, 2630, -5651, 2532, -5651, 2375, 2421, 2574, 2388, 2399, 2427, 395, -5651, 2403, -5651, 138, 2863, 124, 170, 2867, 283, 334, 3004, 2890, 364, 1406, 366, 2675, 382, -5651, -5651, -5651, -5651, 2943, 3054, 2493, -5651, 2500, -5651, 3012, 2874, 1368, -5651, -5651, 1094, 2950, 1352, 45612,110089, 80701,111515, -5651,111515,111515, -5651, 240, -5651, 2073, 92605, 110802, -5651, 92605,102959, -5651, 13068, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 92605, -5651, -5651, -5651, -5651, -5651, 2522, -5651, -5651, -5651, -5651, -5651, 2971, 1950, 2983, -5651, 2554, -5651, -5651, -5651, -5651, -5651, 83677, -5651, 189, 191, 2976, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 29022, 2572, 2587, 2602, 18242, 2609, 2613, 2616, 2620, 2626, 2314, 2314, 2314, 2631, 2634, 2646, 2652, 2656, 2665, 2674, -5651, 2681, 2701, 2746, 2749, 2751, 2755, 23632, 2756, 2757, 2762, 36672, 2765, 2771, 2777, 2781, 22862, 2631, 2792, 2794, -5651, 2795, 2796, 2800, 2801, 2802, 2803, 2804, 2805, 3344, 2814, 2817, 2820, 2821, -5651, 2314, 2631, 2631, 2823, 2824, 2827, 2830, 2831, 2834, 2835, 2838, 2845, 2852, 2854, 2857, 2858, 2860, 2862, 204, 2865, 2868, 2872, 2875, 2876, 2877, 2878, 2683, 2879, 2880, 2884, 2766, 2885, 2886, 2887, 2888, 219, 2889, 2893, 239, 2896, 2901, 2912, 2930, 2933, 2935, 2940, 29792, 30562, 29022, 15932, -5651, 92605, 94837, -5651, -5651, 3165, 2318, 640, 353, 29022, -5651, -5651, -5651, 3402, -5651, 3478, -5651, -5651, -5651, -5651, 3283, 3337, -5651, 3367, -5651, -5651, 3385, 2847, -5651, 3615, -5651, -5651, -5651, -5651, -5651, 2916, -5651, 2942, 3665, 3666, 2944, 2949, -5651, -5651, 475, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2925, 2967, -5651, 3615, -5651, -5651, 71773, -5651,108663, -5651, -5651, 2463, 3150, 3533, -5651, 3610, -5651, 3538, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3764, -5651, -5651, 50109, 3485, -103, -5651, -5651, 179, -5651, 210, 261, 62101, -5651, 263, 62845, 294, 84421, 186, -5651, 69541, -5651, 299, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2958, -5651, 3077, 3289, 2977, 3748, 367, -5651, -5651, 206, 862, 3064, 129, -5651, 1016, -5651, 367, -5651, 72517, 1141, 1775, -5651, 878, -5651, 3638, -5651, -5651, 3071, 3060, 3091, -5651, 2931, -5651, 2591, -5651, 399, -5651, 1141, 367, 1775, -5651, 3259, 3341, 1364, 3289, -5651, 730, -5651, -5651, -5651, 3628, -5651, 2987, -5651, 3355, -5651, 92605, 1279, 45612, -5651, -5651, -5651, 2992, 45612, 45612, 1186, 970, 3165, 2994, 22862, -5651, -5651, 5080, 52374, 3200, 1480, 726, -5651, -5651, 2073, 92605, -5651, -5651, 904, -5651, 3424, -5651, 3003, -5651, 95581, 970, 3668, -5651, -5651, -5651, 1237, 3405, -5651, 3014, -5651, -5651, -5651, -5651, 45612, 92605, 2591, -5651, -5651, -5651, -5651, 3016, -5651, -5651, 3217, 3105, -5651, 3041, -5651, -5651, 184, -5651, -5651, 3801, -5651, 92605, -5651, 2655, -5651, -5651, 2655, -5651, -5651, -5651, 2655, 2655, 2655, -5651, -5651, 2655, 2655, 3063, -5651, 3349, 3354, 2733, -5651, 3039, 39660, 92605, 3808, -5651, 4507, -5651, -5651, -5651, 3037, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3609, 3796, 3796, -5651, 50864, -5651, -5651, 3692, 2606, 100, 3535, 53884, 3678, 3772, 56149, -5651, 1141, -5651, -5651, -5651, -5651, 1785, 92605, -5651, 1785, 1785, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 101, -5651, -5651, 2957, 3446, 70285, 92605, 1465, 427, -5651, -5651, -5651, 2591, 369, 3433, -5651, 92605, -5651, -5651, -5651, 2314, 3839, -5651, -5651, -5651, -5651, -5651, 45612, 3260, 68797, 2274, -5651, -5651, -5651, 384, -5651, 1405, 92605, 45612, 3103, -5651, 45612, 3059, 22862, -5651, -5651, 3542, 22862,107950, 3427, -5651, -5651, 45612, 309, -5651, -5651, 45612, 3802, 45612, 3073, -5651, 3733, 2606, -5651, -5651, 3070, -5651, -5651, 3746, 92605, -5651, -5651, 73261, -5651, 71773, 45612, 3076, -5651, -5651, 3449, 3225, -5651, -5651, -5651, -5651, -5651, -5651, 3167, -5651, -5651, 3090, -5651, -5651, -5651, -5651, 3543, -5651, 3228, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 71773, -5651, -5651, 3550, 3551, -5651, 68797, 2410, 6732, 94837, -5651, 3744, -5651, -5651, -5651, 3628, -5651, -5651, 24402, -5651, 25172, -5651, -5651, -5651, 3384, 452, -62, -5651, -5651, 3581, 92605, 3335, 3769, 3747, -5651, -5651, -5651, -5651, -5651, -5651, 3595, 3130, 3738, 3128, -5651, -5651, -5651, 3133, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 45612, 51619, -5651, -5651, -5651, 3131, -5651, -5651, -5651, 3140, 29022, 29022, -5651, 3879, 3879, 3879, 22862, 2240, 1436, 3504, 22862, 22862, 22862, 2116, 3148, -5651, -5651, -5651, 232, -5651, 22862, 22862, 37422, 3151, 1058, 3740, 22862, 3832, 3832, -5651, 22862, 22862, 15932, 4506, 22862, 22862, 22862, 94837, 37422, 3601, 3155, -5651, 3153, 2317, 22862, 2354, 22862, -5651, -5651, 22862, 22862, 22862, 22862, 3162, 31332, 3163, 22862, 22862, 3164, 3309, 3879, 3879, 2405, 270, -5651, -5651, -5651, 3879, 3879, 3180, 22862, 22862, 16702, 22862, 22862, 2476, 22862, 22862, 22862, 22862, 22862, 22862, -5651, 22862, 22862, 1116, 22862, 22862, 45612, 22862, 22862, 3841, 45612, 22862, 22862, 3844, 22862, 22862, 45612, 22862, -5651, 22862, 3471, 3471, -5651, 22862, 16702, 22862, 3182, 38172, 22862, 22862, 22862, 23632, -5651, 23632, -5651, -5651, 3195, 3340, 376, 101, 22862, 3191, -5651, -5651, -5651, -5651, 22862, 22862, 22862, 31332, -5651, -5651, -5651, 339, -5651, -5651, -5651, 25942, 31332, 3190, 31332, 31332, 3813, 2352, 31332, 31332, 31332, 31332, 31332, 31332, 31332, 32102, 32872, 31332, 31332, 31332, 31332, -5651, 79957, 29022, 47844, 3208, 3858, -5651, 74005, -5651, 1643, 1018, -5651, 2591, 4340, 34412, -5651, 3210, -5651, 3710, 45612, 3218, 3223, 3885, 71773, 68797, 2410, 3241, -5651, 1572, 344, -5651, 73261, 92605, -5651, -5651, -5651, 3946, 22862, -5651, -5651, -5651, -5651, -5651, 3230, 301, 3236, -5651, 275, -5651, -5651, -5651, -5651, -5651, 92605, -5651, 85165, 49354, 3334, 3898, 3253, 2655, 85909, 92605, 45612, 92605, 96325, 92605, 92605, 45612, 71773, 45612, -5651, -5651, -5651, 940, 367, 92605, 367, 1775, 967, 367, 3876, -5651, -5651, 1313, 1313, -5651, -5651, -5651, -5651, -5651, -5651, 367, 92605, 92605, 367, 68797, -5651, 1775, 1464, -5651, 3546, 3339, -5651, -5651, -5651, 3587, -5651, -5651, 3916, 3267, -5651, 3611, -5651, 3368, -5651, -5651, 45612, -5651, -5651, 1775, -5651, 1775, 1775, 3918, 367, 367, 367, -5651, 41148, 3277, 3281, -5651, 3279, -5651, 3288, -5651, 3921, -5651, -5651, -5651, 4074, 3927, 3293, -5651, -5651, 3864, 998, -5651, 3724, -5651, 3850, -5651, 22862, 3165, 19012, 3582, -5651, -5651, 3586, 3591, 3592, -5651, -5651, -5651, -5651, 3743, 3597, -5651, 2591, 3598, -5651, -5651, -5651, 3319, -5651, -5651, -5651, 79957, 34412, -5651, 3325, -5651, 3346, -5651, 218, -5651, -5651, 3999, 3447, 22862, -5651, -5651, 45612, 3835, -5651, 2591, 1534, 92605, -5651, -5651, 4079, -5651, 1258, 4001, -5651, -5651, 3461, 1911, -5651, 4001, 1353, -5651, -5651, 2941, 3541, -5651, -5651, -5651, 79957, -5651, -5651, -5651, -5651, -5651, -5651, 92605, -5651, 73261, 68797, 79957, 2655, 2655, -5651, 45612, -5651, -5651, -5651, 92605, 92605, 2655, 2655, 2655, 3392, -5651, 3118, 3358, 3365, 3371, 3373, 699, 3375, 41892, 2558, 212, 3981, 4003, -5651, 3954, 2590, 3954, -5651, -5651, 41892, 41148, 3382, 3808, -5651, -5651, -5651, -5651, 79957, 3381, -5651, -5651, 3379, -5651, 22862, 4107, 4036, 3692, -5651, -5651, 54639, 1790, 83677, -5651, -5651, -5651, 3736, 3928, 1096, -5651, 3387, 3516, -5651, 125, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 22862, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 344, 221, -5651, -5651, -5651, 465, 3763, 1897, -5651, -5651, 79957, 1897, -5651, 3399, 3705, -5651, 3706, 77, -5651, 45612, -5651, -5651, -5651, -5651, -5651, 45612, 3401, -5651, 3593, 92605, 2268, 3407, 3408, 3165, 3910, -5651, 3542, -5651, 3165,102246, -5651, 4131, 5701, 164, 3465, -5651, -5651, -5651, -5651, -5651, 45612, -5651, -5651, 1653, 3609, 3498, -5651, 3073, 38, 92605, 4076, 3983, -5651, -5651, 4000, 57637, -5651, -5651, 4007, 3429, -5651, -5651, 3431, 277, 92605, 45612, 45612,107950, -5651, -5651, 3436, -5651, -5651, -5651, -5651, 3938, -5651, -5651, 73, -5651, 42636, 42636, 138, 2863, -5651, -5651, 2867, -5651, -5651, 2890, -5651, 1406, -5651, 2675, -5651, -5651, -5651, -5651, 1988, -5651,107950, -5651, 3921, 22862, 47100, 3165, -5651, -5651, 45612, -5651, 4083, -5651, -5651, 99301, 160, -5651, -5651, 305, 45612, -5651, -5651, -5651, 4077, 3583, 92605, -5651, -5651, 4137, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 92605, 92605,107950,107950, -5651, -5651, 1201, 1572, -5651, 4194, 94837, 22862, -5651, 3453, -5651, 3455, 3457, 2048, 3815, 22862, 22862, -5651, 3134, 485, 247, -5651, 3459, 3472, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3462, -5651, -5651, 575, 593, 3463, -5651, -5651, -5651, 3464, 101, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4122, -5651, 348, -5651, -5651, -5651, 22862, 631, 927, 955, 3481, 234, 307, 1025, 3131, 2072, 3473, 37422, 94837, 3879, 3470, 387, 3879, 3474, 1115, 1269, 1178, 1606, 1689, -5651, 419, -5651, 1554, 1561, -5651, -5651, 3476, 3479, 3879, 3480, -5651, 3483, 3489, 3492, -5651, 1620, 381, 3495, -5651, -5651, 19782, 20552, 21322, 3735, 3497, -5651, -5651, 1627, 1715, 3879, 3499, 2138, 1631, 1669, -5651, 2101, 1705, 1720, 3506, 2994, 2165, 2238, -5651, -5651, -5651, -5651, 3482, 2253, 2276, 3488, 3509, 2280, 2308, 45612, 3510, 3512, 2377, 45612, 1818, 2378, 3496, 1824, 371, 3515, 3518, 2381, 3521, 1829, -5651, 94837, 92605, 3522, 3466, 350, 3530, 2444, 4506, 4506, -5651, 22862, 3531, 268, 94837, 2544, 1301, -5651, 640, -5651, -5651, -5651, -5651, 258, -5651, 3486, 640, 3519, 2810, 15932, -5651, 1251, 2073, 31332, 31332, 3524, 31332, 31332, 513, 426, 426, 3536, 3536, 331, 264, 23632, 513, 23632, 513, 3536, 3536, 3536, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4048, 3534, 3539, 3545, 3547, 1734, 3532, -5651, -5651, -5651, -5651, -5651, -5651, 783, 3940, -5651, 3730, 1151, 22862, -5651, 3559, 4298, 4300, 4301, -5651, -5651, -5651, -5651, 71773, 71773, 3548, -5651, 1353, 3908, 4205, 73261, 4210, -5651, 3553, 42636, 42636, -5651, 3555, -5651, 22862, 3557, 3564, 3565, 97069, -5651, 4223, 344, 74749, 3165, 71773, 636, -5651, 92605, 92605, -5651, 84421, 4230, 1379, 3854, -5651, 3573, 3574, -5651, 344, -5651, 3570, 988, 322, -5651, 3577, 3580, -5651, -5651, -5651, -5651, 22862, 3561, 92605, 92605, -5651, -5651, -5651, -5651, 92605, -5651, -5651, -5651, -5651, -5651, -5651, 2591, 22862, 92605, 367, -5651, -5651, -5651, 367, 92605, 367, -5651, 2591, 4240, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 367, -5651, -5651, -5651, -5651, -5651, 3756, 1141, 2931, 3876, 4001, 1775, 45612, 367, 367, 22862, -5651, -5651, -5651, -5651, 4114, 3609, 19012, 3589, 3588, -5651, -5651, 107950, 92605, 94837, 4322, -5651, -5651, 4137, 79957, 86653, 45612, -5651, -5651, -5651, 464, -5651, -5651, -5651, -5651, -5651, 3165, 2480, 2652, -5651, 3594, 3165, -5651, -5651, 4278, -5651, -5651, -5651, -5651, 2591, -5651, -5651, 5084, -5651, 45612, -5651, -5651, 53129, 53129, 1639, -5651, 97813, -5651, 2591, 3165, 45612, 1152, 305, -5651, 4336, -5651, -5651, 3717, -5651, -5651, -5651, 3602, -5651, 4024, -5651, -5651, -5651, -5651, -5651, -5651, 3605, -5651, 4265, -5651, 2527, 102, 92605, 81, 77, -5651, 92605, 92605, 45612, -5651, 92605, 2655, -5651, -5651, 2655, -5651, -5651, 45612, 92605, 92605, 2655, 22862, 41892, -5651, -5651, -5651, -5651, -5651, 41892, -5651, 1567, -5651, 3825, 1928, 1928, -5651, -5651, -5651, -5651, -5651, 4244, 3954, 3954, 41892, 4247, 4218, -5651, 92605, 3963, 1288, -5651, 50864, 92605, 3165, 22862, -5651, 3656, 4036, -5651, 908, 965, 125, -5651, 3905, 305, -5651, -5651, 56149, 3974, 56149, 56149, 94837, 3871, 22862, -5651, 4302, 3640, 3165, 2527, 2591, -5651, 344, 344, 3870, 4160, 4161, 3773, 2591, 4163, 4164, 4168, -5651, -5651, -5651, -5651, -5651, 3251, 708, 188, 1351, 68797, 4123, 1353, 4235, 3658, -5651, 45612, 4324, -5651, -5651, -5651, -5651, 22862,107950, -5651, -5651, -5651, -5651, 3683, 3687, 3689, 3694, 3695, 3697, 3698, 3699, 3700, 3703, 3704, 3713, 3714, 3715, 3718, 3720, 3722, 3726, 3727, 3731, 3737, 3739, 3741, 3742, 3745, 292, -5651, -5651, 3754, -5651, -5651, -5651, -5651, -5651, 1928, -5651, 4177, 57637, -5651, 41148, 3882, 4315, -5651, -5651, 3719, 45612, 73261, 71773, -5651, -5651, -5651, -5651, 3723, 1201,103672, -5651, -5651, 4462, 68797, 4173, -5651, 3721, -5651, 3725, 4214, 4226, -5651, 94837,101533, -5651, -5651, 3165, -5651, -5651, 3734, -5651, -5651, 3864, 3796, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3761, 4015, 4133, -5651, -5651, -5651, 3388, -5651, -5651, -5651, -5651, -5651, -5651, 4369, 75493,104385, 3751, -5651, -5651, -5651, -5651, 2135, -5651, -5651,111515,111515, 111515, 4137, -5651,100045, 22862, -5651, 1830, -5651, 22862, -5651, -5651, 22862, -5651, 3165, 2516,112249, 76237, -5651, 76237,112249, 22862, -5651, 3749, -5651, 4373, 4377, -5651, -5651, -5651, 22862, -5651, 22862, 22862, 1831, 22862, 22862, 22862, 22862, -5651, 22862, -5651, 22862, 22862, -5651, 31332, -5651, 3752, 3750, -5651, -5651, 3753, -5651, 22862, 22862, -5651, -5651, -5651, 22862, 22862, 22862, -5651, -5651, 3758, -5651, -5651, -5651, -5651, 22862, 22862, 22862, -5651, 22862, 3831, 22862, 3883, 22862, 4102, 22862, -5651, 26712, -5651, 3762, -5651, -5651, 22862, 22862, -5651, 22862, 22862, 22862, -5651, -5651, -5651, 22862, -5651, 4319, 22862, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 22862, -5651, 226, 27482, -5651, 22862, 22862, 22862, -5651, -5651, 22862, 3759, 3760, -5651, 92605, 2501, 3184, 305, 3770, -5651, -5651, 3781, 3783, 2994, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1058, 31332, 391, 31332, 2073, 3053, 15932, -5651, 1317, 2073, 4506, 4506, 92605, 4470, 3774, -5651, 22862, 22862, 16702, 22862, 94837, 22862, 3775, 3771, -5651, 3778, 31332, -5651, -5651, 3791, -5651, 2219, 3184, 3878, 4237, -5651, 3165, 34412, 4291, -5651, 45612, 4292, 4339, 3997, -5651, 71773, 68797, 4456, 4458, -5651, 3165, -5651, 3800, -5651, -5651, -5651, 3803, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 351, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 71773, -5651, -5651, -5651, -5651, 344, -5651, 3804, 3810, -5651, 17472, -5651, 344, 344, -5651, -5651, 12055, -5651, -5651, 1050, 4104, 4365, -5651, -5651, 92605, 275, 92605, -5651, 49354, 49354, 87397, 3165, 772, -5651, -5651, -5651, -5651, 3165, -5651, -5651, -5651, -5651, -5651, -5651, 3833, -5651, -5651, -5651, 4573, -5651, -5651, 4240, -5651, 2606, 1775, -5651, -5651, 3165, 38172, 2075, -5651, -5651, -5651, 19012,105098, -5651, 3820, 3826, 3828, -5651, 45612,105811, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3834, -5651, -5651, 19012, 3848, -5651, 4001, -5651, 3723, 1760, 3852, 3836, -5651, -5651, -5651, -5651, -5651, -5651, 216, 231, 752, 2606, -5651, -5651, 194, -5651, -5651, -5651, -5651, -5651, 1333, -5651, -5651, 4001, -5651, 1258, 2591, 3884, -5651, 305, 4075, -5651, -5651, 2527, 121, 121, 4418, 102, 4290, -5651, 4123, 4498, 4422, 4423, -5651, 3251, -5651, -5651, -5651, 92605, -5651, 1884, -5651, -5651, -5651, -90, -5651, 45612, 1889, 4507, 4507, -5651, 1928, 241, -5651, 31332, 4579, -5651, 4343, 41892, 4473, 4474, -5651, 41892, -5651, -5651, 2179, -5651, -5651, 71029, -5651, -5651, -5651, 3165, 223, 2124, 22862, 92605, -5651, 3656, 3919, -5651, -5651, 965, -5651, -5651, -5651, -5651, 56149, -5651, -5651, -5651, 1790, 3849, 2124, 100, 3855, -5651, -5651, 74749, 71029, -5651, 4233, 4234, 1798, -5651, -5651, -5651, -5651, 344, 344, -5651, 343, 344, -5651, -5651, 584, -5651, -5651, 573, 385, 3251, -5651, 2591, 2591, 2591, 2591, 305, 2591, 2591, 2234, -5651, 540, -5651, -5651, 79957, -5651, 4603, 4616, -5651, 4617, -5651, -5651, 893, -5651, 2635, 1069, -5651, 900, -5651, 4409, 92605, 4597, 3658, -5651, 517, 2268, 3165, -5651, 4368, 3872, 3873, 305, 3875, 305, 305, 2591, 2591, 3833, 2591, 305, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 305, 2591, 1028, 3458, 260, 2591, 305, 5701, -5651, -5651, -5651, -5651, 41148, 47, 2606, -5651, 55394, 4414, 3887, -5651, 1353, -5651, -5651, 1913, 4536, -5651, 3886, -5651, -5651, 120, 4084, 3896, 58381, 68797, 68797, -5651, 2897, -5651, 45612, -5651, 4528, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 64333, -5651, -5651, 4206, 2110, 3891, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3888, -5651, -5651, -5651, -5651, -5651, 3449, -5651, -5651, -5651, -5651, -5651,106524, 3889, 3165, 22862, 3165, 3165, 22862, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3899, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3899, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3904, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3906, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4591, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4537, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3899, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3899, -5651, 3899, -5651, 4544, 3899, 3899, -5651, 3909, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3922, 3923, 3924, 2994, -5651, 22862, 22862, 2504, 233, 233, 22862, 1961, 2008, 431, -5651, 2528, 2621, 2647, 1608, 94837, -5651, -5651, 2682, 2689, 2721, 2737, 2767, -5651, 2046, 4018, 2084, 3165, 22862, 3165, 22862, 3165, 22862, 3165, 23632, 2768, -5651, 2256, 3901, -5651, 2259, 4100, 2772, 2773, 2305, -5651, 3068, 4679, 2344, 23632, 2797, 2807, 2085, 2120, 2811, 94837, 92605, 3926, 3929, 3929, 407, -5651, 3932, -5651, -5651, -5651, 3933, -5651, 22862, 22862, 3931, 640, -5651, 22862, 2073, 31332, 489, 31332, -5651, -5651, 4048, -5651, 22862, -5651, 4516, 3939, 4159, 3942, 3944, 3735, 3950, 3958, 3959, 3930, 3165, -5651, -5651, 92605, 3962, 353, -5651, 3833, -5651, 4571, -5651, 4673, 3965, 3984, 3968, 3791, -5651, 71773, -5651, 45612, -5651, 4626, 3431, -5651, 68797, 68797, -5651, 81445, -5651, 56893, 92605, 92605, -5651, 22862, -5651, -5651, 636, 4724, 4727, -5651, 29022, 2652, -5651, 3165, -5651, -5651, -5651, -5651, -5651, 24, 4529, -5651, -5651, -5651, -5651, -5651, 344, -5651, 344, -5651, 3580, -5651, -5651, -5651, -5651, 3490, -5651, 1141, -5651, -5651, -5651, 367, 3978, -5651, 344, 1474, -5651, 19012, 3982, 3979, -5651, 4447, -5651, 1058, 190, -5651, 3609, -5651, 3985, 88141, -5651, 3986, -5651, -5651, 4530, -5651, -5651, 4335, 53129, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1141, 4031, 4216, -5651, -5651, -5651, -5651, -5651, 3903, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 45612, 4568, 68797, 1069, 4364, 45612, 45612, 10240, 9256, 3251, 3991, 92605, -5651, -5651, 2591, -5651, -5651, 1884, -5651, -5651, 3658, 3992, 527, 3992, -5651, -5651, -5651, -5651, 353, 1928, 1928, 3389, 4477, 41892, 41892, 4296, 4480, 22862, 4002, -5651, 92605, -5651, 1272, -5651, 4402, -5651, -5651, 22862, -5651, -5651, -5651, -5651, 3165, 4729, 4004, -5651, -5651, -5651, -5651, -5651, -5651, 22862, -5651, 54639, 22862, 4005, 4008, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 226, 226, -5651, -5651, 226, 226, -5651, -5651, -5651, -5651, 226, 226, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 708, -5651, 4752, 1320, -5651, 4578, -5651, -5651, -5651, -5651, 1070, 305, 305, 305, 3458, 1707, -5651, 2635, 2035, 4341, -5651, 8829, 2073, 211, 4504, 2161, -5651, 2355, -5651, 4740, -5651, 230, -5651, -5651,107950, 207, 242, -5651, 284, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2606, -5651, 92605, 4356, 4545, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 22862, -5651, 4666, -5651, -5651, -5651, -5651, 77, 77, -5651,107950, -5651, -5651, 190, -5651, -5651, 4528, 4297, -5651, 1101, -5651, 3899, 3899, -14, -5651, 3904, 4574, 3904, -5651, -5651, 4411, 3422, 2594, 4411, -5651, 2594, 3904, -5651, 4025, -5651, 4411, -5651, 2594, 3899, -5651, 3899, -5651, -5651, 2594, 3899, -5651, 4026, 3904, 4411, 519, 2041, 3904, -5651, 3899, 1492, 3899, 3899, 3899, 4238, 3899, 3899, -5651, 3904, -5651, -5651, -5651, -5651, -5651, -5651, 156, 3899, 3899, 3899, 3899, 3906, 4683, 4684, -5651, 92605, -5651, 22862, -5651, -5651,111515, 92605, 431, 3165, 2848, -5651, -5651, -5651, 2009, 2968, -5651, -5651, -5651, 4786, -5651, -5651, 3899, -5651, 2009, -5651, -5651, -5651, -5651, -5651, -5651, 2009, -5651, -5651, -5651, -5651, 4033, 4506, 4506, -5651, 4753, 4569, 4656, 2818, 22862, 22862, -5651, 22862, -5651, -5651, -5651, 1799, 4044, 4518, -5651, -5651, -5651, -5651, -5651, -5651, 22862, 22862, 22862, 3165, 3165, 3165, 4506, -5651, -5651, 3336, -5651, -5651,112249, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 260, 4506, -5651, -5651, 22862, 22862, -5651, -5651, -5651, 92605, 3184, 4049, 4333, -5651, -5651, -5651, 3184, 4196, -5651, -5651, 3184, 305, -5651, -5651, -5651, 2366, 640, -5651, 22862, 2073, 4638, 4060, 4782, 4064, -5651, -5651, -5651, -5651, -5651, -5651, 22862, 81445, -5651, 4065, 4066, -5651, -5651, -5651, 4503, 22862, 4686, 4636, -5651, 3184, 92605, -5651, -5651, -5651, 68797, 3553, 3553, 88885, -5651, -5651, -5651, -5651, 1873, 344, 344, -5651, 3165, -5651, -5651, 4078, 4080, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1141, -5651, 38172, 2606, 22092, -5651, -5651, -5651, 19012, -5651, 4081, 38172, 4546, -5651, -5651, -5651, 4414, 198, -5651, -5651, 89629, -5651, 4082, -5651, 4072, -5651, 1932, 4416, 4688, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4085, -5651, -5651, -5651, 4101, 4103, 4106, -5651, 4087, -5651, 45612, -5651, -5651, 4113, -5651, -5651, 38916, 4707, 4138, 4457, 45612, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 4459, 344, 344, 344, 344, 344, 344, 344, 344, -5651, 344, 344, 1773, 92605, 344, 344, -5651, -5651, -5651, 4664, -5651, 8206, -5651, 344, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1159, 4681, 1195, -5651, -5651, 1238, 4832, 4108, -5651, 4245, -5651, -5651, -5651, -5651, 4212, 4245, 3658, 2744, -5651, -5651, -5651, 4592, -5651, -5651, -5651, 4594, 3165, 92605, -5651, -5651, -5651, 1609, 2060, 4726, 2124, 4111, 92605, 2124, 965, 125, 3165, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 579, -5651, 79957, -5651, -5651, -5651, -5651, -5651, 4867, 4868, -5651, -5651, -5651, -5651, 4306, 664, 4225, 1638, 4687, 4517, 4690, 2315, 2376, 344, 4692, 4835, -5651, 510, 344, 4693, 4744, 4198, 4754, 4694, -5651, 4207, 4517, 4695, 4323, 4699, 4701, 4703, -5651, -5651, 9256, -5651, -5651, -5651, -5651, 151, 43380, -5651, -5651, -5651, -5651, -5651, 4318, 22862, 22862, 4725, 92605, 4731, -5651, 4541, -5651, 92605, -5651, 1058, -5651, -5651, -5651, 4445, -5651, 2373, -5651, -5651, 2394, -5651, -5651, 2407, -5651, -5651, -5651, -5651, 4807, -5651, 4497, 3241, -5651, 1058, 3165, 4353, 4624, 4624, -5651, -5651, -5651, 4736, -5651, -5651, -5651, -5651, 4787, -5651, 4411, 344, 4411, -5651, -5651, 1060, -5651, 1060, -5651, 484, 3485, 76981, 4411, -5651, -5651, -5651, -5651, 4630, 2594, 2009, 76237, 555, 4551, -5651, -5651, -5651, 1060, 2941, -5651, -5651, 4411, -5651, -5651, -5651, 2941, 1060, -5651, 4634, -5651, -5651, -5651, 1060, 4411, 4370, 92605, 4846, 2594, -5651, -5651, 100789, 2594, 1060, 4846, 4710, -5651, 2009, 4891, 2594, 4411, 1060, 1060, -5651, 290, 4166, -5651, 3165,111515, -5651, -5651, 4167, 4169, 4170, 4171, -5651, -5651, 2408, 4174, -5651, -5651, -5651, -5651, 4172, 4175, 22862, 2941, 4656, 56149, 4178, -5651, -5651, 2836, 2126, 2419, 4454, 4408, -5651, 4348, -5651, 2841, 3165, 3165, 1632, 3904, -5651, -5651, -5651, -5651, 4808, 3899, -5651, 4893, -5651, 3899, 2009, -5651, -5651, -5651, -5651, -5651, 4181, 2435, 1858, 2855, 2866, -5651, -5651, -5651, 4182, -5651, -5651, 440, -5651, 4183, -5651, 2438, 4902, 368, 22862, -5651, 4184, -5651, -5651, 92605, -5651, -5651, 4506, 1194, -5651, 2449, -5651, -5651, -5651, 4186, 3553, -5651, -5651, 59125, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4001, -5651, 4000, 2652, -5651, -5651, -5651, -5651, 4565, 4188, 4187, -5651, -5651, -5651, 4185, 101, 38172, -5651, -5651, -5651, 4190, 4191, -5651, -5651, -5651, 88141, -5651, 2452, -5651, -5651, 4928, 19012, 2591, 2591, 2591, 2441, 4197, -5651, 79957, 4199, 4200, 46356, 2099, 92605, 2464, -5651, -5651, -5651, -5651, -5651, 2083, -5651, 1778, 2655, 464, 464, -5651, 4195, 45612, -5651, 344, -5651, 308, 324, 326, 336, -5651, 3833, 305, 305, 2591, 2591, 344, 305, 79957, 2089, 305, 3833, 3833, 346, 2591, 2936, 308, -5651, -5651, -5651, 305, 308, 192, -5651, -5651, 7589, -5651, 68053, 9256, 77725, 3634, -5651, -5651, 2040, 4327, -5651, -5651, -5651, 4558, 1195, -5651,100789, -5651, -5651, -5651, -5651, -5651, 1238, 1277, -5651, -5651, -5651, 4203, 77725, -5651, -5651, 2591, -5651, 4935, 4958, -5651, -5651, 4613, 22862, 4213, 22862, 4215, 2472, -5651, 464, -5651, 464, -5651, 1609, 4932, 4934, 4884, 4937, 2060, -5651, 2387, -5651, -5651, -5651, -5651, -5651, -5651, 965, -5651, -5651, 4220, -5651, -5651, -5651, -5651, 4559, -5651, 4977, -5651, 4678, 44124, 2655, -5651, 2096, 4266, -5651, -5651, -5651, 4870, 2924, 2924, 1202, 2924, 89629, 92605, 45612, 1288, 424, 4852, 2274, 2141, 4271, 4791, 2924, 2924, 90373, 1202, 38172, -5651, -5651, -5651, 2924, -5651, 2924, 45612, 91117, 1202, -5651, -5651, -5651, 92605, -5651, 2924, 1202, -5651, 1202, 1202, 89629, -5651, 12082, -5651, -5651, 38916, 1765, -5651, 3165, 4506, 4627, -5651, -5651, 4349, 2591, 4598, -5651, -5651, 4708, -5651, 92605, 265, -5651, 305, -5651, 305, -5651, 305, -5651, -5651, 31332, -5651, 3555, -5651, -5651, 101, -5651, -5651, 1887, -5651, -5651, 4600, 4414, 4746, -5651, -5651, 92605, -5651, 4704, 4730, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 78469, 344, -5651, -5651, 2477, -5651, -5651, 2483, -5651, -5651, -5651, -5651,100789, -5651, 2484, -5651, 65821, -5651, -5651, -5651, -5651, 4846, 4241, -5651, -5651, -5651, 4262, -5651, -5651, -5651, -5651, -5651, 4891, -5651, -5651, 61357, -5651, -5651, -5651, 77725, 4907, -5651, -5651, -5651, -5651, -5651, -5651, 4999, -5651, -5651, 4251, 2124, -5651, 4254, -5651, -5651, -5651, -5651, 22862, -5651, 4490, -5651, 4596, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3833, -5651, -5651, -5651, 4261, -5651, 305, -5651, 22862, -5651, -5651, 4263, 4540, 2124, -5651, -5651, 4366, 4237, 4268, -5651, 4636, 92605, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4315, -5651, -5651, -5651, 38172, 59869, 4270, 4269, -5651, 344, -5651, -5651, 92605, -5651, -5651, 3833, 4640, -5651, 2488, -5651, -5651, -5651, -5651, 92605, 4274, 4478, 92605, 92605, -5651, -5651, 4277, 92605, -5651, -5651, -5651, 38916, 4279, 4903, 4904, 464, -5651, 2655, 4829, 46356, -5651, 2655, 2655, 63589, 92605, 4282, 2591, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4286, -5651, -5651, -5651, -5651, -5651, 2591, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 5017, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4664, -5651, -5651, -5651, -5651, 4287, 4288, 92605, -5651, 65077, -5651, -5651, -5651, -5651, 4970,107950, -5651, -5651, -5651, 4873, 211, 92605, 4289, 92605, 4294, -5651, -5651, 4295, -5651, 4289, 4294,107237, -5651, -5651, 1277, -5651, -5651, -5651, 4303, -5651, -5651, 65821, 3634, -5651, -5651, -5651, -5651, -5651, 4308, 4309, 3165, 92605, 3165, 92605, -5651, 4959, 4959, -5651, 2941, 2941, 5027, 2941, -5651, 5029, 5030, 2387, -5651, -5651, 5065, 664, 4691, 2035, 2073, 1202, 2073, 4971, -5651, -5651, 92605, 46356, 89629, 46356, -5651, 4810, -5651, 71029, 46356, 2924, 92605, -5651, 4974, -5651, 4945, 46356, 46356, -5651, -5651, 89629, 4321, -5651, 2124, 2611, 92605, 46356, -5651, -5651, -5651, 3184, 4794, 46356, 89629, -5651, 89629, -5651, 4538, 4822, 2321, -5651, 4326, 4328, 92605, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1265, -5651, -5651, 2489, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 802, -5651, 4531, -5651, 1887, -5651, -5651, -5651, 45612, -5651, -5651, -5651, -5651, -5651, -5651, 2009, 2941, 2009, 4846, -5651, 92605, -5651, 22862, -5651, 92605, 5082, -5651, -5651, -5651, -5651, 14905, -5651, -5651, -5651, 4655, -5651, 2496, -5651, 4337, 22862, -5651, -5651, 2870, -5651, -5651, 4338, -5651, 4344, 3849, -5651, 3976, 4468, 4298, 4300, 4301, 4523, 4685, -5651, 4532, -5651, 3352, 4503, 4346, 31332, -5651, -5651, 1994, -5651, -5651, -5651, -5651, 94837, -5651, -5651, 4345, -5651, 38172, 19012, -5651, -5651, 4763, -5651, 2503, 2124, 4351, 92605, 4355, 2521, 2533, 92605, 4357, -5651, 22862, 2655, -5651, -5651, 46356, 45612, -5651, 4820, 1456, 46356, 46356, 4352, 1918, 4354, 4358, 502, 1966, 4360, 4026, 1985, 60, 519, 412, 2029, 4362, 2045, 4363, 2050, 2071, 2111, 2118, 2134, 4367, 5059, -5651, -5651, 4372, 4374, 4375, 4376, 4378, 4379, 4380, 4381, 4382, -5651, -5651, 45612, -5651, -5651, 198, 192, -5651, 77725, -5651, 1619, 4563, -5651, -5651, 5138, -5651, 4725, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4371, -5651, 4384, -5651, -5651, 77725, -5651,109376, -5651, -5651, -5651, 98557, 5287, 2534, 2537, 444, -5651, -5651, -5651, -5651, 2941, -5651, 2941, 2941, -5651, 4391, -5651, -5651, -5651, 5026, -5651, 5028, -5651, 473, 1806, -5651, 46356, 1653, 4866, 4869, 5086, -5651, 46356, 4191, 92605, -5651, -5651, 1913, -5651, 38172, -5651, -5651, 4877, 4881, -5651, 4874, 1765, -5651, 92605, -5651, -5651, -5651, 4489, -5651,107950, 4576, 5085, 5105, -5651, 92605, 91861, 31332, -5651, -5651, 5018, -5651, 3609, -5651, -5651, -5651, -5651, -5651, 3165, 4388, -5651, 61357, -5651, -5651, -5651, -5651, -5651, 2124, -5651, -5651, -5651, 1367, -5651, 5130, 1372, -5651, -5651, 1217, -5651, -5651, -5651, -5651, 92605, 4397, 4485, -5651, -5651, 4471, -5651, -5651, 2601, -5651, 70, 60613, -5651, -5651, -5651, 1353, 92605, -5651, 5155, 4400, 708, 1353, 1353, 4401, 92605, 2898, 46356, 4820, 1527, 4405, 121, -5651, 121, -5651, -5651, 3035, 65821, -5651, -5651, 3523, 92605, 4407, 5171, -5651, -5651, 4620, -5651, 92605, -5651, -5651, -5651, 2161, -5651, 3991, 3992, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 5138, 4975, 2547, -5651, -5651, -5651, -5651, -5651, 5127, -5651, 5132, 4415, 4417, -5651, -5651, -5651, -5651, 46356, 1144, -5651, -5651, 5055, -5651, 5102, 5106, 1765, -5651, 45612, 4989, 74749, -5651, -5651, -5651, 1202, -5651, 92605, 46356, 45612, -5651, -5651, 4191, 1333, 22862, 4780, 5138, -5651, 4625, 4628, -5651, -5651, 2551, -5651, -5651, 353, 4914, -5651, -5651, 92605, -5651, -5651, -5651, 3976, -5651, -5651, 4562, 352, -5651, 2568, -5651, -5651, -5651, 3184, -5651, 4431, -5651, 4801, 344, 344, 4804, 344, 344, 344, 344, 4440, 2601, -5651, -5651, -5651, 4796, -5651, -5651, -5651, 1813, 2124, 4443, 92605, 4444, 2576, 2918, 729, 92605, 4438, -5651, -5651, -5651, 121, 92605, 5049, -5651, 4448, -5651, 4449, 4452, -5651, -5651, 5070, 2591, -5651, 4533, -5651, -5651, 3035, -5651, -5651, -5651, 4495, 5081, 5039, -5651, 79957, 33642, -5651, 4947, -5651, 4905, 5146, -5651, 5193, 3554, -5651, -5651, -5651, -5651, -5651, -5651, 92605, 4460, 45612, 4541, -5651, -5651, 4245,107950,109376, -5651, -5651, 2744, -5651, 98557, 10428, -5651, -5651, 88141, 88141, 5059, 3184, 4636, -5651, -5651, -5651, 33642, -5651, 321, 4636, -5651, -5651, -5651, -5651, 321, 5094, -5651, 3165, 22862, -5651, -5651, -5651, -5651, -5651, 91861, -5651, 1288, -5651, -5651, -5651, -5651, -5651, -5651, 92605, -5651, 4466, -5651, -5651, 133, 344, 2591, 2591, 344, 3376, 3376, 3184, 79957, 4555, -5651, -5651, 344, 121, 2591, 344, 121, -5651, -5651, 345, 1813, -5651, -5651, -5651, -5651, -5651, -5651, 1418, 1353, -5651, 4661, 345, 2918, -5651, -5651, 345, 729, -5651, -5651, 4472, 92605, 4476, 4479, -5651, 2579, -5651, 1645, 5057, 92605, 4481, 92605, 92605, -5651, -5651, -5651, -5651, -5651, -5651, 4837, -5651, 4482, 4483, 3458, 3458, 15932, -5651, -5651, -5651, -5651, -5651, -5651, 5063, -5651, 4534, 1491, 344, -5651, 3702, 4484, 92605, 5142, 4848, 3634, -5651, 5266, -5651, 5266, -5651, -5651, -5651, 5066, -5651, -5651, -5651, -5651, -5651, 2067, 4492, 2585, -5651, -5651, 2640, -5651, 4539, 4543, -5651, 321, -5651, 4494, 3165, -5651, 38172, -5651, 4485, -5651, -5651, 2644, -5651, 28252, -5651, -5651, -5651, 2591, -5651, -5651, 2591, -5651, -5651, -5651, -5651, -5651, 2658, -5651, 79957, -5651, -5651, 305, -5651, -5651, 5110, 4941, -5651, 4700, 1813, 2589, -5651, -5651, -5651, -5651, -5651, 4500, 92605, 92605, 4505, -5651, 92605, -5651, -5651, -5651, 1395, -5651, 2672, 92605, 2685, 2692, -5651, -5651, -5651, -5651, 4502, 4508, -5651, 55, -5651, -5651, 3702, 92605, 4496, -5651, -5651, 3634, -5651, -5651, -5651, 4613, -5651, 5071, 2744, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4636, 4509, -5651, 344, 5041, -5651, -5651, 4466, -5651, 4511, -5651, 353, -5651, -5651, 79957, -5651, 4555, -5651, -5651, -5651, -5651, -5651, -5651, 345, -5651, -5651, 2713, 4400, 92605, -5651, 1200, 1200, 1813, 2718, 2918, 729, -5651, 300, -5651, 1677, 1677, 1770, -5651, 92605, -5651, -5651, -5651, 2744, 1332, -5651, 2723, 38172, 19012, 4818, 4402, -5651, 28252, 4519, 3528, -5651, -5651, -5651, 4829, 4520, 4400, -5651, -5651, 461, 4968, 5087, 5099, -5651, 1813, -5651, -5651, -5651, 4522, -5651, 1677, -5651, -5651, -5651, -5651, -5651, 1613, -5651, 5195, -5651, 3537, -5651, -5651, -5651, 5107, 1332, 1332, -5651, -5651, -5651, 5243, 4726, -5651, -5651, -5651, 3528, -5651, -5651, 1813, 4525, -5651, -5651, -5651, 5015, 5211, -5651, -5651, -5651, -5651, 1613, -5651, 4665, -5651, -5651, -5651, -5651, -5651, -5651, 313, 5113, -5651, 5114, -5651, 2941, 5175, -5651, -5651, 1813, 1200, 1200, -5651, -5651, -5651, -5651, 5203, 4888, -5651, 5291, 4542, -5651, -5651, -5651, 1454, 1273, 35167, 5064, -5651, -5651, 79957, -5651, -5651, -5651, -5651, 79957, -5651, 2739, -5651, -5651, 38172, -5651, -5651,107950, -5651, -5651, 35922, 4548, -5651, 344, -5651, 5138, -5651, 38172, -5651, -5651, -5651, 19012, -5651, -5651 }; /* 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_int16 yydefact[] = { 0, 3647, 2, 1026, 2311, 0, 436, 0, 1258, 618, 2158, 2305, 2304, 2079, 476, 220, 382, 2081, 2378, 0, 0, 472, 1274, 764, 502, 0, 326, 0, 0, 479, 324, 220, 1323, 3280, 2205, 0, 3387, 2145, 0, 1321, 474, 2476, 2084, 0, 3544, 0, 0, 0, 3549, 72, 2051, 0, 1274, 348, 3389, 85, 0, 0, 1274, 2362, 3549, 0, 2390, 0, 0, 2185, 0, 0, 0, 0, 3, 3649, 22, 0, 45, 27, 33, 17, 21, 2067, 16, 47, 60, 53, 30, 3742, 3743, 3745, 43, 3580, 42, 11, 63, 64, 19, 50, 12, 15, 18, 41, 49, 37, 44, 57, 58, 1344, 1320, 1348, 1319, 1315, 1311, 1330, 1331, 1332, 1338, 25, 26, 34, 51, 68, 23, 65, 61, 24, 2311, 13, 28, 29, 14, 52, 46, 38, 62, 69, 39, 0, 59, 40, 67, 32, 54, 31, 9, 10, 20, 55, 56, 48, 70, 35, 66, 36, 8, 3546, 3744, 168, 1070, 0, 0, 0, 0, 2077, 0, 2077, 1164, 1389, 3578, 3579, 3580, 1275, 0, 1276, 0, 0, 2518, 2519, 2761, 2776, 2824, 2576, 2868, 2878, 2895, 2902, 3038, 2729, 2774, 2775, 2575, 2804, 2637, 2896, 2919, 2947, 3033, 2714, 2713, 2715, 3019, 2716, 2717, 2718, 2719, 2720, 3020, 2612, 2721, 2722, 2723, 2725, 2724, 2726, 2727, 3021, 2613, 3673, 2614, 2686, 2728, 2688, 2687, 2730, 2615, 2616, 2731, 2732, 2733, 2735, 2734, 2667, 2618, 2617, 2736, 2738, 2737, 2689, 2690, 2670, 2739, 3022, 2740, 2742, 2619, 3017, 2620, 2621, 2622, 2741, 2623, 2743, 2671, 2744, 2745, 2624, 2746, 2747, 2748, 2749, 2751, 2750, 2664, 2752, 2753, 2755, 2756, 2757, 2754, 2758, 2759, 2762, 2760, 2692, 2691, 3023, 2625, 2763, 2764, 2765, 2766, 2768, 2769, 2767, 2770, 2672, 2771, 2772, 2773, 2781, 3674, 2782, 2784, 2783, 2693, 2785, 2786, 2787, 2789, 2788, 2790, 2792, 2626, 2627, 2628, 2791, 2793, 2777, 2778, 2779, 2780, 2795, 2794, 2796, 2797, 2798, 2694, 2629, 2668, 2630, 3016, 2799, 2800, 2573, 2801, 2802, 3024, 2631, 2683, 2803, 2673, 2806, 2805, 2632, 2807, 2633, 2808, 3025, 3026, 2809, 2810, 2812, 2814, 2811, 2815, 2816, 2822, 2634, 2813, 2817, 2818, 2819, 2820, 2821, 2823, 2695, 2825, 2665, 2826, 3027, 3028, 2827, 2828, 2829, 2830, 2684, 2831, 2832, 2833, 2834, 2847, 2848, 2838, 2839, 2841, 2842, 2845, 2840, 2846, 2851, 2850, 2852, 2853, 2854, 2855, 2856, 2849, 2836, 2843, 2844, 2837, 2857, 2858, 2835, 2859, 2861, 2860, 2862, 2696, 2863, 2864, 2865, 2866, 2867, 3029, 2869, 2870, 2872, 2871, 2873, 3030, 2874, 2875, 2876, 2680, 2877, 2697, 2698, 2879, 2880, 3031, 2881, 2882, 2887, 2888, 2889, 2666, 2884, 2883, 2885, 2886, 2699, 2700, 2701, 2890, 2891, 2892, 2894, 2893, 2674, 2636, 2635, 3032, 2638, 2897, 2898, 2639, 2899, 2901, 2900, 2682, 2640, 2903, 2904, 2906, 2905, 2641, 2669, 2642, 2643, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2702, 2703, 2920, 2921, 2922, 2924, 2923, 2925, 2926, 2930, 2927, 2928, 2929, 2931, 2644, 2932, 2675, 2933, 2934, 2935, 2645, 2937, 2936, 2646, 2938, 2939, 2940, 2941, 2942, 2681, 2676, 2943, 2944, 2946, 2704, 2945, 2948, 2949, 2677, 2950, 2951, 3034, 2647, 2952, 2953, 2705, 2685, 2648, 3035, 2955, 2678, 2712, 2954, 2956, 2650, 2651, 2957, 2958, 2959, 2649, 2960, 2652, 3036, 2961, 2963, 2962, 2964, 2965, 2966, 2967, 2653, 2968, 2969, 2654, 2970, 2655, 2971, 2972, 3037, 2973, 2975, 2974, 2976, 2977, 2978, 2979, 2980, 2981, 2983, 2985, 2984, 2982, 2986, 2987, 2706, 2988, 2656, 2707, 3040, 3041, 2708, 2989, 2990, 2991, 2992, 3039, 2679, 2993, 2994, 2659, 2995, 2996, 2998, 2997, 2657, 2658, 2999, 3000, 2663, 3042, 3001, 3007, 3043, 2709, 2710, 3002, 3003, 3014, 3004, 3006, 3005, 3009, 3008, 3015, 3044, 2574, 2660, 3010, 3011, 2661, 3012, 2662, 3013, 2711, 2523, 2539, 250, 2540, 2570, 2568, 2572, 2566, 2571, 2564, 2565, 3018, 2611, 2569, 2567, 406, 131, 0, 0, 2180, 2077, 2055, 227, 224, 2077, 228, 2077, 223, 2077, 2077, 2080, 2077, 2077, 2077, 225, 226, 0, 0, 0, 406, 2087, 2380, 0, 2400, 2401, 2395, 3377, 3378, 3372, 384, 0, 0, 0, 2278, 2277, 0, 0, 311, 323, 326, 319, 322, 0, 220, 2077, 384, 325, 326, 0, 1353, 0, 2283, 326, 0, 2156, 2394, 0, 406, 2477, 2474, 2087, 2351, 2353, 0, 2349, 1465, 1464, 0, 3549, 0, 2529, 1253, 1285, 1210, 3550, 3551, 0, 77, 80, 2317, 349, 0, 0, 0, 616, 0, 0, 1218, 0, 3551, 3561, 2392, 0, 131, 1189, 0, 131, 2188, 2077, 2077, 3630, 3631, 0, 0, 0, 3625, 0, 3632, 0, 1348, 0, 1334, 1, 5, 0, 0, 616, 980, 616, 981, 0, 616, 616, 0, 0, 0, 0, 3585, 3578, 3579, 3580, 0, 2037, 1892, 1349, 1348, 1984, 1988, 3566, 3566, 3566, 0, 0, 1984, 1339, 2779, 3016, 2901, 0, 2296, 2310, 2294, 2512, 1317, 1313, 2623, 1029, 1071, 1034, 234, 0, 0, 1036, 0, 1047, 2545, 2544, 2543, 1044, 220, 0, 1166, 0, 0, 0, 3586, 3585, 0, 1230, 2298, 2299, 2300, 2301, 2302, 2303, 2306, 0, 256, 406, 438, 1392, 449, 440, 443, 0, 132, 133, 1256, 1259, 0, 619, 2184, 2183, 0, 2182, 2159, 0, 2180, 0, 2075, 229, 0, 230, 0, 220, 0, 220, 2060, 0, 2077, 2077, 477, 3695, 0, 3437, 3455, 3456, 1406, 3452, 3457, 0, 3454, 3449, 0, 0, 3451, 3448, 0, 0, 3476, 3450, 3453, 2614, 2747, 2788, 2628, 2796, 2797, 2911, 2915, 2920, 2931, 2935, 2678, 2650, 2976, 3430, 3418, 3432, 3431, 0, 0, 3435, 3440, 0, 3439, 0, 0, 2089, 2381, 2382, 2386, 0, 2404, 0, 397, 0, 0, 3681, 0, 0, 386, 387, 3680, 3748, 0, 391, 3679, 0, 384, 3735, 0, 406, 3729, 3737, 3736, 3738, 3739, 3740, 3741, 417, 0, 418, 419, 473, 3732, 2541, 0, 3676, 3678, 3675, 3677, 2542, 3701, 0, 0, 3734, 0, 3733, 3730, 3731, 1272, 1697, 0, 2451, 2520, 2521, 0, 2464, 2469, 2470, 2462, 2463, 2467, 2443, 2466, 2442, 2468, 1467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1406, 1406, 1406, 1403, 0, 0, 0, 0, 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1403, 0, 0, 2459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3038, 2461, 1406, 1403, 1403, 0, 0, 3033, 0, 0, 0, 3019, 2612, 3021, 2667, 2619, 2620, 2621, 2622, 2664, 2691, 3023, 3024, 3025, 3027, 3028, 3029, 3030, 2880, 3031, 3032, 2682, 2909, 2704, 3034, 3035, 3037, 2707, 3040, 3041, 2708, 3039, 2679, 3042, 3043, 3044, 2660, 2711, 0, 0, 0, 0, 1466, 0, 0, 1346, 1542, 765, 1412, 1424, 1440, 0, 1540, 1539, 1543, 1545, 1551, 1459, 1572, 1511, 1512, 1514, 1513, 1518, 1519, 0, 1673, 1520, 0, 0, 1517, 2456, 1516, 1515, 2457, 2458, 1510, 2498, 2528, 0, 0, 2522, 3018, 2611, 504, 503, 0, 345, 338, 333, 341, 335, 337, 336, 342, 343, 344, 339, 334, 340, 327, 0, 312, 0, 320, 3562, 0, 1277, 384, 480, 346, 3437, 2715, 2915, 3410, 0, 3417, 0, 3577, 3571, 3574, 3573, 3569, 3572, 3570, 3575, 1374, 3576, 1373, 1324, 1354, 1371, 1372, 0, 0, 0, 2601, 2600, 900, 2598, 3301, 3302, 0, 2602, 0, 0, 3303, 2968, 2989, 2599, 0, 2534, 0, 2535, 2595, 2593, 2597, 2596, 2590, 2591, 2594, 3281, 3286, 3282, 2592, 0, 2311, 0, 0, 2291, 978, 977, 0, 0, 0, 0, 2227, 0, 900, 2291, 2228, 0, 1949, 2281, 2284, 0, 3305, 2241, 979, 3306, 2277, 0, 2213, 2229, 2190, 2234, 131, 3307, 131, 2280, 1949, 2291, 0, 2206, 0, 0, 0, 2311, 1388, 0, 321, 3388, 2157, 1162, 2125, 1322, 2111, 0, 475, 0, 2092, 0, 2350, 3750, 3545, 0, 0, 0, 0, 3554, 1739, 2052, 0, 81, 76, 0, 0, 0, 0, 2517, 3390, 86, 0, 0, 3644, 74, 0, 2368, 0, 2366, 2363, 2365, 0, 3554, 0, 2391, 1196, 1196, 0, 0, 1188, 1190, 1191, 1196, 1196, 2189, 0, 0, 0, 2450, 2448, 2449, 2530, 3627, 2447, 2446, 3636, 3638, 3621, 0, 3624, 3623, 3633, 1337, 1336, 6, 71, 0, 142, 616, 220, 220, 616, 167, 148, 151, 616, 616, 616, 160, 162, 616, 616, 0, 222, 0, 0, 3585, 1352, 2824, 0, 0, 1364, 1350, 1787, 1351, 1819, 1789, 1759, 1750, 1749, 1815, 1816, 1818, 1817, 1820, 1822, 1812, 0, 0, 2050, 0, 2045, 1893, 1898, 1892, 0, 0, 0, 0, 0, 0, 1983, 1949, 1992, 1954, 1985, 1316, 1981, 0, 1312, 1377, 1377, 3568, 3567, 3565, 3564, 3563, 1986, 1335, 1343, 1341, 1342, 1987, 1333, 0, 2308, 2514, 0, 0, 2313, 0, 1984, 1988, 2116, 2115, 2118, 0, 914, 0, 235, 0, 3583, 3584, 3582, 1406, 2546, 2549, 3581, 2550, 235, 2078, 0, 0, 0, 2077, 1170, 1171, 1165, 1167, 1169, 0, 0, 0, 0, 2312, 0, 252, 258, 251, 447, 0, 0, 384, 0, 444, 87, 0, 1260, 2068, 2070, 0, 2160, 0, 2169, 2072, 1362, 1892, 2162, 2074, 2178, 2181, 2057, 0, 0, 2063, 2062, 0, 2064, 0, 0, 232, 2065, 2053, 0, 453, 455, 3438, 3436, 3473, 3472, 3477, 0, 3474, 3470, 0, 3429, 3478, 3463, 3467, 0, 3479, 0, 3464, 3471, 3485, 3484, 3486, 3481, 3480, 0, 3483, 3469, 0, 3468, 3489, 0, 3433, 0, 0, 429, 0, 2094, 2095, 2091, 1162, 2090, 2387, 0, 2379, 0, 1295, 2406, 2405, 2402, 1884, 3374, 3379, 406, 398, 0, 0, 2880, 0, 405, 404, 403, 3648, 426, 406, 392, 415, 0, 0, 3650, 385, 388, 424, 427, 3700, 466, 462, 470, 464, 3746, 280, 0, 0, 2520, 2521, 2453, 2452, 2522, 2444, 2465, 0, 0, 0, 1546, 1890, 1890, 1890, 0, 0, 1747, 0, 0, 0, 0, 1890, 0, 1584, 1558, 1557, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 1703, 1703, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1741, 1743, 2498, 1890, 0, 1890, 0, 1411, 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1890, 1890, 1890, 0, 1601, 1603, 1602, 1890, 1890, 0, 0, 0, 0, 0, 0, 1890, 0, 0, 0, 0, 0, 1737, 2471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1737, 0, 0, 0, 0, 0, 0, 2473, 0, 0, 0, 2472, 0, 0, 0, 0, 0, 0, 1737, 0, 0, 1548, 0, 1547, 1549, 0, 1346, 766, 0, 0, 0, 1463, 1461, 1462, 1460, 0, 0, 0, 0, 1469, 1471, 1473, 0, 1468, 1470, 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1550, 0, 0, 0, 0, 0, 2445, 0, 1622, 0, 516, 2376, 0, 0, 0, 310, 1279, 2551, 0, 0, 406, 3436, 0, 0, 0, 3433, 1389, 1370, 3308, 0, 899, 0, 0, 902, 904, 903, 3340, 0, 901, 3349, 3347, 3345, 3344, 0, 0, 3288, 3290, 0, 908, 910, 909, 3338, 907, 0, 3324, 0, 0, 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, 0, 2258, 0, 1388, 1388, 2207, 0, 2291, 0, 2291, 2281, 0, 2291, 2287, 2247, 2240, 0, 0, 677, 1966, 1950, 2233, 2285, 2286, 2291, 0, 0, 2291, 0, 2248, 2281, 2291, 2202, 0, 0, 2194, 2199, 2195, 0, 2201, 2200, 2203, 2191, 2192, 0, 2220, 0, 2232, 2239, 0, 2219, 2226, 0, 2237, 2281, 2281, 0, 2291, 2291, 2291, 1163, 0, 1389, 0, 3697, 2475, 2478, 2484, 2490, 2096, 2093, 2352, 3648, 0, 0, 1287, 1289, 1288, 1305, 1212, 3553, 0, 3555, 0, 3557, 0, 78, 0, 0, 2344, 2342, 0, 0, 0, 2336, 2338, 2341, 2337, 0, 0, 2343, 131, 0, 2339, 2345, 2318, 2321, 2328, 1388, 2319, 0, 0, 347, 350, 352, 0, 355, 1884, 3393, 3392, 0, 0, 0, 1216, 1219, 0, 2373, 2370, 131, 0, 2677, 3560, 3558, 0, 1184, 1200, 134, 1194, 1195, 0, 0, 1187, 134, 3374, 3645, 3646, 0, 0, 3622, 3639, 3620, 0, 3634, 3635, 3619, 7, 4, 154, 0, 145, 0, 0, 0, 616, 616, 137, 0, 3773, 1389, 1389, 0, 0, 616, 616, 616, 0, 1784, 0, 1750, 1815, 1816, 1818, 0, 1817, 0, 0, 1884, 0, 0, 1807, 1832, 0, 1832, 1809, 1810, 0, 0, 0, 1364, 1813, 2531, 2046, 2049, 0, 2038, 2040, 2041, 2543, 2043, 0, 0, 1895, 1898, 1960, 1961, 0, 1379, 0, 1974, 1975, 1973, 0, 1951, 1967, 1972, 1970, 0, 1942, 0, 1991, 1982, 2030, 1378, 1989, 1990, 1340, 2297, 0, 2295, 2314, 2315, 2513, 1318, 1314, 1031, 915, 2117, 914, 609, 612, 611, 0, 0, 2088, 233, 2548, 0, 2088, 1048, 0, 2549, 3515, 0, 3522, 3504, 0, 1168, 3587, 3588, 1042, 1040, 0, 1231, 1232, 1235, 0, 256, 0, 259, 261, 0, 406, 439, 441, 1390, 384, 450, 0, 0, 1270, 0, 1268, 1267, 1265, 1266, 1264, 0, 1255, 1261, 1262, 1812, 0, 2163, 2172, 2512, 0, 0, 0, 1363, 2166, 1940, 0, 2515, 2076, 0, 2059, 3427, 3502, 2058, 1172, 0, 0, 0, 384, 478, 454, 408, 3466, 1407, 3482, 3490, 0, 3487, 3488, 3425, 3434, 0, 0, 0, 0, 3475, 3458, 0, 3462, 3461, 0, 3459, 0, 3460, 0, 3465, 3442, 3441, 2488, 0, 2487, 384, 383, 2096, 3026, 3042, 2388, 2384, 2383, 0, 2403, 0, 1885, 1886, 0, 0, 1888, 3376, 1993, 0, 3373, 399, 406, 0, 0, 0, 421, 3721, 278, 393, 406, 408, 420, 459, 281, 389, 0, 0, 384, 384, 406, 3648, 3374, 3308, 1698, 1700, 0, 0, 1891, 0, 1715, 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0, 1652, 0, 1715, 1680, 2023, 2024, 2004, 2005, 2003, 2006, 1404, 0, 2007, 2022, 0, 0, 0, 1678, 1345, 1328, 0, 0, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1873, 1878, 1874, 1875, 1876, 1877, 1872, 1879, 0, 1859, 0, 1704, 1665, 1667, 0, 0, 0, 766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1890, 0, 0, 1890, 0, 0, 0, 0, 0, 0, 1679, 0, 1677, 0, 0, 1676, 1570, 0, 0, 1890, 0, 1596, 0, 0, 0, 1592, 0, 0, 0, 1576, 1577, 0, 0, 0, 1502, 0, 1500, 1501, 0, 0, 1890, 0, 0, 0, 0, 1493, 0, 0, 0, 0, 1738, 0, 0, 1882, 1880, 1883, 1881, 0, 0, 1739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574, 0, 0, 0, 2503, 948, 0, 0, 0, 0, 1541, 0, 0, 0, 0, 1409, 1408, 1410, 1421, 1415, 1419, 1413, 1417, 0, 1474, 3020, 1422, 0, 0, 0, 1425, 1434, 1438, 0, 0, 0, 0, 0, 1445, 1443, 1444, 1456, 1457, 1441, 1442, 0, 1447, 0, 1446, 1453, 1454, 1455, 1458, 1544, 911, 1552, 1910, 1671, 1672, 1696, 1914, 0, 0, 0, 0, 2499, 1389, 1496, 1495, 1497, 1498, 1499, 517, 0, 511, 514, 528, 0, 0, 2375, 0, 2691, 2707, 2708, 328, 331, 330, 332, 0, 0, 1278, 1282, 3374, 0, 0, 0, 0, 3506, 3415, 0, 0, 1385, 1325, 1384, 0, 0, 0, 0, 0, 3330, 3342, 0, 0, 3339, 0, 0, 1391, 0, 0, 3312, 0, 0, 0, 0, 3285, 3351, 3352, 3355, 0, 1391, 0, 2989, 0, 3287, 3292, 3283, 3296, 3298, 3300, 2249, 0, 0, 0, 0, 2254, 2251, 2244, 2257, 2729, 2253, 2270, 2252, 2246, 2259, 2245, 0, 0, 0, 2291, 2263, 2266, 2260, 2291, 0, 2291, 2262, 0, 2289, 2276, 2275, 2274, 2217, 2216, 2210, 2282, 2267, 2261, 220, 2291, 2215, 2214, 2196, 2197, 2198, 0, 1949, 0, 2287, 134, 2281, 0, 2291, 2291, 0, 2273, 2236, 2238, 2144, 0, 1812, 0, 0, 2130, 2123, 2110, 384, 0, 0, 0, 2097, 2098, 278, 0, 0, 0, 501, 1305, 1291, 1307, 1214, 1213, 1211, 3552, 3556, 1740, 80, 2138, 2136, 82, 2135, 2137, 83, 2354, 2330, 2329, 2331, 2335, 131, 2340, 2332, 0, 2346, 2347, 356, 360, 0, 0, 0, 3391, 0, 617, 0, 75, 0, 1220, 1993, 2369, 2371, 2364, 3559, 0, 1185, 1202, 1201, 1197, 1198, 0, 1182, 135, 1193, 1192, 1186, 2186, 3628, 3637, 3641, 3626, 607, 996, 0, 3423, 3522, 189, 0, 0, 0, 140, 0, 616, 161, 163, 616, 3617, 3617, 0, 0, 0, 616, 0, 0, 1829, 1821, 1823, 1824, 1825, 0, 1828, 0, 1367, 0, 1355, 1355, 1365, 1831, 1811, 1808, 1833, 0, 1832, 1832, 0, 0, 1791, 1790, 0, 1884, 905, 2042, 0, 0, 1894, 0, 1896, 1905, 1895, 1963, 2704, 0, 0, 1381, 0, 1993, 1375, 2452, 0, 0, 0, 0, 0, 0, 0, 1962, 1959, 0, 2316, 607, 0, 610, 2117, 2117, 0, 0, 0, 0, 0, 0, 0, 0, 236, 245, 1035, 2547, 1037, 0, 0, 0, 0, 0, 3534, 3374, 1062, 3589, 1038, 0, 0, 1234, 254, 253, 257, 0, 384, 445, 442, 407, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 89, 110, 0, 1257, 1269, 2069, 1263, 2165, 1355, 2088, 0, 0, 2073, 0, 0, 1977, 1941, 2179, 2178, 0, 0, 0, 1174, 1173, 2061, 231, 2066, 3374, 384, 298, 411, 457, 0, 0, 3422, 3498, 3501, 2512, 0, 0, 3443, 0, 384, 430, 2098, 2385, 2389, 1296, 1298, 1299, 1297, 1305, 0, 2563, 2562, 2561, 2532, 1889, 2533, 2558, 2556, 2560, 2554, 2559, 2552, 2553, 2557, 2555, 0, 3382, 3383, 3381, 1998, 1994, 0, 3375, 3380, 400, 401, 422, 425, 0, 0, 384, 0, 394, 395, 409, 413, 0, 428, 467, 451, 451, 451, 278, 1273, 0, 0, 2502, 0, 1647, 0, 1648, 1649, 0, 1527, 1748, 0, 0, 0, 1555, 0, 0, 0, 1651, 0, 1405, 0, 0, 1530, 1522, 1329, 0, 1682, 0, 0, 0, 0, 0, 0, 0, 1687, 0, 1685, 0, 0, 1742, 0, 1744, 2499, 0, 1657, 1692, 0, 1655, 0, 0, 1681, 1693, 1694, 0, 0, 0, 1661, 1659, 0, 1663, 1597, 1660, 1662, 0, 0, 0, 1595, 0, 0, 0, 0, 0, 0, 0, 1573, 0, 1608, 0, 1645, 1609, 0, 0, 1606, 0, 0, 0, 1624, 1559, 1560, 0, 1561, 1611, 0, 1535, 1566, 1567, 1532, 1533, 1625, 1614, 1534, 0, 1569, 1993, 0, 1553, 0, 0, 0, 1571, 1600, 0, 0, 0, 1531, 0, 0, 0, 1993, 0, 1626, 1575, 0, 0, 767, 1347, 1523, 2500, 1416, 1420, 1414, 1418, 0, 0, 0, 0, 1433, 0, 0, 1426, 1436, 1439, 0, 0, 1912, 0, 0, 1690, 1737, 1737, 1737, 1737, 0, 0, 0, 1641, 1642, 0, 0, 510, 509, 0, 513, 597, 0, 530, 518, 507, 2377, 0, 0, 1280, 0, 0, 0, 0, 3416, 0, 0, 0, 0, 1389, 1390, 1390, 2498, 3309, 3310, 3311, 0, 2588, 2587, 2585, 2589, 2586, 2536, 2538, 0, 2537, 2583, 2581, 2584, 2579, 2577, 2578, 2582, 2580, 1391, 0, 3328, 913, 912, 3341, 0, 3363, 0, 0, 3348, 0, 3346, 0, 0, 1391, 3291, 0, 3357, 3358, 0, 0, 0, 3326, 3325, 0, 0, 0, 3318, 0, 0, 0, 2272, 0, 2243, 2256, 2255, 2292, 2293, 2269, 2265, 2211, 2268, 2264, 2288, 1993, 2221, 2242, 2212, 0, 2235, 2193, 2289, 2250, 1892, 2281, 2208, 2209, 2271, 0, 1364, 1390, 2126, 1389, 2127, 384, 2479, 0, 2486, 0, 2085, 0, 384, 1254, 1294, 1286, 1293, 1290, 1305, 1303, 1292, 974, 973, 0, 1306, 79, 0, 0, 2333, 134, 2327, 2348, 2322, 0, 351, 361, 353, 357, 358, 359, 354, 2798, 2880, 0, 1892, 3395, 3643, 1227, 1225, 1224, 1226, 1215, 1221, 1222, 2374, 2372, 134, 2393, 1200, 0, 1203, 3648, 1993, 0, 3640, 155, 608, 0, 0, 0, 996, 0, 165, 3534, 0, 0, 0, 138, 169, 3718, 3774, 3603, 0, 3780, 3615, 3782, 156, 3777, 234, 3775, 0, 0, 1826, 1827, 1788, 1355, 1357, 1356, 0, 0, 1359, 0, 0, 0, 0, 1796, 0, 1792, 1794, 0, 1857, 1849, 0, 2047, 2039, 2044, 2497, 1902, 1946, 0, 0, 1326, 1905, 0, 1964, 1955, 0, 1382, 1380, 1976, 1953, 0, 1969, 1968, 1971, 1379, 1943, 1946, 0, 1389, 1032, 613, 0, 0, 1033, 0, 0, 0, 239, 242, 240, 241, 2117, 2117, 183, 2117, 2117, 182, 184, 0, 178, 175, 185, 2117, 1049, 171, 0, 0, 0, 0, 1993, 0, 0, 0, 191, 0, 3509, 3508, 0, 3524, 0, 0, 3526, 0, 3525, 3523, 3494, 3505, 0, 1057, 1027, 0, 1064, 1066, 0, 0, 3589, 1233, 0, 256, 260, 448, 0, 0, 0, 1993, 0, 1993, 1993, 0, 0, 1993, 0, 1993, 0, 0, 0, 0, 0, 0, 0, 1993, 0, 0, 0, 1993, 0, 1993, 0, 88, 1271, 2161, 2164, 0, 2513, 1892, 1388, 0, 2175, 0, 2516, 3374, 3428, 3503, 1172, 0, 299, 0, 1391, 408, 3538, 0, 0, 0, 0, 0, 2489, 432, 2082, 0, 1305, 1309, 2396, 3385, 3386, 3384, 2001, 2002, 1999, 1997, 2000, 402, 423, 302, 304, 3693, 301, 303, 3691, 3692, 0, 3724, 3726, 0, 380, 289, 378, 3688, 3686, 3690, 3684, 3689, 3682, 3683, 3687, 3685, 379, 293, 3723, 3749, 0, 3722, 396, 1391, 416, 408, 0, 461, 463, 452, 471, 465, 384, 1701, 1699, 0, 1716, 1745, 0, 3045, 3046, 3047, 3048, 3049, 3050, 3052, 3053, 3051, 3054, 3055, 867, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 867, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3079, 3078, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 850, 3088, 3089, 3090, 3091, 3092, 3093, 3095, 3094, 3096, 3097, 3098, 3099, 871, 3100, 3101, 3102, 3104, 3103, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 1731, 3114, 3115, 3116, 3117, 3118, 3120, 3119, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3668, 3134, 3135, 3669, 3136, 3137, 3138, 1725, 3139, 3140, 3141, 3142, 3143, 3144, 3121, 3145, 3122, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3164, 3162, 3163, 3165, 3166, 3167, 3168, 3169, 3171, 3170, 3174, 3172, 3173, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3670, 3183, 3184, 3185, 3186, 3187, 3189, 3190, 3188, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3205, 3204, 3206, 3207, 3208, 3209, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3221, 3219, 3220, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3234, 3231, 3235, 3232, 3236, 3233, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3255, 3256, 3257, 3258, 3259, 1728, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3268, 3269, 3267, 0, 3270, 3272, 3271, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3210, 3245, 3254, 869, 1733, 867, 2610, 1726, 869, 0, 1724, 0, 1722, 1723, 777, 779, 2603, 2604, 2605, 2606, 2608, 2609, 3671, 3672, 778, 2607, 0, 0, 0, 1653, 1650, 0, 0, 0, 1707, 1707, 0, 0, 0, 0, 1450, 0, 0, 0, 1636, 0, 1658, 1656, 0, 0, 0, 0, 0, 1664, 0, 1581, 1579, 1508, 0, 1506, 0, 1507, 0, 1509, 0, 0, 1646, 0, 1476, 1494, 0, 0, 0, 1740, 0, 2009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504, 0, 0, 937, 943, 946, 947, 949, 941, 0, 1618, 0, 0, 0, 1431, 1427, 0, 1435, 0, 0, 0, 1449, 1448, 1914, 1913, 0, 1689, 0, 0, 1739, 0, 0, 1739, 0, 0, 0, 2501, 1390, 1623, 1389, 520, 0, 538, 512, 1993, 515, 0, 529, 0, 541, 0, 0, 0, 329, 0, 1283, 0, 460, 0, 3414, 3507, 0, 0, 1383, 1395, 1386, 0, 0, 0, 3332, 0, 3343, 1391, 0, 0, 0, 3370, 3371, 1390, 3369, 1390, 1390, 3316, 3314, 3313, 3289, 0, 0, 3362, 3356, 3353, 3354, 1391, 0, 3295, 0, 1391, 3293, 3297, 3299, 2231, 2230, 0, 2290, 1949, 2204, 2223, 2225, 2291, 2146, 2150, 0, 1884, 2134, 0, 0, 2128, 2132, 0, 2485, 0, 0, 2099, 1812, 3751, 0, 1851, 84, 0, 2334, 2325, 0, 2320, 2323, 0, 0, 3406, 3407, 3399, 3402, 3400, 3401, 3405, 3408, 3409, 3396, 3403, 1949, 0, 0, 1217, 1223, 2367, 1199, 136, 0, 1183, 3694, 2187, 3629, 3642, 1011, 1013, 1012, 997, 998, 0, 0, 0, 1057, 0, 0, 0, 620, 620, 170, 0, 0, 200, 3653, 0, 3612, 3613, 3616, 3618, 3653, 3589, 0, 0, 0, 158, 1785, 1366, 1358, 1360, 1355, 1355, 0, 1749, 0, 0, 0, 1749, 0, 0, 501, 0, 1830, 1846, 906, 2410, 1903, 1904, 0, 1899, 1947, 1948, 1901, 1897, 0, 1906, 1908, 1327, 1965, 1957, 1952, 1376, 0, 1945, 0, 0, 0, 2033, 2035, 675, 674, 244, 243, 248, 249, 1993, 1993, 2122, 2121, 1993, 1993, 177, 174, 2120, 2119, 1993, 1993, 172, 2088, 195, 194, 196, 197, 199, 198, 193, 1045, 0, 3512, 0, 3519, 3514, 3517, 3497, 3496, 3495, 3492, 0, 1993, 1993, 1993, 0, 1993, 3533, 3535, 0, 0, 1046, 914, 3547, 0, 0, 205, 3591, 0, 3593, 0, 1237, 0, 1236, 255, 384, 1993, 1993, 103, 1993, 95, 96, 91, 123, 124, 93, 94, 99, 98, 100, 101, 104, 105, 102, 97, 92, 127, 129, 128, 106, 2029, 2028, 2027, 130, 125, 126, 90, 1892, 2170, 0, 0, 1978, 2176, 2167, 2056, 2054, 3699, 1389, 458, 0, 456, 0, 3421, 3426, 3500, 3499, 3522, 3522, 406, 384, 406, 431, 0, 1300, 1305, 1309, 0, 1301, 2407, 844, 867, 867, 884, 830, 850, 846, 850, 3137, 840, 884, 796, 796, 884, 843, 796, 850, 845, 0, 842, 884, 841, 796, 867, 834, 867, 790, 791, 796, 867, 809, 0, 850, 884, 0, 831, 850, 836, 867, 0, 867, 867, 867, 2993, 867, 867, 290, 850, 774, 780, 782, 781, 783, 784, 867, 867, 867, 867, 867, 871, 0, 0, 3727, 0, 279, 0, 414, 468, 451, 0, 0, 1746, 0, 865, 868, 1717, 919, 0, 1730, 852, 851, 0, 872, 1732, 0, 1729, 919, 866, 870, 1735, 1721, 1727, 1734, 919, 1525, 1556, 1529, 1528, 0, 0, 0, 1588, 0, 1705, 1711, 0, 0, 0, 1563, 0, 1688, 1686, 1565, 0, 0, 1638, 2501, 1613, 1684, 1591, 1615, 1568, 0, 0, 0, 1505, 1503, 1504, 0, 1582, 1604, 0, 1492, 1605, 0, 1589, 1612, 1521, 2011, 2010, 2008, 1536, 1993, 0, 1593, 1554, 0, 0, 1617, 2505, 2506, 0, 0, 0, 948, 934, 935, 936, 0, 938, 940, 942, 0, 1993, 1452, 1451, 1423, 0, 1432, 1429, 0, 1437, 1916, 1915, 0, 0, 1629, 1631, 1630, 1633, 1632, 1627, 1737, 1395, 1643, 0, 521, 522, 524, 526, 603, 0, 516, 545, 505, 0, 520, 508, 1281, 1284, 0, 3412, 3411, 0, 1387, 1399, 1398, 2495, 2499, 0, 0, 1391, 1390, 3329, 3350, 0, 0, 3368, 3366, 3367, 1391, 1391, 3360, 3359, 3361, 3327, 3322, 3320, 3319, 2015, 2016, 2014, 2012, 2013, 2222, 1949, 2218, 0, 1892, 0, 1849, 1390, 2124, 0, 3698, 0, 2105, 0, 2102, 2109, 494, 2175, 0, 2100, 2071, 0, 1854, 0, 1855, 1852, 1853, 1993, 0, 0, 377, 369, 364, 372, 366, 368, 367, 373, 374, 375, 376, 370, 365, 371, 363, 362, 0, 3394, 1228, 1229, 0, 0, 0, 1208, 1204, 143, 0, 3424, 164, 0, 149, 152, 725, 0, 0, 0, 0, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 0, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 669, 2117, 2117, 0, 0, 2117, 2117, 670, 139, 489, 497, 621, 624, 660, 0, 668, 662, 649, 650, 486, 667, 141, 275, 237, 0, 0, 3648, 3611, 3614, 0, 0, 263, 3659, 0, 690, 691, 689, 688, 0, 0, 3589, 0, 1369, 1368, 1797, 0, 1801, 1806, 1802, 0, 1793, 0, 1814, 1858, 1850, 0, 0, 2418, 1946, 0, 0, 1946, 0, 0, 1390, 2031, 1389, 176, 181, 180, 173, 186, 179, 1050, 192, 3513, 3511, 3510, 0, 3518, 0, 3493, 3529, 3527, 3528, 3531, 0, 0, 3530, 3532, 1051, 1052, 1058, 1053, 1160, 1160, 0, 1160, 0, 0, 1160, 2117, 0, 0, 501, 1178, 2117, 0, 0, 0, 0, 0, 1140, 0, 1160, 0, 0, 0, 0, 0, 1078, 1139, 622, 1028, 1077, 1079, 1091, 497, 0, 1112, 1142, 1143, 1141, 3548, 0, 0, 0, 1063, 0, 208, 206, 216, 3590, 0, 2088, 0, 3593, 1239, 1240, 0, 446, 0, 116, 118, 0, 120, 122, 0, 112, 114, 2173, 2088, 0, 1979, 0, 1389, 2088, 0, 1390, 0, 3536, 3536, 433, 435, 434, 2139, 1302, 1310, 2409, 2408, 0, 802, 884, 882, 884, 816, 885, 854, 847, 854, 818, 924, 830, 0, 884, 917, 921, 918, 826, 0, 796, 919, 0, 922, 797, 824, 817, 823, 854, 0, 813, 821, 884, 789, 825, 812, 0, 854, 827, 832, 835, 837, 839, 854, 884, 0, 0, 3648, 796, 811, 810, 0, 796, 854, 3648, 848, 833, 919, 930, 796, 884, 854, 854, 294, 1993, 296, 381, 1390, 451, 3747, 1702, 0, 0, 0, 0, 1718, 920, 0, 0, 1736, 1719, 1720, 1654, 0, 0, 0, 0, 1711, 0, 0, 1712, 1670, 0, 0, 0, 0, 0, 1524, 0, 1634, 0, 1580, 1578, 0, 850, 1483, 1485, 1481, 1484, 0, 869, 1487, 0, 831, 869, 919, 1491, 1477, 1478, 1479, 1480, 0, 0, 0, 0, 0, 2507, 932, 1620, 0, 945, 939, 937, 944, 0, 1428, 0, 0, 1918, 0, 1691, 0, 1644, 525, 0, 604, 600, 0, 0, 546, 0, 547, 543, 519, 0, 3413, 1397, 1396, 0, 3336, 3334, 3333, 3331, 3365, 3364, 3317, 3315, 1391, 1391, 134, 2149, 1940, 2151, 2152, 2143, 2133, 2131, 2481, 0, 2106, 2108, 2492, 2491, 2503, 0, 0, 2088, 2101, 1097, 0, 1098, 1109, 1111, 1308, 0, 2359, 0, 2357, 2326, 2360, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 1022, 2640, 0, 0, 694, 696, 697, 698, 699, 0, 726, 701, 616, 975, 975, 728, 2508, 0, 673, 2117, 490, 1993, 1993, 1993, 1993, 647, 1993, 1993, 1993, 0, 0, 2117, 1993, 0, 0, 1993, 1993, 1993, 1993, 0, 0, 1993, 655, 656, 654, 1993, 1993, 2407, 496, 498, 914, 625, 0, 620, 268, 3719, 481, 482, 0, 0, 1394, 1394, 3767, 0, 3768, 3769, 0, 1394, 1394, 3752, 3666, 278, 3663, 3664, 3754, 3762, 3593, 0, 0, 3609, 237, 0, 237, 0, 0, 1752, 1751, 0, 0, 0, 0, 0, 0, 1839, 0, 1838, 0, 1844, 1848, 0, 0, 0, 0, 2411, 2413, 0, 2048, 1900, 1909, 1907, 1944, 1956, 0, 2036, 2034, 0, 3520, 3516, 1996, 1995, 0, 1055, 0, 1054, 1059, 1022, 616, 1161, 614, 0, 1116, 1120, 1117, 614, 2075, 2075, 1274, 2075, 0, 0, 0, 0, 2075, 0, 2077, 2075, 0, 0, 2075, 2075, 0, 1274, 0, 499, 1181, 1179, 2075, 1180, 2075, 0, 0, 1274, 1129, 1073, 1130, 0, 1074, 2075, 1274, 1096, 1274, 1274, 0, 623, 914, 1075, 1076, 725, 1175, 215, 204, 0, 0, 1065, 1067, 0, 0, 1068, 3592, 1041, 3595, 2088, 1245, 0, 108, 1993, 109, 1993, 107, 1993, 2088, 2171, 0, 1980, 2177, 2168, 1390, 0, 412, 3539, 0, 3420, 3419, 0, 2175, 0, 814, 888, 0, 815, 856, 857, 855, 860, 792, 788, 925, 929, 928, 819, 820, 799, 916, 923, 0, 882, 798, 794, 0, 1024, 806, 0, 795, 838, 793, 807, 0, 286, 0, 3696, 0, 1391, 3703, 292, 822, 3648, 282, 804, 808, 291, 0, 785, 800, 931, 801, 803, 930, 786, 787, 1993, 3725, 309, 308, 0, 0, 410, 469, 863, 861, 864, 862, 0, 1586, 1587, 1708, 1946, 1706, 0, 1713, 1714, 1668, 1610, 0, 1564, 0, 1635, 0, 1616, 1583, 1486, 1482, 1489, 832, 1488, 1490, 1607, 1537, 1993, 1594, 1598, 1599, 0, 1619, 1993, 1430, 0, 1921, 1920, 0, 0, 1946, 1628, 523, 601, 518, 0, 542, 545, 0, 506, 2496, 1391, 1391, 3323, 3321, 2224, 1977, 2482, 2480, 2104, 0, 0, 0, 2103, 2113, 0, 2086, 1304, 0, 1856, 2355, 1993, 0, 2324, 0, 1205, 1206, 1207, 1209, 0, 0, 0, 0, 0, 727, 1023, 0, 0, 700, 2511, 693, 725, 0, 0, 0, 975, 717, 616, 0, 1022, 976, 616, 616, 0, 0, 0, 0, 2026, 2025, 644, 637, 636, 639, 638, 641, 640, 0, 633, 630, 642, 632, 657, 0, 645, 627, 686, 687, 685, 651, 658, 628, 629, 635, 634, 631, 678, 683, 681, 680, 679, 684, 682, 646, 661, 643, 659, 488, 605, 626, 2019, 2020, 2017, 2018, 666, 665, 2021, 663, 664, 497, 274, 272, 273, 3708, 0, 269, 0, 267, 0, 271, 3711, 246, 238, 0, 384, 485, 483, 484, 0, 0, 0, 0, 0, 0, 1393, 3770, 0, 380, 3653, 3653, 384, 3783, 3753, 3665, 3755, 157, 277, 264, 266, 3661, 0, 3716, 3656, 3779, 3656, 3593, 1753, 0, 0, 1798, 0, 1803, 0, 1795, 1834, 1834, 1845, 0, 0, 0, 0, 2412, 0, 0, 2419, 2421, 1958, 0, 1053, 0, 0, 0, 1274, 0, 0, 1144, 1114, 0, 0, 0, 0, 1085, 0, 1094, 0, 0, 2075, 0, 1146, 0, 1145, 0, 0, 0, 1158, 1159, 0, 1936, 1938, 1946, 0, 0, 0, 1134, 1156, 1157, 0, 0, 0, 0, 1104, 0, 1090, 1160, 0, 1160, 1113, 0, 692, 0, 1177, 1115, 202, 207, 217, 218, 1043, 0, 3594, 1039, 0, 1246, 1242, 1243, 1238, 117, 121, 113, 2174, 0, 300, 0, 3543, 3537, 3541, 2140, 2088, 0, 883, 858, 859, 926, 927, 889, 919, 0, 919, 3648, 288, 0, 285, 0, 3705, 0, 0, 805, 318, 317, 315, 384, 305, 313, 307, 0, 314, 0, 298, 0, 0, 1710, 1666, 0, 1637, 1639, 0, 933, 0, 1917, 1911, 0, 0, 0, 0, 0, 0, 1930, 1922, 0, 1695, 0, 603, 0, 0, 531, 544, 550, 549, 3337, 3335, 2147, 0, 2107, 2493, 2504, 495, 0, 0, 1110, 2358, 0, 3404, 0, 1946, 1020, 0, 0, 0, 0, 0, 0, 695, 0, 616, 971, 972, 1022, 0, 702, 994, 2508, 1022, 1022, 3130, 867, 790, 791, 796, 867, 809, 2693, 850, 884, 2697, 831, 850, 836, 867, 732, 867, 867, 867, 867, 867, 0, 720, 730, 775, 777, 2603, 2604, 2605, 2606, 2608, 2609, 2607, 2510, 491, 653, 2347, 652, 606, 0, 2407, 276, 0, 3707, 0, 2993, 3709, 247, 187, 1389, 213, 3758, 3772, 3756, 3771, 3656, 3662, 1394, 0, 1394, 0, 3667, 1393, 0, 3610, 0, 3778, 3776, 159, 0, 1884, 0, 0, 0, 1842, 1840, 2416, 2417, 0, 2414, 0, 0, 2420, 0, 1060, 1056, 1061, 0, 1099, 0, 1118, 0, 0, 1084, 0, 1260, 0, 0, 1137, 1125, 0, 1080, 0, 1127, 1128, 1172, 1082, 0, 1939, 500, 0, 0, 1089, 0, 1175, 1081, 1106, 1087, 1119, 1176, 209, 1069, 384, 0, 0, 0, 1241, 0, 1248, 0, 3542, 3540, 0, 2083, 1812, 829, 1025, 828, 3706, 287, 1390, 283, 849, 1993, 295, 316, 297, 3728, 853, 1946, 1562, 1538, 1621, 0, 1927, 0, 0, 1925, 1924, 0, 1919, 1926, 602, 599, 0, 0, 539, 557, 553, 0, 555, 556, 578, 2088, 0, 0, 2112, 2114, 2361, 3374, 0, 1017, 0, 1018, 0, 3374, 3374, 0, 0, 0, 1022, 994, 2508, 953, 0, 703, 0, 707, 709, 734, 0, 729, 721, 742, 0, 0, 671, 487, 270, 0, 3710, 0, 188, 3720, 3604, 205, 214, 0, 0, 3781, 3765, 3761, 3763, 3760, 3656, 265, 187, 2878, 0, 1761, 1763, 1786, 1800, 1805, 0, 1835, 0, 0, 0, 2415, 2423, 2422, 3521, 0, 1101, 615, 1014, 0, 1132, 0, 0, 1175, 1086, 0, 0, 0, 1126, 1147, 1124, 1274, 1937, 0, 0, 0, 1123, 1105, 1107, 1220, 0, 211, 187, 3596, 0, 0, 1247, 1252, 0, 1249, 1251, 1361, 0, 2397, 3704, 0, 306, 1709, 1928, 0, 1929, 1932, 0, 0, 1933, 0, 535, 537, 527, 0, 532, 0, 551, 0, 2117, 2117, 0, 2117, 2117, 2117, 2117, 571, 579, 581, 582, 583, 0, 2148, 2483, 2494, 982, 1946, 0, 0, 0, 0, 984, 986, 0, 0, 722, 715, 711, 0, 0, 957, 995, 0, 705, 0, 0, 897, 951, 760, 0, 763, 0, 895, 733, 735, 893, 894, 737, 0, 0, 0, 776, 0, 0, 875, 0, 878, 0, 0, 731, 0, 743, 874, 881, 2509, 648, 493, 672, 0, 0, 0, 216, 3660, 237, 0, 384, 0, 3784, 3717, 0, 1760, 0, 0, 1837, 1836, 1851, 0, 0, 0, 545, 1100, 1015, 1133, 0, 1122, 1148, 545, 1138, 1083, 1135, 1136, 1148, 0, 1088, 210, 0, 203, 219, 3597, 3598, 1244, 0, 2141, 905, 284, 1923, 1931, 1935, 1934, 533, 0, 540, 564, 554, 560, 0, 2117, 0, 0, 2117, 0, 0, 0, 0, 0, 548, 580, 2117, 0, 0, 2117, 0, 1003, 1005, 1151, 983, 1007, 1006, 988, 1004, 1016, 1021, 1020, 3374, 190, 0, 1151, 985, 1009, 992, 1151, 987, 1008, 990, 0, 0, 0, 0, 713, 0, 956, 0, 961, 0, 0, 0, 0, 761, 762, 898, 736, 896, 892, 886, 880, 2520, 2521, 0, 0, 0, 772, 773, 876, 769, 770, 771, 0, 751, 0, 0, 882, 873, 744, 3714, 0, 0, 0, 3759, 237, 3657, 3655, 3657, 3654, 1765, 1762, 0, 1770, 1772, 1771, 1773, 1764, 0, 0, 0, 1121, 1103, 0, 1131, 0, 0, 501, 1148, 501, 0, 212, 1250, 0, 2398, 539, 536, 564, 0, 562, 0, 558, 552, 559, 0, 596, 590, 0, 592, 593, 591, 588, 575, 0, 573, 0, 999, 1002, 1993, 1000, 144, 1153, 1152, 989, 0, 982, 0, 150, 993, 153, 991, 718, 0, 0, 0, 0, 954, 0, 958, 959, 960, 0, 952, 0, 0, 0, 0, 887, 891, 2455, 2454, 0, 1400, 879, 0, 746, 890, 745, 0, 3712, 1389, 218, 3757, 3658, 3766, 3764, 0, 1767, 0, 0, 1843, 1841, 1102, 1149, 1150, 1093, 501, 1092, 545, 2142, 2154, 0, 2424, 534, 561, 0, 569, 565, 567, 570, 595, 594, 0, 572, 0, 589, 676, 1001, 1155, 1154, 1019, 1151, 1010, 719, 0, 1018, 0, 955, 0, 0, 982, 0, 984, 986, 768, 0, 877, 738, 738, 752, 3715, 0, 3605, 201, 1766, 0, 1774, 1095, 0, 0, 0, 0, 2410, 563, 0, 0, 584, 577, 574, 147, 0, 0, 1018, 967, 966, 0, 0, 963, 962, 704, 982, 708, 710, 1401, 0, 749, 739, 741, 748, 754, 755, 753, 756, 3713, 0, 1769, 0, 1780, 1779, 1768, 0, 1775, 1777, 1108, 2153, 2155, 0, 2418, 568, 566, 576, 585, 587, 716, 982, 0, 970, 968, 969, 0, 0, 706, 1402, 740, 747, 757, 759, 0, 1757, 1758, 1756, 1755, 1754, 1781, 0, 0, 1776, 0, 1778, 0, 2426, 586, 712, 982, 0, 0, 758, 3606, 1783, 1782, 0, 0, 2425, 0, 2430, 714, 965, 964, 3601, 0, 0, 2437, 3599, 3600, 0, 3607, 2428, 2429, 2427, 0, 2432, 0, 2434, 2435, 0, 2088, 3602, 384, 2436, 2431, 0, 2438, 2440, 0, 2399, 187, 2433, 0, 1389, 3608, 2439, 0, 1390, 2441 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -5651, -5651, -5651, -5651, 2226, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2747, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1956, -5651, 271, -5651, 272, -5651, 274, -3753, -594, -5651, -1892, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2114, -2957, -5481, -5651, -5651, -396, 1284, -5651, -5651, 19, -5651, -418, -5651, -5651, -5651, -4436, -576, -808, -5651, 49, 4581, -1040, 4580, 4585, -5651, -109, 3925, -4372, 746, -5651, -3008, -5651, -5651, -5651, -5651, -1929, -5651, -5651, -5651, -5651, 215, 44, -5651, -5651, -5651, -408, -5651, -5651, -2493, -650, 248, -105, -5651, -229, -5651, 433, -5651, -5651, -5651, -5651, -5651, -118, -5651, -5651, -5651, -326, 647, -4534, -5651, -5651, -5651, -5651, 2577, -5651, 1933, -5651, -1744, 3618, -5651, -5651, -5651, -5651, -5651, 2764, -2455, -5651, -5651, -5651, 1439, -5651, -2783, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -473, -5651, -2031, 1919, -5651, 1977, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -612, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3286, -5651, 4549, -5651, -5651, 1157, -5651, 3178, -5651, 3187, 3183, -2777, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -199, -197, 87, 791, 1316, -5651, -3913, -5651, -5651, -8, -5651, -5651, -5651, -5651, -5651, 1051, 208, 1048, -5651, 603, 2969, -2838, -5651, -5651, -5651, -5651, -5651, -5651, -566, -101, -681, -5651, -4363, -5651, -4973, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -4190, -5651, -5651, -5651, -817, -5651, -5651, -775, -5651, -5651, -5651, -5651, -443, -5651, -5651, -5631, -5651, -5651, -5651, -89, -5651, 2698, 4006, -1882, 421, -463, -5651, -3782, 820, -4068, -3888, -5651, -3062, -5651, -5651, -5651, -330, -1317, -1274, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 390, 187, 821, -4370, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -4369, -4367, 56, -5651, -5197, -5651, 551, -5651, -4893, -5651, -5651, -5651, -5651, -5651, -5651, -777, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5650, -5651, -5651, -603, -611, -5651, -506, -3310, -5651, -2736, -4793, -493, -1674, -492, -490, -489, -5651, -1937, 1158, 1282, -5651, -5651, -5651, -5651, -3386, -3266, -5651, -1087, -3491, -3241, 1204, -753, -3524, 1235, -599, -5396, -4904, -533, -5651, -3916, -5651, -5651, -3837, -5167, -5651, -676, -2787, -3161, -512, -5651, -5651, -1721, -3228, -5651, 787, -4064, -3872, 323, 1659, -5651, -5651, 1143, -5651, -1613, 1138, -5651, -5651, -5651, 1154, -5651, -772, -5651, -5651, -5651, -5651, -3660, -5651, -2513, -4357, -5651, 5369, 5370, -3726, -737, -736, -5651, -5651, -5651, -269, 2254, -5651, -4386, -523, -538, -532, -3160, -162, -5033, -4806, -5168, -4359, 785, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 103, 106, 1515, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 879, -2254, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -4905, -3115, -5651, -5651, 441, -3796, -4111, -3988, -3984, -4349, 3956, -5651, -5651, -5651, -5651, 4043, -3308, -3808, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3540, 1445, -5651, -5651, 2283, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -325, 2290, -5651, -5651, -5651, -5651, -5651, 2748, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -470, -5651, -5651, -5651, -5651, -5651, -150, 3390, -5651, -5651, -5651, -5651, 13, -5651, -5651, -5651, -5651, 2443, -5651, -5651, -5651, -5651, 2922, -5651, -5651, -5651, -5651, -5651, -5651, 2088, -5651, 2667, -5651, -2469, -5651, -5651, 1350, -163, -5651, -5651, -23, -5651, -5651, -5651, -5651, -5651, 34, -5651, -5651, -5651, 5362, -1564, 7, -65, -5651, -5651, 2, -5651, -5651, 4097, -503, 2495, -746, 4733, -5651, -5651, -5651, -5651, -2518, 2359, -5651, 4155, -5651, -5651, 4359, 1556, 4116, 2230, 872, 2454, -1671, -164, -3012, -2986, -5651, -95, -4453, 1179, -5651, 1485, 824, 10029, -5651, -1503, -1614, -5651, -5651, -38, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2561, 2566, -5651, -5651, 3837, -5651, 2498, -5291, -5651, -5651, -915, -5651, -2424, -5651, -5651, -5651, 2507, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1691, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3789, -1587, -5651, -5651, 3935, -5651, 1787, -5651, 790, -5651, -5651, 1612, -5651, -2748, -5651, -5651, -1562, -642, -5651, 3917, -5651, 3952, -1219, -4562, -5651, -1736, -615, -5651, -386, -5651, -5651, -5651, -5651, -5651, -3324, -718, -716, -5651, -5651, -5651, 3552, -5651, 4204, -5651, -5651, -5651, -5651, -5651, -5651, 3556, -5651, -2085, -5651, -2507, 4209, 4217, 4219, -5651, 4224, -5651, -5651, -1712, 199, -5651, 585, -5651, -5651, -5651, -5651, -5651, 1160, -5651, -385, 710, -378, -4325, -1542, 1398, -5651, -5651, -1893, 3571, 3973, -1328, -5651, 2871, -5651, 3558, 1745, -5651, 2300, -5651, 1037, 1044, -5651, -5651, 1761, -5651, -5651, -5651, -5651, 396, -252, -5651, -5651, -5651, -71, 758, -2062, -5651, 406, -3200, 4208, -292, -5651, 2304, -1961, -3166, -1208, 846, -1305, 2313, 393, 4814, -496, -5651, -5651, 4176, -5651, -2774, -5651, -1762, -1549, -1001, -3047, -2864, -4728, -5651, -2205, 1300, -5651, -5651, -5651, -5651, 1057, -5651, -5651, -5651, 2910, -5651, 5488, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -671, -1159, -5651, 4141, 3493, -181, -146, 5507, -6, -5651, -5651, 1, -5651, -5651, 4908, -1982, -5651, -5651, 4347, 3448, 2787, -5651, 1467, -5651, -5651, -5651, -5651, 1209, -5651, -5651, 98, -1119, -765, 2310, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 765, -5651, 1228, -1870, -5651, -5651, -5651, -5651, 3, -5651, -5651, -5651, -5651, 1231, -5651, -597, -5651, 9, -5651, -5651, -5651, -5651, 4779, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -4110, -5651, -2280, 4781, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3079, -5651, -5651, -5651, -5651, -5651, -5651, 3805, 4938, 4939, -1624, -5651, -882, 3083, 2494, -904, -5651, -5651, -5651, 4227, 4942, -5651, -5651, 41, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3033, 54, -5651, -5651, -5651, -5651, -5651, 422, -5651, -5651, -5651, -5651, 3708, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 4112, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1486, -585, -5651, 678, -622, -5651, 281, -5651, -5651, -5651, -5651, -5651, -692, -5651, -5651, -697, -5651, -1369, 4689, -1310, -5651, -1723, -3311, -5651, 4, -5651, -5651, -5651, 3086, -5651, -5651, -5651, -5651, 2832, -2520, -5651, 449, -5651, -5651, -2650, -879, -1655, -3390, 235, -5651, -5651, -601, 4535, 8318, -5651, -5651, -9, 1413, -1239, -5651, -5651, 2780, -5, -824, -135, -756, -780, -1060, -5651, 4757, -5651, -5651, -5651, -653, -634, -627, 5711, 642, 3484, -666, 6429, 8408, -186, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2545, 2546, -5651, 4973, -5651, 3467, 3186, -5651, -5651, -5651, 2548, -5651, -5651, -5651, 4981, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 2549, 2564, 2557, -5651, -5651, 1807, -2345, -5651, -5651, -5651, -1922, 145, -5651, 3494, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 3709, -535, 4491, -554, 3914, 4991, 4524, -5651, 4165, -5651, 4180, -5651, 1614, -5651, -814, 2623, -1382, -3237, -5651, -5651, 2951, 1132, -5651, -5651, -2502, -3079, -5651, 2469, 1045, -5651, -5651, 243, -5651, -5651, -5651, 1615, 246, 4964, 4403, -5651, -5651, -5651, -5651, 5576, 2371, -5651, 193, 5602, 5606, 5607, -173, -5651, -3173, -5651, -4339, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 1726, -5651, -5651, 3052, -5651, -5651, -5651, 2190, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -5651, -1505, 4777, -5651, 1565, -2601, -3836, -5651, -5651, -4028, -348, -3883, -5651, -4385, 777, -5651, -5651, -5651, -5651, -5651, -605, -5651, -5651, -5651, -5651, -5651, 3517, -5651, 2263, -5651, -5651, -5651, -4460, -5651, -5651, -4654, -5651, 771, -5651, -5651, -5651, -5651, -1365, -5651, -5651, -5651, -4274, -918, 40, -5651, -5651, -5651, -5651, -5651, -5651, -5651, 782, 789, -5651, 793, -5651, -4467, -5651, -5651, -5651, -5651, -5651, -5651, -3765, -5651, -5651, -5651, -5651, -5651, -5651, -5651 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { 0, 69, 748, 1955, 70, 71, 72, 73, 74, 1921, 75, 1268, 2580, 1270, 1886, 2583, 76, 717, 77, 2087, 2775, 2776, 4626, 4627, 4620, 4621, 4623, 4624, 2777, 828, 829, 2622, 2623, 78, 2640, 3962, 3218, 1957, 4854, 2634, 5219, 1962, 4857, 1963, 4858, 2632, 3975, 4509, 1967, 1968, 757, 3963, 3304, 3305, 5753, 1329, 3214, 3313, 3314, 2645, 4494, 4606, 5660, 4610, 5809, 5949, 5755, 3332, 5046, 5661, 5662, 652, 1341, 647, 648, 649, 79, 792, 2052, 5339, 5309, 5310, 2724, 80, 821, 2075, 3339, 1445, 2076, 2077, 4936, 4937, 5335, 5301, 5302, 5303, 5304, 4492, 4913, 4501, 2859, 2084, 5114, 5106, 5107, 4696, 3420, 3421, 4703, 3422, 5128, 5133, 3386, 3387, 4127, 3423, 5467, 5468, 5469, 672, 1139, 5470, 81, 82, 673, 681, 674, 1136, 2439, 1137, 83, 84, 715, 1911, 1912, 1913, 1914, 3180, 2600, 3174, 3175, 4427, 5115, 3425, 85, 653, 924, 925, 926, 927, 2189, 928, 2861, 3442, 929, 2853, 3411, 930, 931, 932, 900, 824, 2806, 2864, 3443, 2807, 3388, 2865, 2186, 933, 934, 935, 936, 937, 1553, 901, 2155, 3397, 4141, 86, 629, 825, 1447, 2081, 826, 2082, 3342, 827, 2079, 1450, 3447, 2125, 855, 1482, 938, 1145, 3448, 939, 2192, 2194, 2191, 3446, 4717, 2193, 87, 663, 691, 651, 1480, 679, 4917, 5316, 4477, 4912, 4478, 5285, 4398, 4906, 4907, 4908, 5398, 3159, 88, 666, 1121, 1741, 2431, 3841, 3035, 3037, 2432, 3840, 4334, 4335, 4336, 3033, 3034, 5501, 3039, 3838, 5706, 6081, 5833, 5834, 3830, 5838, 4343, 4799, 4800, 4801, 5187, 5503, 5712, 5968, 5839, 6088, 5966, 6084, 5967, 6086, 6221, 6173, 6174, 5978, 6099, 6100, 6178, 6222, 5849, 5850, 5851, 6266, 6267, 5852, 3834, 3835, 5498, 4795, 5579, 3205, 3206, 2047, 5372, 1279, 89, 4479, 4590, 4480, 4481, 5255, 5986, 4483, 4484, 5909, 4485, 4486, 4487, 6181, 1816, 5281, 5267, 4507, 5415, 4488, 4862, 4863, 4864, 4865, 5875, 6017, 5877, 5878, 6010, 6121, 6009, 4866, 4867, 5227, 5741, 5235, 5006, 4868, 4869, 4870, 5242, 5562, 5743, 5739, 5886, 5887, 6241, 6242, 5902, 6205, 5903, 6248, 6280, 6281, 5888, 90, 665, 1690, 6033, 6034, 6035, 4195, 5563, 4196, 4197, 4198, 4683, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 5120, 4686, 4228, 5082, 5083, 4222, 4223, 4237, 4682, 4238, 4232, 5904, 5905, 5076, 4687, 6134, 4655, 5095, 6045, 5889, 5906, 5891, 4671, 1766, 1767, 3253, 1781, 1782, 3084, 3085, 2050, 4672, 4724, 4673, 5123, 4302, 5170, 4308, 4309, 4310, 3792, 3793, 3794, 3795, 3796, 2993, 5892, 5535, 5873, 6012, 6015, 6128, 6233, 5236, 4871, 5240, 1238, 4872, 4873, 5987, 5999, 6003, 5988, 6004, 6000, 5735, 3209, 5989, 5990, 5991, 6006, 6002, 3953, 5992, 5519, 5862, 5520, 5223, 5097, 91, 164, 4072, 1414, 2710, 1416, 1426, 3336, 2736, 2735, 1429, 1428, 2728, 4042, 4561, 4983, 4071, 3333, 4076, 5424, 790, 4592, 5799, 5635, 5807, 5637, 4593, 4838, 4594, 5784, 5933, 4595, 5656, 5805, 5945, 4839, 4840, 4596, 4597, 4598, 6073, 6106, 6107, 6108, 4992, 1860, 804, 805, 1434, 1435, 1436, 2800, 5419, 5018, 92, 3200, 2616, 93, 1296, 1297, 1298, 1933, 1934, 2619, 2620, 3945, 4437, 94, 1263, 2576, 1923, 2608, 95, 1282, 3191, 3192, 3193, 3939, 96, 1442, 2071, 2072, 2740, 4083, 4618, 5051, 5432, 5668, 5428, 5816, 5817, 97, 832, 1453, 98, 631, 2096, 2097, 2098, 2779, 99, 1562, 172, 100, 1750, 1747, 2445, 2446, 101, 1262, 1873, 1874, 1875, 1876, 3155, 102, 2163, 2823, 2824, 2825, 2826, 2571, 3914, 2572, 2573, 3164, 4147, 103, 771, 1409, 104, 770, 1408, 105, 106, 690, 743, 683, 1757, 108, 109, 4399, 2234, 111, 777, 775, 1081, 113, 1401, 1397, 114, 2235, 1082, 767, 768, 1349, 1165, 3238, 3239, 2107, 2108, 2680, 2667, 1166, 1167, 1378, 2032, 2697, 2457, 2458, 1856, 2459, 2748, 3091, 1448, 5595, 5318, 4353, 6202, 1591, 1492, 1266, 1084, 1085, 1086, 1701, 1702, 1717, 1087, 1711, 2382, 4281, 4766, 4767, 4768, 4769, 2321, 2322, 2426, 1088, 2311, 2312, 2313, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 2304, 2305, 2306, 1096, 1097, 1098, 2421, 4263, 4264, 4748, 3028, 3029, 3030, 1099, 2890, 4247, 2901, 2902, 2263, 1100, 1101, 1102, 1103, 1104, 3816, 1105, 4324, 4008, 1106, 1563, 2198, 2261, 4736, 4252, 5143, 4738, 4739, 5147, 2203, 2878, 3713, 3714, 3715, 2325, 2326, 1611, 1612, 1580, 1581, 1350, 4946, 6289, 1351, 5346, 5768, 5769, 5925, 6152, 6063, 6064, 6255, 6256, 6257, 6258, 1352, 2653, 4510, 1353, 1354, 1355, 3992, 3993, 4947, 4514, 4949, 4518, 1993, 1994, 1997, 1998, 1356, 1357, 1358, 1359, 1981, 1360, 1361, 1362, 2672, 5614, 4955, 4956, 5778, 5777, 4957, 4523, 4524, 3996, 3997, 4406, 4407, 4408, 3249, 2257, 2258, 2333, 2168, 2169, 2170, 2204, 1370, 2008, 2688, 3259, 2010, 3257, 4003, 3261, 4009, 4010, 2413, 3018, 3812, 3020, 4787, 5177, 5178, 5493, 5694, 5695, 5700, 4601, 5395, 5396, 2791, 1379, 2705, 3276, 4006, 1818, 1819, 1381, 2014, 2692, 3265, 1820, 2021, 2022, 3270, 3378, 1382, 1383, 1395, 1400, 1386, 1384, 2850, 4557, 5131, 3797, 3780, 4844, 5293, 2227, 2228, 5248, 4113, 1387, 2708, 4020, 4021, 4022, 1366, 1367, 2003, 2004, 2005, 1388, 1368, 2681, 3999, 115, 710, 116, 2121, 843, 1476, 2120, 3171, 1455, 3911, 1460, 1461, 1470, 798, 650, 117, 654, 4142, 118, 694, 3910, 902, 2725, 1521, 1868, 1522, 2565, 3150, 3151, 4400, 4834, 4401, 4827, 4828, 4402, 1251, 5202, 5203, 1412, 4038, 4039, 4033, 2559, 3144, 1252, 1861, 3904, 2556, 3905, 2557, 2585, 3906, 5073, 5672, 6079, 2553, 119, 688, 4387, 5713, 3898, 3899, 6165, 6166, 1249, 120, 633, 2101, 839, 2785, 1458, 1463, 1464, 4635, 2105, 4630, 2786, 5059, 4123, 4634, 2111, 840, 841, 121, 731, 3201, 1302, 1840, 1841, 1842, 2540, 122, 685, 1239, 3893, 4384, 2526, 669, 5854, 1823, 1242, 1824, 2522, 3126, 1804, 123, 1406, 1404, 819, 124, 125, 783, 173, 2037, 126, 127, 1271, 1904, 2597, 3921, 3922, 4411, 1905, 1906, 3172, 128, 698, 1257, 3168, 4845, 4846, 5212, 129, 722, 1286, 1287, 1927, 1925, 3196, 2611, 130, 2433, 131, 655, 905, 1525, 1526, 2161, 132, 725, 1291, 133, 134, 907, 4148, 5956, 6168, 659, 2165, 1530, 5286, 4526, 4962, 4963, 4965, 5362, 5363, 6218, 6310, 6324, 6317, 6327, 6328, 6331, 6337, 6338, 1107, 1309, 1310, 1108, 6038, 1109, 1110, 1111, 2236, 1255, 693, 1864, 1865, 5197, 5508, 2563, 3147, 2152, 2153, 1866, 4829, 4830, 3057, 3258, 1112, 3900, 5224, 1456, 1465, 1274, 614, 1113, 615, 1114, 1115, 800, 1311, 2000, 2833, 1188, 3070, 1116, 941, 1422, 1748, 2060, 2061, 2834, 617, 3071, 1189, 3717, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 3724, 136, 684, 1197, 1778, 1786, 2476, 1776, 2488, 3106, 2490, 2491, 3111, 2492, 1245, 2463, 1777, 3095, 4370, 4369, 2489, 3885, 4817, 4816, 2493, 2484, 3881, 3861, 3080, 4360, 5191, 5190, 2471, 2470, 2469, 2479, 2480, 2481, 2482, 3878, 3090, 3092, 3870, 137, 908, 2174, 662, 1532, 1533, 2847, 138, 687, 139, 716, 1276, 2604, 3184, 3185, 3934, 4429, 3935, 140, 1150, 1151, 141, 891, 3212, 2810, 2114, 1425, 893, 2115, 2136, 895, 1484, 896, 897, 898, 899, 4061, 3325, 3326, 2814, 2117, 2062, 2453, 3318, 4547, 2063, 4055, 4056, 4548, 2733, 5440, 4068, 3329, 5070, 4132, 5441, 5442, 142, 702, 143, 5311, 709, 1265, 1883, 144, 145, 146, 147, 776, 1391, 1168, 165, 166, 167, 168, 808, 809, 3335, 4078, 4613, 4614, 5426, 6320, 6321, 2644, 3966, 5913, 6250, 6314, 6333, 5337, 5338, 3971, 3972, 3973, 3223, 3224, 148, 1316, 1312, 742, 1953, 1947, 1949, 2630, 3204, 149, 150, 151, 5111, 152, 1551, 2819, 2085, 4495, 6054, 6052, 5606, 6150, 4502, 5916, 4939, 4928, 4929, 4930, 5329, 3725, 3726, 628, 946, 3436, 3947, 857, 5109, 1254, 2560, 2123, 947, 948, 949, 5112, 3437, 5306, 5336, 5308, 5340, 5605, 3220, 3965, 5312, 2182, 2860, 3438, 4714, 950, 951, 952, 953, 2195, 954, 1543, 154, 1871, 4931, 4932, 5321, 5758, 5319, 5757, 4933, 5600, 5919, 5598, 5918, 4922, 4923, 4934, 155, 2642, 3978, 3976, 3968, 3974, 5602 }; /* 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[] = { 616, 807, 112, 744, 135, 1549, 701, 110, 1186, 1237, 813, 2408, 2287, 923, 2783, 1424, 2586, 803, 1195, 1348, 2627, 675, 2441, 2603, 1413, 675, 2358, 802, 1846, 1144, 675, 1190, 2233, 689, 107, 664, 705, 2038, 2181, 1423, 153, 2226, 3148, 2011, 3853, 3854, 712, 2792, 3954, 2626, 1191, 796, 720, 4109, 4023, 3277, 724, 1192, 1574, 1768, 3163, 1771, 1772, 2267, 2023, 713, 2707, 2023, 1267, 1785, 745, 721, 2027, 3152, 2727, 3424, 4125, 4017, 3892, 1200, 682, 4521, 1749, 1187, 4599, 1535, 2298, 1540, 4600, 1541, 1542, 3998, 3450, 3451, 3859, 4508, 1546, 2048, 894, 3728, 4013, 3729, 3160, 2342, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2401, 2403, 2404, 2405, 2406, 2407, 892, 4227, 786, 4914, 2361, 4024, 4941, 2552, 1613, 2001, 1976, 1152, 3902, 2133, 2510, 2511, 1293, 3213, 2109, 1300, 112, 4498, 3104, 2049, 3730, 788, 1942, 3341, 3173, 2742, 892, 3241, 3712, 814, 791, 793, 3712, 2863, 793, 823, 801, 2440, 1686, 1688, 1689, 1454, 4080, 2712, 784, 2599, 815, 3245, 107, 5042, 4729, 1731, 678, 816, 112, 817, 135, 4730, 5130, 110, 4490, 818, 5294, 4591, 2517, 4241, 2441, 5524, 5525, 5451, 4436, 707, 4989, 4990, 4951, 4991, 3832, -492, -492, 2373, 4395, 4396, 3779, -2518, 2533, -2519, 107, 2381, 2383, 4396, 2386, 2387, 5502, 4236, 4994, 3970, 4996, 1253, 4236, 5008, -2667, -3397, -3397, -1887, -1887, 1549, -1030, -1030, 2546, 2547, -2812, -2812, 2848, 5026, 1654, 2596, -3398, -3398, 4000, 4001, 3240, 3240, 5118, 4670, 4670, -390, -390, 4670, 4067, 1672, 4231, -2683, 3315, 3777, 4670, 2219, 2220, 2221, 5307, 2222, 4670, 2223, 4229, 2224, 2166, 3371, 1696, 2848, 1805, 1676, 2166, 3982, 1398, 2872, 1697, 5050, 4616, 1718, 2676, 1696, 1399, 761, 2073, 1698, 5921, 2848, 1323, 1697, 1324, 4835, 2778, 1326, 1327, 2219, 2220, 2221, 1698, 2222, 726, 2223, 1696, 2224, -2684, 4094, 1410, 723, 1719, 1720, 1697, 2848, 1814, 5430, 729, 5856, 6087, 2848, 812, 1698, 2731, 2044, 3937, 3938, 2440, 2219, 2220, 2221, -3475, 2222, 5950, 2223, 2848, 2224, 1847, 2848, 4647, -2685, -2178, 2844, -3397, 1696, 1410, 1951, 1410, 2798, 1718, -2178, 4041, 1697, 1446, 2848, 3891, 2848, 4725, -3398, 32, 1848, 1698, 3401, 785, 3240, 810, 2848, 4725, 1410, 5742, 2181, 1718, 4573, 695, 4725, 1721, 2848, -3458, 1719, 1720, 2690, 4652, 3452, 699, 3002, 1696, 4110, 1696, -3397, 1410, 1410, 2809, 660, 1697, 1770, 1697, 2845, 1410, 806, 3211, 1719, 1720, 1698, -3398, 1698, 3207, 4129, 2990, 1696, -2117, 39, 5246, 4031, 1696, 2851, 4371, 1697, 4910, 1696, 2116, 1410, 1697, -3284, 2621, 1696, 1698, 1697, 5249, 1696, 5251, 1698, 1410, 1697, 6304, 704, 1698, 1697, 1718, 4131, 5253, 2089, 1698, 1721, 4251, 1718, 1698, 1699, 1332, 32, 5271, 2130, 1810, 4397, 5564, 4235, 4652, 32, 1552, 772, 1699, 1722, 4214, 4304, 3003, 1721, 2374, 1719, 1720, 1696, 5332, 4705, 5320, 2044, 3140, 4242, 1501, 1697, 2135, 5320, 1498, 1699, 945, 1380, 3950, 5641, 1698, 6203, 1380, 1499, 1380, -3462, 773, 842, 5723, 696, 4304, 845, 945, 847, 39, 848, 849, 1196, 850, 851, 852, 3316, 39, 41, 2166, 2566, 2477, 6044, 2938, 2171, 4305, 41, 5654, 3380, 1699, 5241, 890, 4570, 667, 4648, 2799, 1696, 1722, -2812, 3047, 1721, 1432, -3397, 1742, 1697, 656, 1143, 1721, 1802, 700, 1170, -3461, 2713, 1698, 2375, 1762, 1340, -3398, 4305, 1722, 2888, 890, 3004, 1700, 4111, 3977, 5859, 4604, 2012, 1170, 1699, 671, 1699, 4660, 6272, 5960, 1700, 5013, 4081, 1469, 718, -3459, 1261, -3460, 2927, 4052, 5890, 1170, 732, 4662, 2628, 3891, 2636, 1699, 5774, 766, 1277, 1700, 1699, -3465, 1303, 1304, 1339, 1699, 4688, 6268, 1878, 3951, 5130, 1699, 5333, 5175, 6282, 1699, 1348, -2117, 5775, -2117, 703, 6037, 5090, 2045, 1696, 3161, 704, 1722, 5092, 4350, 4351, 1410, 1697, 5786, 1722, 5176, 1721, 830, 1700, 4503, 3162, 1698, 1696, 774, 5093, 2376, -1887, 6302, 704, 765, 1697, 6071, 6297, 1440, 1843, 1699, 1845, 2464, 5121, 1698, 719, 6037, 856, 801, 4605, -724, 5776, 3133, 733, 1385, 5460, 3161, 2474, 1686, 1688, 766, 5012, 2013, 6273, 1700, 1696, 1700, 632, 3087, -221, 5787, 3162, 1141, 1697, 2090, 2059, 5961, 1441, 801, -3284, 1803, 699, 1698, 4504, 4575, -1887, 3141, 1700, 2172, 1763, 1502, 2181, 1700, 1258, 5859, 2451, 1712, 1700, 1699, 801, 4037, 5163, 1417, 1700, 4591, 2023, 1722, 1700, 1478, 1479, 2693, 1280, 1275, 801, 660, 1474, 2231, 2454, 3981, 830, 4690, 6023, 830, 4691, 945, 2173, 945, 1142, 945, 945, 2048, 4924, 1613, 3266, 6067, 945, 3987, 1471, 945, 1472, 3991, 2508, 5791, 4236, 6204, 1322, 6305, 1700, 6044, 174, 175, 3873, 5806, 4372, 4670, 4554, 2045, 2059, 2091, 660, 2092, 786, 4505, 1743, 4980, 2662, 835, 4035, 2478, 4656, 4221, 4658, 1503, 2049, 3952, 2706, 2677, 833, 1403, 1396, 4677, 4585, 4670, 2088, 1699, 2886, 4670, 4339, 3251, 3925, 3926, 801, 1713, 4670, -3397, 657, 854, 3306, 5014, 4725, 4692, 836, 1699, 4499, 3372, 1700, 2118, 801, 1714, -3398, 955, 4704, 3240, 3330, 661, 4332, 1443, 1718, 4981, 2410, 1811, 1333, 2996, 2997, 1952, -2178, 4664, 4689, 3208, 786, 2787, 2871, 1214, 1247, -2178, 4725, 1466, 700, 1468, 3379, 1699, 793, 5287, 793, 4664, 801, 1719, 1720, 1477, 3194, 2093, 1214, -2695, 1430, 831, 2991, 4366, 2817, 4367, 4368, 2732, 6345, 4665, 1958, 2732, 5332, 1961, 2442, 2796, 1214, 1964, 1965, 1966, -3585, 5786, 1969, 1970, 1844, 5532, 1715, 5536, 701, 3384, 697, 3369, 68, 3010, 3011, 4037, 3014, 3015, 1700, 2196, 4725, 4652, 5015, 4082, 1806, 1473, 1398, 1475, 4482, 4482, 2514, 786, 2516, 1539, 2732, 2520, 1700, 1721, -3475, 4653, 2041, 4229, 1544, 4229, 6083, 1547, 2846, 2528, 3134, 727, 2531, 2094, 4229, 5787, 2534, 112, 5748, 135, 1554, 4145, 110, 3317, 3268, 730, 2781, 5033, 892, 4221, 4229, 2213, 4231, 4060, 4229, -2667, 1700, 5894, 1260, 5765, 2095, 1273, 2549, 2550, 2551, 4229, -3458, 1343, 945, 107, 1696, 3243, 3244, 5444, 3970, 1433, 6074, 2385, 1697, 2545, -2667, 728, -2524, 68, -2525, 2452, -2683, 1698, 2167, 2849, 2095, 68, -492, 6129, 2167, 6131, 6132, 1655, 1696, 4558, 668, -115, 3005, -115, 1722, 5678, 1697, 3778, 2849, 1423, 1363, -2683, 1673, 4346, 5608, 1698, -3397, 4041, -1887, 4002, 4482, -1030, 744, 4617, 2849, -2812, 2225, 2336, 2908, 1884, 2909, -3398, 1677, 5611, 1673, 5612, -119, -2684, -119, 1411, -390, 2442, 2849, 2889, 1760, 1725, 1726, 1727, 1728, 1729, 1730, 4989, 4990, 1769, 4991, 4599, 890, 2532, 5431, 4600, 4306, 1783, -2684, 3375, 2297, 4874, 2849, 3000, 1696, 3891, -2685, 2175, 2849, 2095, 5008, 1411, 1697, 1411, -111, -3462, -111, 1423, 2183, 2377, 1694, 1698, 6072, 2849, 3368, 1691, 2849, 1693, 1817, 4306, 6239, -2685, 6190, 6191, 1411, 5669, 1784, 2910, 2473, 2911, 3380, 2095, 2849, 6197, 2849, 2822, 5217, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 2849, 1411, 1411, 1186, 4804, 3107, 1348, 5982, 1380, 1411, 2849, 1320, -3461, 1195, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 5297, 4036, 2900, 4053, 1190, 1699, 2992, 801, 661, 6142, 1411, 1500, 3857, 1531, 5760, 4591, 5762, 658, 1696, 5130, -3459, 1411, -3460, 1191, 5756, 2979, 1697, 2980, 5323, 6228, 1192, 3031, 2366, 1699, 801, 1698, 1549, 2939, -3465, 677, 1974, 2919, 4974, 801, 5731, 3804, 801, 3805, 4307, 5737, 5738, 801, 1200, 661, 3307, 660, 1187, 2427, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 835, 1725, 1726, 1727, 1728, 1729, 1730, -2698, 2059, 3889, 3927, 4874, 2465, 1881, -1887, 1696, 801, 4915, 3088, 4257, 4666, 4258, 2167, 1697, -3294, 4506, -1962, 830, 4982, 830, 5983, 892, 1698, 3089, 3798, 836, 2007, 1699, 4666, 5160, 838, 1348, 1807, 5162, 1919, 813, 1700, 1789, 4647, 5294, 5294, 2428, 1348, 1348, 1867, 3928, 786, 2609, 1825, 3779, 3779, 786, 786, 3779, 3779, 1264, -3491, 945, 1372, 3779, 3779, 6229, 4236, 2887, 1700, 1884, 4236, 4318, 1920, 4319, 5016, 3918, 2448, 3263, 2711, 744, 3875, 1930, 1855, 2064, 1727, 1728, 1729, 1730, 4073, 699, 4556, -2690, 3308, 1944, 3916, 786, 1943, 3842, 3746, 3309, 1696, 660, 3941, 943, 2593, 3310, -2512, 1374, 1697, 3040, 32, 3929, 5607, 2048, 2512, 1716, 1956, 1698, 2441, 943, 2815, 1699, 2712, 1364, 1193, 4966, 2497, 2068, 4969, 5766, 3130, 2612, 1696, 4925, 4942, 5663, 890, 1411, 1700, 786, 1983, 2518, -2117, -2117, 4469, 3082, 1691, 4811, 1693, 1698, 4527, 5829, 5183, 5079, 3930, 699, 2049, 1170, 6056, 2894, 2006, 39, 3103, 4970, 4530, 5158, 3108, 169, 630, 5869, 41, 4545, 2714, 1959, 1960, 5080, 4824, 2895, 2030, 814, 3311, 3044, 3045, 6227, 1699, -3491, 5675, 2023, 5677, 2023, 2023, 2048, 3269, 2915, 3272, 3273, 815, 169, 4069, 2039, 2040, 1396, 2043, 816, 112, 817, 135, 3086, 4084, 110, 2053, 818, 2863, -1847, 1908, 2904, 3831, 4482, 1857, 4919, 6271, 786, 892, 801, 3390, 1924, 2199, 4648, 1700, 6252, 4106, 793, 786, 3232, 2049, 786, 107, 3320, 3948, 3233, 2233, 6322, 6230, 3312, 2574, 700, 786, 2802, 2803, 1812, 786, -1274, 2103, 1389, 2440, 1518, 6231, 4124, 3817, 3820, 3823, 3824, 4926, 2113, 4511, 4512, 801, 3173, 801, 786, 2804, 1858, 3810, 3811, 5985, 1699, 6001, 6005, -3294, 4515, 4516, 2659, 4619, 2660, 4476, 1523, -1962, 3836, 5597, 5599, 1870, 1700, 4916, 704, 6194, 1877, 1288, 2638, 2639, 801, 2841, 4926, 3803, 2818, 3806, 801, 2649, 2650, 2651, 3897, 4229, 700, 1390, 2835, 4362, 1407, 3931, 3932, 3933, 4972, 3890, 2429, 6323, 2329, 2330, 2166, 837, 4482, 1528, 2177, 6051, 6253, 2836, 4770, 4374, 1365, 1882, 744, 4377, 2837, 923, 1144, 6050, 3264, 1518, 3712, 4047, 1879, 2209, 943, 1808, 943, 4074, 943, 943, 786, 801, 903, 3240, 3240, 943, 2843, 3321, 943, 3032, 5759, 1826, 6069, -1847, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 2073, 4725, 1363, 4725, 4088, 1700, 4090, 4091, 1696, 1372, 3402, -3491, 4096, 1373, 6212, 1696, 1697, 4107, 2409, 112, 4104, 3188, 1196, 1697, 4112, 1698, 4115, 1691, 2746, 1693, 3120, 661, 1698, 2575, 3121, 6001, 3123, 1700, -1887, 6005, 4546, 5830, 3319, 1718, 3041, 3983, 5067, 5664, 890, 4670, 3128, 2513, 1802, 170, 1374, 4639, 4640, 3891, 4117, 1375, 1696, 3053, 3054, 3136, 3137, 3013, 6055, 4874, 1697, 1986, 6251, 1922, 1719, 1720, 1696, 1214, 786, 1698, 2519, 4920, 786, 1696, 1697, 4070, 2057, 1696, 786, 5184, 838, 1697, 2378, 1698, 1376, 1697, 2701, 2069, 3401, 2359, 1698, 171, 6148, 853, 1698, 3876, 2499, 2500, 3009, 2502, 2504, 2505, 2506, 6288, 6195, 2099, 1519, 2099, 112, 3946, 2555, 2515, 4108, 2367, 4927, 1696, 2854, 5134, 4119, 1813, 1524, 171, 3877, 1697, 2862, 1917, 2905, 1987, 1721, 2530, 699, 1377, 1698, 3320, 1253, 1696, 2430, 2998, 1988, 5081, 801, 661, 2414, 1697, -1847, -1887, 1989, 2434, 5931, 5920, 3383, 1696, 1698, 4927, 2906, 1851, 676, 1529, 786, 1697, 2210, 1696, 801, 801, 3809, 4952, 1696, 1880, 1698, 1697, 801, 2466, 4262, 1990, 1697, 1699, 904, 6254, 1698, 3189, 3323, 6232, 1699, 1698, 5665, -1887, 2171, 2598, 6085, 1803, 1508, 6089, 2483, 2089, 3188, 1519, 3161, 2095, 5831, 943, 793, 793, 786, 793, 793, 793, 793, 786, 801, 786, 3077, 3162, 5458, 1722, 6214, 793, 2643, 2646, 5364, 3896, 1587, 1588, 1589, 3072, 2912, 6001, 6005, 1699, 2631, 1991, 1936, 2066, 2529, 793, 2535, 801, 2523, 890, 5826, 2637, 4403, 1699, 3073, 5828, 2331, 174, 175, 2332, 1699, 3074, -950, 5256, 1699, 4874, 68, 1520, 786, 1992, 3321, 5804, 4482, 5269, 5270, 4482, 1696, 1636, 4859, 1918, 786, 3936, 1696, 3079, 1697, 2647, 2648, 1696, 1696, 1696, 1697, 2524, 2682, 1698, 1700, 1697, 1697, 1697, 700, 1698, 5917, 1700, 1699, -1274, 1698, 1698, 1698, 2702, 5380, 5091, 2617, 1549, 3919, 6113, 2048, 3190, 830, 6115, 692, 2067, 2337, 3050, 1699, 945, 2341, 1549, 2922, 5880, 1821, 801, 2347, 5881, 4953, 1348, 5405, 3145, 6318, 1373, 1699, 1348, 892, 5789, 3322, 830, 786, 2726, 1700, 1696, 1699, 2614, 2171, 1822, 5932, 1699, 1348, 1697, 5832, 2049, -1887, 1509, 1700, 945, 3187, 2095, 1698, 5135, 3440, 1700, 2618, 5477, 801, 1700, 3189, 3282, 3283, 2172, 3858, 2633, 706, 801, 801, 801, 5786, 1375, 3098, 786, 2023, 2924, 1418, 793, 793, 3269, 3862, 5698, 945, 5881, 4482, 1852, 5701, 3871, 3872, 2059, 708, 786, 5496, 2798, 6219, 2842, 5937, 1700, 2447, 5632, 2095, 5634, 786, 786, 2116, 4744, 5639, 1696, 1937, 5586, 801, 3169, 5882, 5644, 5645, 1697, 2525, 1700, 3252, 945, 945, 4389, 5787, 5651, 1698, 4136, 4137, -725, 4810, 4874, 2090, 5439, 636, 1700, 3860, 4986, 3986, 4814, 4815, 1699, 3990, 5604, 2501, 1700, 1334, 1699, 4390, 2507, 1700, 2509, 1699, 1699, 1699, 2460, 1696, 1377, 1348, 3449, 3449, 3449, 4118, 3323, 1697, 801, 4993, 2059, 5438, 6319, 2923, 5007, 4531, 1698, 786, 4542, 5017, 1283, 5882, 5790, 786, 4660, 2023, 4954, 2741, 1853, 3190, 4121, 806, 3920, 1510, 6225, 1556, 2461, 1696, 1170, 1696, 4662, 2544, 5144, 1984, 1854, 1697, 2716, 1697, 786, 943, 5515, 5707, 1335, 2554, 1698, 1699, 1698, 1466, 5417, 2091, 2172, 2092, 2422, 2794, 5225, 6124, 5883, 5225, 3324, 3891, 5981, 699, 2801, 786, 786, 1696, 1696, 5482, 6185, 3891, 3891, 6184, 5459, 1697, 1697, 1557, 2717, 639, 2813, 2813, 1419, 1700, 1698, 1698, 2423, 3099, 5179, 1700, 6140, 5313, 5325, 1294, 1700, 1700, 1700, 1284, 6075, 772, 1420, 5386, 2718, 1696, 801, 5231, 4745, 2799, 786, 1696, 6161, 1697, 6163, 2202, 2442, 2718, 4692, 1697, 786, 1699, 1698, 1696, 5883, 6110, 2857, 4004, 1698, 4958, 4959, 1697, 3221, 5736, 773, 3222, 4210, 2866, 856, 6154, 1698, 3230, 5314, 1558, 3433, 2093, 4901, 714, 4211, 5648, 1696, 5982, 2641, 5722, 2106, 1285, 1700, 3427, 1697, 3077, 4559, 5232, 2424, 4027, 3177, 3178, 746, 1698, 1699, 4694, 1363, 5418, 3072, 5638, 2215, 4668, 3428, 1295, 5226, 1549, 4005, 1363, 1363, 3429, 3718, 2462, 3440, 6125, 3718, 5371, 112, 3073, 2167, 1336, 3382, 2898, 4874, 2054, 3074, 5243, 3731, 6213, 5796, 3719, 5871, 3435, 1699, 3719, 1699, 3027, 3720, 3736, 3737, 892, 3720, 1559, 2998, 4960, 749, 2094, 3079, 700, 3969, 1696, 3849, 1696, 6032, 4695, 1700, 3078, 6162, 1697, 3727, 1697, 1469, 2719, 3727, 6155, 1696, 4028, 1698, 3179, 1698, 2425, 1699, 1699, 1697, 2720, 1423, 5708, 5709, 2734, 4551, 4552, 4553, 1698, 4317, 2737, 4320, 4229, 5233, 1696, 5983, 4229, 6126, 1696, 4902, 890, 3772, 1697, 5243, 744, 5721, 1697, 774, 1700, 4622, 4625, 1698, 4628, 1699, 4560, 1698, 2881, 2409, 3776, 1699, 786, 5315, 5798, 747, 786, 2928, 1696, 4961, 4764, 5749, 4394, 1699, 2929, 4690, 1697, 4664, 4691, 2987, 1703, 1704, 1705, 3234, 1706, 1698, 5239, 5239, 1700, 2694, 1700, 2202, 6245, 6243, 6243, 4665, 794, 2812, 2812, -598, 1699, 945, 1214, 5234, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 6187, 1691, 3833, 1693, 3115, 2925, 795, 3891, 5930, 3116, 2721, 5001, 5710, 2827, 1700, 1700, 2202, 4695, 3119, 2907, 6279, 2937, 2389, 1531, 3122, 1696, 1696, 5943, 2949, 1696, 797, 5157, 2954, 1697, 1697, 4062, 4063, 1697, 2276, 4064, 4065, 4066, 1698, 1698, 1193, 4469, 1698, 3153, 1186, 1186, 1700, 3891, 5328, 801, 801, 5352, 1700, 5353, 1195, 1195, 801, 1699, 5002, 1699, 2813, 2813, 5001, 2202, 1700, 3069, 2955, 1190, 1190, 2695, 5561, 2279, 1699, 801, 6246, 801, 2722, 3161, 3093, 3094, 5711, 6235, 5192, 5193, 2926, 1707, 1191, 1191, 1696, 4555, 2849, 1700, 3162, 1192, 1192, 1699, 1697, 4667, 4674, 1699, 5825, 4676, 2958, 3114, 793, 1698, 1620, 1348, 4680, 793, 2950, 1348, 3117, 5002, 2390, 1200, 1200, 2959, 793, 1187, 1187, 6277, 2295, 3124, 793, 1637, 1638, 1699, 3025, 6247, 2391, 1737, 3161, 4825, 2202, 3277, 3026, 159, 4029, 4030, 4112, 4032, 4034, 4998, 3219, 3440, 6234, 3162, 1696, 5984, 2696, 786, 3227, 3229, 5264, 6298, 1697, -723, 811, 2007, 1696, 4783, 1578, 1746, 1700, 1698, 1700, 1867, 1697, 3790, 945, 5985, 1696, 801, 3156, 786, 820, 1698, 5940, 1700, 1697, 4476, 4971, 3791, 6311, 5874, 2970, 5876, 1696, 1698, 2974, 4608, 3127, 2316, 830, 822, 1699, 1699, 4609, 5265, 1699, 2392, 1700, 786, 5003, 1698, 1700, 4999, 3186, -914, 3183, -914, -723, 5000, 786, 2975, 2663, 1140, 680, 174, 175, 2978, 2664, 686, 2665, 1146, 2985, 3455, 3738, 945, 1246, 174, 175, 704, 1700, 636, 834, 2044, 1348, 844, 3210, 2907, 5048, 945, 3215, 3216, 786, 637, 793, 2059, 2059, 6312, 6313, 5167, 3236, 786, 3228, 793, 3237, 5060, 786, 5853, 4660, 1699, 5064, 1696, 786, 3025, 5266, 5360, 5993, 846, 890, 1697, 906, 4807, 1170, 1122, 4662, 5822, 5361, 786, 1698, 3434, 945, 3250, 3980, 1120, 5885, 2006, 3255, 1696, 5885, 945, 945, 945, 4383, 2666, 3078, 1697, 2812, 2812, 2134, 1700, 1700, 4779, 5282, 1700, 1698, 4781, 3723, 5284, 4221, 3281, 3723, 2849, 4986, 4732, 4733, 2023, -2686, 3288, 6011, 1699, 4532, 1138, 1696, -2356, 4224, -2356, 6135, 6136, 5239, 1696, 1697, 1699, 670, 943, 801, 4430, 4225, 1697, 1248, 1698, 786, 639, 4752, 1699, 1987, 1935, 1698, 4831, 4666, 1250, 5379, 1940, 1941, 5841, 4255, 1988, 4221, 4772, 1769, 4776, 1769, 1696, 1259, 2673, -2692, 2792, 1700, 4986, 1264, 1697, 4375, 943, 4376, 4943, 3718, 4226, 4790, 1696, 1698, 2816, 4944, 2817, 4945, -2694, 5410, 1697, 1269, 3135, 4388, 3374, 4347, 786, 1272, 3719, 1698, 5853, 4629, 786, 801, 801, 3720, 4256, 4802, 1278, 943, 2723, 3458, 1696, 1696, 2723, 801, 3158, 1696, 1696, 1281, 1697, 1697, 2839, 1290, 4226, 1697, 1697, 3727, 1292, 1698, 1698, 1700, -2700, 6102, 1698, 1698, 6105, 5885, 5689, 1299, 4221, 1699, 1696, 1700, 4271, 4221, 943, 943, -2703, 1301, 1697, 2674, 1696, -2706, 5885, 1700, 1696, 5505, 5506, 1698, 1697, 1315, 699, 1696, 1697, 5205, 4221, 1699, 2913, 1698, 2274, 1697, 3007, 1698, -2707, 765, 3069, 1712, 1319, 1992, 1698, 1696, 4273, 4295, 4720, 641, 1696, 3217, 4721, 1697, 4722, 1325, 4723, 801, 1697, 801, 3226, 2956, 1698, 2957, 1696, 1363, 1699, 1698, 1486, -914, 4221, 1363, 1697, 1699, 1321, 1696, 5007, 4221, -2708, 1696, 1328, 1698, 4296, 1697, 1330, -2710, 1363, 1697, 5151, 2045, 1331, 5004, 1698, 4221, 1369, 3444, 1698, 3445, 2953, 1196, 1196, -2711, 5194, 1313, 1314, 1699, 1317, 1696, 1318, 6291, 6293, 4664, 1700, 174, 175, 1697, 2029, 5087, 1405, 2031, 2031, 1699, 1407, 744, 1698, 2961, 1417, 1574, 1487, 4665, 4239, 1488, 2757, 2758, 1415, 945, 1214, 1713, 1700, 3994, 1305, 3995, 945, 1306, 1307, 1427, 5004, 2770, 1308, 2772, 1431, 1699, 1699, 1714, 1831, 3903, 1699, 1699, 1489, 5885, 3789, 4652, 1437, 5842, 5714, 1439, 4921, 1490, 4720, 4385, 5843, 5089, 4721, 1700, 4726, 1305, 4723, 806, 1306, 1307, 1700, 1699, 700, 1569, 112, 5844, 4138, 4139, 4140, 3813, 1691, 1699, 1693, 1438, 4050, 1699, 4051, 1449, 2962, 5113, 1363, 5005, 1699, 5116, 4536, 4537, 3381, -2279, 4538, 4539, 5124, 5274, 1700, 2964, 4540, 4541, 4279, 786, 2957, 4282, 1699, 1884, 801, 801, 1715, 1699, 5049, 1444, 1700, 5879, 174, 175, 1457, 1402, 10, 4820, 2965, 1452, 5786, 1699, 2968, 1469, 2773, 2774, 5427, 1483, 2452, 2452, 2350, 2351, 1699, 699, 801, 5436, 1699, 1485, 5005, 5885, 1700, 1700, 1708, 1709, 1710, 1700, 1700, 4286, 1481, 1884, 2969, 699, 1423, 1423, 4287, 1491, 4288, 112, 3882, 135, 3884, 3807, 110, 1493, 1699, 17, 1712, 6094, 6095, -2307, 1700, 3967, 5787, 4019, 1494, 1769, 5247, 5250, 5252, 5254, 1700, 5633, 5257, 5258, 1700, 1495, 4290, 5262, 4291, 107, 5268, 1700, 2359, 5272, 5845, 153, 5247, 4611, 5646, 4612, 5283, 5247, 1392, 1393, 786, 2409, 1769, 5846, 4784, 1700, 1884, 5655, 1496, 5657, 1700, 5053, -3445, 5054, -2307, 2973, 2976, 4316, 1497, 2983, 5847, 1696, 4062, 4063, 1700, -3447, 4064, 4065, 4066, 1697, 4818, 4440, 5055, 5204, 5056, 1700, -3444, 4054, 1698, 1700, -3446, 2885, 2205, 2206, 3943, 5057, 5138, 5058, 5140, -950, 1504, 2216, 1696, 1986, 1505, 1423, 943, 5152, 1713, 1884, 1697, 1506, 2219, 2220, 2221, 32, 2222, 1700, 2223, 1698, 2224, 793, 4469, 5165, 1714, 5166, 5173, 1507, 1884, 786, 1511, 2277, 2995, 2280, 1512, 700, 5998, 5185, 3723, 5186, 5209, 786, 5210, 4808, 4809, 786, 1348, 1348, 2293, 2294, 2296, 801, 5229, 700, 5230, 2299, 2300, 37, 5182, 2414, 5351, 1513, 3995, 2317, 5880, 5452, 39, 5453, -2307, 1987, 945, 5454, 5456, 5453, 5457, 41, 5518, 5666, 4392, 5667, 1988, 801, 801, 1514, 5686, 2447, 5603, 1515, 1989, 42, 1832, 5719, 4250, 5720, -2309, 1715, 4622, 1235, 4625, 1516, 4628, 4043, 4044, 4045, 4046, 1517, 4048, 4049, 5982, 5725, -2307, 5720, 5848, 5098, 1527, 1990, 4259, 801, 1555, -2307, 5098, 5726, 5772, 5720, 3995, 5773, -3702, 3995, -2307, 5275, 4666, 5276, 5881, 4077, 1833, 5923, 1834, 5924, 1560, 5953, 6349, 5954, -2307, -2309, 4092, 4093, 1699, 4095, 1561, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 5962, 4105, 5963, 1575, 5397, 4114, 4476, 1631, 5997, 5277, 4051, 6122, 4911, 6123, 5145, 1991, 786, 6157, 1576, 4843, 5450, 1699, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 1577, 3912, 943, 2040, 801, 801, 5278, 1582, 3449, 786, 1992, 1583, 4650, 4651, 1584, 2219, 2220, 5288, 1585, 5289, 4260, 5290, 4153, 5291, 1586, 5484, 634, 3406, 3407, 1590, 5983, 3408, 1592, 3409, 4681, 3410, 5882, 1835, 1663, 6158, 4684, 5186, 2023, 6170, 1593, 6171, 4261, 4753, 3292, 4693, 1594, 4697, 4698, 4699, 1595, 4701, 4702, 6179, -2309, 6180, 4754, 943, 5437, 1596, 1700, 4706, 4707, 4708, 4709, 4710, 5495, 6196, 1597, 5720, 772, 943, 4755, 5673, -1334, 1598, 3979, 4266, -1334, 635, 6198, 1986, 5720, 1836, 4267, 993, 1732, 6199, 1363, 5720, 4660, 1700, 1363, 963, 964, 1599, -2309, 967, 1716, 969, 2818, 971, 4756, 773, 4661, -2309, 4662, -1675, 6226, 5420, 5720, 3431, 943, 6236, -2309, 5720, 4268, 1667, 6259, -1334, 5186, 943, 943, 943, -1334, 4378, 4379, 1733, -2309, 4380, 1837, 4381, 4269, 4382, 6335, 5279, 6336, 4641, 3722, 4643, 1600, 5883, 3722, 1601, 5077, 1602, 4469, 1987, 636, 1603, 1606, 1607, 5879, 174, 175, 4831, 1608, -1334, 1988, 1615, 637, -1674, 4270, 4278, 1013, 1616, 1989, 4284, 4285, 5280, 4943, 1617, 6284, 6285, 699, 1618, 6286, 4944, 6287, 4945, 2452, 4757, 5084, 5879, 174, 175, 1621, -750, 1622, 1623, 1624, 1734, 4293, 1990, 1625, 1626, 1627, 1628, 1629, 1630, 5821, 5096, 4294, 4513, 1423, 699, 4297, 5895, 1632, 1735, 5101, 1633, 1736, 4740, 1634, 1635, 5103, 1639, 1640, 1363, 1838, 1641, 3293, 638, 1642, 1643, 5117, 4743, 1644, 1645, 4654, 5150, 1646, 5896, 5126, 5127, 5156, 4659, 5895, 1647, 4675, 3718, 4758, 774, 1839, 4144, 1648, 4679, 1649, 1991, 5168, 1650, 1651, 1027, 1652, 5717, 1653, 1308, 639, 1656, 3719, 5169, 1657, 4469, 5896, 5690, 1658, 3720, 3294, 1659, 1660, 1661, 1662, 1664, 1665, 3027, 5985, 1992, 1666, 1668, 1669, 1670, 1671, 1674, 5841, 699, 4476, 1675, 4785, 3727, 1678, 1740, -2540, 5868, -950, 1679, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 1680, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 772, 4899, 4900, 1738, -1334, 4904, 4905, 1744, -1334, 1681, -950, 750, 1682, 5771, 1683, 700, 5879, 174, 175, 1684, 5897, 1739, 5898, -2526, 4663, 4173, 1716, 5855, -2527, 1745, 1753, 3295, 1754, 773, 1755, -3547, 68, 1756, 699, 1761, 1787, 4759, 4760, 1788, 5880, 170, 700, 1193, 1193, -1334, 1809, 5897, 751, 5898, -1334, 640, 1790, 1828, 5489, 4664, 5696, 1827, 1829, 1830, 1696, 1849, 1850, 1859, 752, 1862, 5702, 5895, 1697, 1863, 1872, 5880, 1884, 4665, 1916, 4299, 1926, 1698, 641, 943, 1214, 1928, 5884, -1334, 4476, -2307, 943, 1932, 1946, 5858, 3296, 1938, 1939, 5896, 1945, 5864, 5865, 5009, 1948, 1950, 1954, 1971, 5019, 1154, 1972, 4652, 3297, 3298, 5881, 1973, 1984, 3299, 3300, 3301, 1975, 1995, 4337, 2716, 1996, 1999, 2009, 2025, 700, 2015, 2237, 2238, 2239, 2240, 1791, 2026, 801, 2036, 786, 2051, 2055, 2058, 4354, 801, 801, 5881, 4355, 2070, 2074, 4358, 4359, 2080, 2086, 5652, 2100, 4493, 5204, 2104, 2106, 2110, -950, 2947, 1696, 2717, 2112, 2119, 2124, 5899, 1155, 2122, 1697, 2126, 2127, 2129, 2128, 774, 2241, 2242, 2243, 1698, 2248, 2131, 2132, 2156, 3831, 3302, 2917, 753, 2164, 2920, 2176, 3449, 4761, 4762, 2178, 2179, 700, 945, 5899, 2180, 2718, 5897, 2654, 5898, 2184, 2932, -2079, 5882, 4409, 112, 112, 2185, 5842, 2187, 1696, -1334, 2188, 2190, 754, 5843, 2200, 2201, 1697, -73, 2202, 5880, 2951, 2244, 2245, 2211, 2218, 1698, 1696, 2232, 5844, 2273, 2260, 3303, 5882, 2274, 1697, 1699, 2275, 6043, 2286, 2288, 2291, 2249, 786, 1698, 801, 945, 4280, 786, 786, 2292, -2279, 3760, 4496, 793, 1792, 4636, 2301, 158, 2355, 642, 2340, -1887, -1887, 2344, -2309, 2384, 1793, 5077, 734, 735, 156, 2365, 2388, -1887, 2369, 786, 786, 643, 5616, 5617, 5900, 5619, 4522, 2415, 5397, 2246, 2416, 5881, 2443, 2444, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 2449, -3000, 3762, 2450, 736, 2456, 2250, 2166, 2251, 5883, 2467, 2719, 2472, 2475, 2252, 2494, 2495, 2496, 2521, 1156, 1794, 1157, 945, 2720, 644, 3433, 4602, 2536, 1795, 2538, 1699, 159, 1158, 2537, 2539, -1887, 2548, 2542, 3427, 5899, 5883, 1700, 1696, 737, 2541, 4763, 5819, 2247, 1159, 2543, 1697, 645, -2129, 3722, 5845, 2558, 2561, 3428, 5490, 1698, 646, 5491, 2562, 1796, 3429, 6111, 2564, 5846, 2567, 2568, 2569, 4348, 2570, -1887, 2253, 5676, 5514, -1887, 2577, 5882, 2578, -1887, 1699, 2587, 5847, 943, 3435, 2588, 3723, 993, -1887, -1887, 2589, 2590, 2591, 5696, 2595, -1887, 2592, 2594, 1699, -1887, 2601, 2602, 5245, 4631, -1887, 157, -1887, 5075, 2605, 5078, -1887, 2610, 2606, 1320, 5261, 2615, 2254, 2621, -1887, 5088, -1887, 2721, 1696, 2624, 1696, -1887, 2629, 2652, 2669, 4469, 1697, 2655, 1697, 112, 4272, 1700, 944, 5099, 2656, 1698, 2248, 1698, 4283, 4666, 2657, -1887, 2658, -3580, 2661, 5104, 2670, -1334, 944, 2671, 2679, -1887, 2683, 1194, -1887, 2684, 4469, 2686, 2687, 6027, 2699, 5125, 1013, 2703, 2700, 2704, 2715, 2729, 5901, 1797, -2551, 2730, 2738, 2739, -1887, 4438, 2743, 1696, 2745, 2744, 4443, 4444, 5883, 1700, 2749, 1697, 2780, 2722, 2784, 2789, 2790, 1376, 4715, -1887, 1698, 2795, 1798, -1887, 4719, 5901, 2796, 1700, 2797, 2249, 2805, 1235, -1887, 2255, 1363, 1363, 2808, 1699, 738, 158, 2828, 3764, 2855, 2856, 2256, 2858, 5848, 2874, 2877, 1160, 2879, -1887, 2880, 2882, 2891, 739, 2892, 2893, 2896, 2897, 5779, 2899, 5780, 5781, 2907, 2918, -1887, 2914, 2989, 2921, 3433, 2930, -1887, -1887, 2931, 2933, 3019, 1027, 2934, 2963, -1475, 740, 755, 3427, 2935, 2966, -1887, 2936, -1887, 5884, 2940, 4476, 2948, 2977, 2952, 2250, -2079, 2251, 2938, 5964, -166, 2960, 3428, 2252, 2967, 2971, 4775, 2972, -725, 3429, 1986, 4984, 2981, 3006, 159, 2982, 2984, 2988, 3012, 1699, 5884, 1699, 4476, 1730, 741, 2994, 2999, -1640, 3021, 3031, 4469, 3435, 3038, 3022, 4354, 5382, 3043, -3580, 4355, 3023, 1654, 3024, 1672, 1676, 1700, 3046, 3048, 3049, 644, 3051, 3052, 4337, 3055, 6183, 4805, 801, 3113, 6261, 4806, 3059, 6340, 3081, -725, 2253, 160, 751, 3060, 3061, 3097, 3100, 3101, 3102, 3105, 5901, 3109, 756, 1987, 3110, 1699, 3125, 3129, 3161, 4019, 3139, 3142, 3143, 3149, 1988, 1986, 3167, 5488, 3166, 2359, 6068, 3195, 1989, 3162, 5489, 3197, 3198, 3199, 4832, 3202, 3203, 944, 5588, 944, 2254, 944, 944, 4841, 4833, 3235, 3242, 112, 944, 3246, 1799, 944, 5238, 3260, 3440, 1990, 3267, 3271, 4054, 1700, 4433, 1700, 2757, 2758, 3275, 3247, -1887, 3279, 6167, 3278, 6096, 3284, 3285, 3286, 3287, 3289, 3290, 2770, 786, 2772, 3291, 3328, 3331, 3433, 4875, 3334, 4985, 1987, 786, 1161, 1162, 1163, 1164, 3343, -725, 3338, 3427, 3344, 1988, 3345, 3718, 5884, 3376, 4476, 3346, 3347, 1989, 3348, 3349, 3350, 3351, 1991, 4903, 3352, 3353, 3428, 6175, 5065, 1700, 3719, 3373, 6348, 3429, 3354, 3355, 3356, 3720, 3377, 3357, 1800, 3358, 753, 3359, 1990, 3370, 2255, 3360, 3361, 1801, 1992, 3389, 3362, 5043, 4517, 3435, 3394, 2256, 3363, 3727, 3364, 3391, 3365, 3366, 2095, 3379, 3367, 3392, 3395, 3434, 3250, 3393, 3248, -725, 3403, 3399, 3404, 5370, 3412, 2414, 3405, 3733, 2409, 2773, 2774, 3734, 945, -1683, 3732, 3748, 3814, 1769, 3749, 4975, 1696, -1887, 3441, 3755, 3747, 801, 1991, 3768, 1697, 161, 5684, 3787, 3788, 162, 3800, 3799, 3801, 1698, 3828, 3815, 3827, 6167, 3829, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 1992, 3032, 3839, 3433, 3837, 3843, 3845, 3846, 3847, 4434, 4435, 3850, 4413, 3851, 3863, 1986, 5566, 1123, 3855, 4875, 3864, 3856, 5487, 2478, 2477, 2237, 2238, 2239, 2240, 793, 3894, 3908, 2849, 6175, 5047, 5567, 4986, -725, 3909, 2817, 4984, 3917, 5568, 112, 3915, 3923, 3944, 3949, 3955, 3924, 3957, 3959, 3960, 3961, 163, 944, 3984, 3985, 3988, 3989, 4012, 4057, 4016, -3580, 5572, 112, -2032, 5066, 4025, 4026, 110, 2241, 2242, 2243, 4058, 4059, 4075, 4079, 4085, 6240, 3718, 1987, 4086, 4087, 801, 4089, 4122, 2793, 6329, 993, 4126, -725, 1988, 801, 751, 4133, 4134, 4128, 4146, 3719, 1989, 4855, 6339, 4209, 4212, 4213, 3720, 4218, 6329, 4221, 3161, 4879, 3718, 4233, 4226, 6339, 4230, 5108, 5490, 4234, 4243, 5491, 2244, 2245, 4414, 3162, 4240, 1990, 3727, 1124, 5693, 3719, 4415, 4244, 4245, 4246, 4289, 1125, 3720, 4301, 4331, 1699, 4315, -1887, 4300, 4311, 4312, 4416, 5220, 4323, 4325, 4340, 1126, 4326, 943, 4327, 2167, 4417, 4418, 4419, 3727, 4328, 1127, 1128, 1129, 4341, 3434, 4420, 1013, 4329, 4330, 5810, 1130, 4338, -1887, 4342, -1887, 4344, 4345, -1887, -1887, 4349, 4364, 1991, 5263, 4365, 2246, 4393, 4373, 4412, -725, 4386, 4392, 4391, 4431, 4404, 4410, 4432, 4439, 4442, 5533, 4491, 4500, -1799, 5538, 5539, -1804, 4525, 943, 4528, 4544, 1992, 4520, 4549, 4562, 4337, 4534, 4529, 4607, 4684, 4615, 4535, 4632, 4633, 4638, 4657, 4646, 753, 4693, 4652, 4697, 4698, 4699, 4701, 4702, 4678, 4685, 4712, 4713, 5375, 5376, 4700, 5378, 4727, 4731, 4734, 4987, 5383, 1700, 2247, 5387, 4737, 4735, 5390, 5391, 4746, 2359, 1027, -725, 4747, 4777, 5399, 112, 5400, 2991, 4409, 4306, 5201, 5214, 5215, 5216, 4786, 5406, 4002, 4788, 4789, 4792, 4794, 801, 4793, 4798, 4875, 2427, 5228, 5385, 4843, 943, 41, 4848, 4812, 4847, 4813, 4826, 4842, 4850, 4849, 4851, 4856, 786, 4852, 4853, 4876, 4878, 4602, 4890, 4421, 5259, 5260, 4573, 4877, 1131, 4918, 4935, 4938, 801, 4940, 5273, 4422, 4948, -262, 4950, 2411, 1132, 4964, 4977, 4978, 4979, 5011, 4986, 5295, 5021, 4995, 5022, 5296, 4997, 5305, 5010, 5020, 5024, 5027, 5023, 5025, 5028, 5029, 2248, 5030, 3434, 5031, 5038, 4986, 3723, 5077, 3722, 6308, 5045, 5041, 4988, 5052, 5341, 5305, 944, 5044, 5061, 5062, 5068, 5069, 5072, 4705, 5074, 5094, 5488, 5102, 5110, 5105, 5119, 5122, 5132, 5489, 5136, 5153, 5137, 5138, 5139, 5141, 5154, 2409, 5142, 5140, 5155, 5149, 5159, 5161, 5164, 5171, 5174, 5180, 5172, 5188, 5196, 5198, 5199, 5206, 4423, 5200, 5207, 5211, 4875, 5218, 5317, 5221, 5222, 2249, 5322, 5243, 5334, 5343, 5344, 4424, 5345, 4841, 4841, 786, 1133, 5348, 5355, 5350, 5356, 6053, 5357, 5358, 5365, 5393, 5366, 2359, 5367, 5377, 5368, 5373, 5371, 5384, 786, 5403, 5388, 5389, 4073, 5421, 4841, 5423, 5447, 5425, 5394, 5443, 5448, 4841, 5445, 5462, 5475, 4425, 4875, 5461, 5404, 5474, 1134, 5422, 5476, 5478, 5480, 5407, 5481, 5408, 5409, 4426, 5483, 5429, 5486, 6216, 1135, 2250, 5500, 2251, 5497, 5512, 5513, 5571, 5522, 2252, 5517, 5526, 5523, 5529, 5530, 5531, 5534, 5574, 5730, 112, 5576, 5578, 5581, 5446, 788, 5582, 5587, 5589, 5970, 5971, 5592, 5973, 5974, 5975, 5976, 5594, 5596, 5613, 3718, 801, 5603, 5471, 5609, 5618, 5610, 5620, 5621, 5623, 5636, 5226, 174, 175, 5642, 5625, 174, 175, 5643, 3719, 5647, 5653, 5000, 5658, 5244, 5682, 3720, 5230, 5670, 5685, 5697, 2253, 5734, 3723, 5688, 5691, 5472, 5698, 5699, 945, 5305, 5692, 5704, 5718, 5231, 4987, 5701, 5722, 3727, 5715, 1887, 5724, 5751, 5728, 1887, 945, -3693, 5752, -2688, 5783, 5793, 5785, -2687, 6036, -2691, 3723, -2701, -2705, 5803, 5794, 5812, 5740, 5795, 5811, 5761, 2254, -378, 5801, -3688, -3686, -3690, 5802, -3684, -3689, -3687, -3685, 5744, 5763, 5782, 5808, 5813, 5820, 5823, 5827, 5836, 5504, 5837, 5840, 5860, 5861, 5866, 5872, 4447, 6036, 5908, 5926, 5922, 4832, 5511, 5911, 5927, 5928, 5934, 5929, 5935, 4841, 5640, 6090, 5936, 5939, 6093, 5948, 5951, 5955, 5959, 5952, 5521, 5965, 6101, 5521, 5521, 6104, 5969, 6344, 5527, 5972, 5977, 6008, 4875, 5980, 5994, 5996, 6014, 6020, 6016, 6018, 5537, 5381, 6019, 5575, 6022, 5573, 6024, 6026, 6025, 4988, 6039, 6040, 6041, 6042, 1769, 6076, 6083, 6112, 6047, 5577, 5401, 6098, 5490, 6117, 2255, 5491, 6119, 6127, 6138, 6120, 6133, 6130, -2524, -2525, 5492, 2256, 6146, 6147, 1194, 6149, 6153, 6139, 6144, 6156, 6164, 6159, 4575, 3252, 945, 6160, 4570, 6189, 6186, 6200, 6207, 6192, 6211, 6275, 6201, 6217, -1887, -1887, 6215, 6036, 6220, 6262, 5305, 6274, 4602, 6276, 6265, 6270, -1887, 6278, 6283, 6295, 6299, 6290, 6300, 6301, 5591, 6303, 5593, 6306, 6307, 6309, 6304, 6305, 6315, 6330, 3874, 4116, 6316, 5433, 3165, 5863, 5435, 5434, 5627, 3964, 5629, 6343, 4543, 5590, 5914, 6049, 6209, 2166, 1337, 3431, 3250, 1342, 3250, 1338, 5473, 5583, 5915, 1888, 2056, 5679, 5455, 1888, 5750, 5687, 5824, 5324, 943, 5129, 660, 2435, 4428, 4215, 3176, 4130, 2747, -1887, 2867, 5631, 4875, 4841, 4875, 4718, 1451, 2869, 801, 4875, 2868, 4841, 5747, 5746, 5628, 5580, 4875, 4875, 5034, 4589, 4841, 5649, 5499, 4797, 4803, 5650, 4875, 5181, 6082, 3036, 5705, 6169, 4875, 4841, 6264, 4841, 6224, -1887, 5979, 3280, 5703, -1887, 5032, 5659, 5374, -1887, 6341, 5910, 5528, 5037, 945, 2046, 5237, 1117, -1887, -1887, 5754, 5416, 6244, 5630, 6137, 6070, 6141, 6059, 6060, -1887, 6061, 6062, 4728, 4765, -1887, 786, -1887, 4669, 4711, 6080, -1887, 6143, 5085, 5463, 4782, 4303, 4780, 5108, -1887, 6269, -1887, 5681, 4778, 758, 759, -1887, 6237, 5870, 6238, 3956, 6109, 6116, 1117, 6114, 5788, 5100, 5626, 5624, 4441, 5414, 5035, 945, 2157, 2065, 2625, -1887, 3942, 5946, 3940, 6078, 5792, 3337, 4143, 2782, 3844, -1887, 3157, 1567, -1887, 3400, 4645, 1889, 787, 2034, 3901, 1889, 3802, 1371, 1985, 2033, 4015, 5063, 5764, 2359, 3852, 1890, 4791, 1891, -1887, 1890, 2353, 1891, 5521, 3771, 4333, 3769, 5727, 3822, 2412, 4253, 1758, 5146, 2272, 5732, 786, 3819, 2208, -1887, 4875, 4875, 2262, -1887, 6210, 6057, 1614, 6294, 6292, 5354, 6065, 1892, -1887, 2675, 2678, 1892, 4823, 1977, 6066, 5615, 5208, 3723, 1978, 2668, 1893, 2217, 4322, 3262, 1893, 4011, 1979, -1887, 1980, 4968, 3431, 944, 2689, 1982, 786, 4967, 4321, 5494, 5958, 5800, 5305, 5195, -1887, 5485, 112, 4018, 5148, 4014, 2042, -1887, 2028, 5507, 1394, 1894, 4771, 4973, 3254, 1894, 769, 760, 2788, 5305, -1887, 2102, -1887, 1256, 1869, 5770, 2820, 944, 3398, 1895, 4644, 4836, 5716, 1895, 4040, 5213, 1695, 4822, 4819, 6260, 1462, 3131, 2527, 1467, 1240, 1241, 3132, 3895, 1243, 3170, 4875, 5745, 2035, 5516, 6263, 4649, 4875, 2613, 5797, 2162, 944, 5359, 6296, 2359, 5622, 6342, 5471, 6346, 3146, 5509, 3396, 1570, 4841, 2840, 3453, 3886, 3883, 3887, 1198, 3879, 3888, 2409, 3096, 5814, 5818, 2873, 1199, 3880, 2852, 2635, 4363, 2455, 1752, 1773, 1153, 3848, 4550, 944, 944, 5472, 2150, 5674, 4976, 3958, 3327, 5671, 5071, 1896, 1289, 4603, 778, 1896, 762, 1931, 1897, 2151, 763, 764, 1897, 4497, 5835, 3225, 5893, 1550, 1898, 4642, 5893, 6151, 1898, 5330, 4216, 4775, 2870, 5342, 5331, 1568, 5521, 5327, 1899, 1775, 5326, 0, 1899, 0, 5867, 0, 4875, 0, 0, 0, 0, 1117, 0, 945, 945, 1117, 0, 0, 0, 0, 5907, 0, 0, 0, 0, 0, 0, 5912, 3431, 0, 1900, 0, 3722, 1901, 1900, 0, 0, 1901, 1117, 0, 0, 2409, 1568, 0, 0, 0, 0, 1117, 0, 0, 5733, 1902, 0, 0, 0, 1902, 0, 0, 0, 4875, 0, 0, 0, 0, 0, 0, 0, 661, 0, 786, 0, 801, 0, 0, 0, 0, 0, 5942, 4875, 786, 0, 0, 1903, 0, 0, 0, 1903, 0, 1915, 0, 2750, 0, 0, 5941, 0, 0, 0, 0, 0, 5957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 1117, 1117, 0, 0, 1568, 0, 0, 0, 6097, 0, 2751, 1117, 0, 0, 0, 0, 5893, 0, 0, 0, 0, 0, 0, 5995, 0, 0, 0, 0, 6007, 0, 0, -1887, 0, 5893, 6013, 0, 0, 0, 0, 0, 6021, 0, 0, 0, 0, 0, 0, 2752, 0, 0, 0, 5570, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6046, 0, 786, 2024, 0, 0, 2024, 0, 0, 0, 0, 0, 0, 5770, 0, 0, 0, 4409, 4409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 3076, 3722, 5818, 0, 0, 0, 0, 943, 0, 0, 0, 5835, 0, 0, 6091, 6092, 0, 0, 0, 6182, 744, 0, 0, 943, 801, 0, 6103, 0, 0, 0, 0, 0, 0, 3722, 0, 6208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6118, 0, 0, 0, 5893, 0, 0, 0, 5521, 4602, 5521, 5521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 5938, 1568, 0, 0, 0, 0, 1691, 0, 1693, 0, 5944, 0, -1887, 0, 6145, 6223, 944, 0, 0, 0, 0, 0, 2154, 0, 0, 2167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1887, 0, -1887, 2359, 0, -1887, -1887, 0, 0, 0, 6176, 0, 0, 6177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 5893, 0, 0, 0, 943, 4602, 0, 0, 0, 5521, 5521, 0, 0, 6193, 0, 0, 0, 0, 0, 0, 5521, 0, 0, 0, 1614, 0, 1568, 0, 0, 1568, 0, 0, 0, 0, 6206, 0, 0, 0, 0, 2271, 1614, 0, 945, 6048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5893, 5893, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 6347, 0, 2753, 0, 0, 6332, 0, 5521, 0, 0, 6334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 6249, 0, 5893, 1117, 0, 0, 0, 0, 2359, 0, 2754, 2755, 0, 2756, 2757, 2758, 2759, 2760, 0, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 944, 2769, 2770, 2771, 2772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 2420, 0, 0, 0, 0, 0, 0, 1614, 1117, 0, 1117, 0, 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, 0, 943, 0, 0, 0, 0, 0, 0, 2359, 0, 0, 0, 801, 0, 0, 0, 0, 801, 2487, 0, 0, 0, 2359, 2773, 2774, 0, 1117, 1117, 2359, 0, 0, 0, 1117, 0, 0, 2359, 1117, 1117, 1117, 3432, 944, 0, 0, 0, 0, 0, 1117, 1117, 1568, 944, 944, 944, 1117, 0, 3076, 0, 1117, 1117, 1117, 0, 1117, 1117, 1117, 1568, 1568, 0, 0, 0, 0, 0, 1117, 942, 1117, 0, 0, 1117, 1117, 1117, 1117, 3722, 1117, 0, 1117, 1117, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 1117, 1117, 1117, 0, 1117, 1117, 1117, 1117, 1117, 1117, 0, 1117, 1117, 0, 1117, 1117, 0, 1117, 1117, 0, 0, 1117, 1117, 0, 1117, 1117, 0, 1117, 0, 1117, 0, 0, 0, 1117, 1117, 1117, 0, 0, 1117, 1117, 1117, 1117, 0, 1117, 1614, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 1117, 1117, 1117, 1117, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 0, 1117, 1117, 0, 0, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 0, 0, 1117, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 2024, 0, 2698, 0, 0, 0, 0, 0, 0, 0, 0, 943, 943, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 1194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 942, 0, 942, 942, 5, 0, 6, 944, 7, 942, 8, 0, 942, 0, 944, 0, 0, 0, 9, 1117, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 12, 0, 0, 1568, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, 0, 2875, 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, 22, 1117, 0, 0, 0, 0, 0, 1568, 0, 1568, 0, 0, 23, 24, 0, 0, 859, 0, 0, 0, 0, 0, 0, 25, 26, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 27, 28, 29, 0, 30, 0, 0, 0, 0, 31, 1614, 2916, 0, 860, 0, 32, 0, 0, 0, 33, 34, 35, 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, 36, 942, 37, 0, 38, 0, 0, 0, 0, 864, 0, 39, 0, 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, 865, 0, 0, 0, 0, 866, 0, 0, 0, 0, 0, 42, 0, 0, 2986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3001, 867, 0, 0, 0, 0, 43, 44, 0, 45, 0, 1117, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 1117, 0, 0, 0, 0, 0, 868, 0, 1117, 1117, 869, 0, 0, 0, 49, 0, 0, 943, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 870, 0, 0, 0, 871, 872, 0, 0, 3058, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 1775, 0, 0, 0, 0, 0, 52, 0, 0, 0, 1117, 873, 0, 0, 0, 0, 0, 53, 874, 875, 54, 1568, 1568, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2137, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 2154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 2138, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 1915, 1915, 0, 0, 1118, 0, 1117, 0, 0, 0, 1117, 1117, 0, 1117, 1117, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1117, 942, 0, 57, 0, 0, 0, 0, 0, 2139, 0, 0, 0, 0, 2140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2141, 2142, 0, 0, 0, 0, 1117, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 1568, 0, 2024, 0, 2024, 2024, 3274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 64, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 1568, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2143, 0, 0, 0, 68, 0, 0, 0, 0, 0, 2144, 0, 0, 2154, 0, 0, 0, 0, 1568, 1568, 0, 2145, 0, 0, 0, 0, 0, 2146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147, 0, 0, 0, 2148, 1118, 0, 0, 0, 1118, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 2149, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 1568, 1568, 1568, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1118, 1118, 1118, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3825, 0, 0, 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, 1568, 0, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4447, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 1117, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 2487, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1117, 1117, 0, 1117, 1117, 1117, 1117, 0, 1117, 0, 1117, 1117, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 0, 0, 0, 1117, 1117, 1117, 0, 2044, 0, 0, 0, 0, 0, 1117, 1117, 1117, 1118, 1117, 0, 1117, 944, 1117, 0, 1117, 0, 1117, 0, 0, 0, 0, 1117, 1117, 0, 1117, 1117, 1117, 0, 0, 0, 1117, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 4448, 1117, 0, 1117, 1117, 1117, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1117, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 1117, 1117, 1568, 1117, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 1568, 0, 0, 0, 4450, 0, 2024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4451, 4452, 4453, 0, 0, 942, 0, 1568, 0, 0, 0, 0, 1118, 0, 0, 0, 1118, 0, 2838, 0, 4454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 942, 942, 0, 0, 0, 0, 0, 0, 0, 2024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4455, 0, 4456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 1118, 0, 4457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4458, 0, 0, 0, 0, 0, 0, 4459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 4460, 0, 0, 0, 1118, 1118, 0, 4461, 0, 0, 1118, 0, 0, 0, 1118, 1118, 1118, 0, 0, 1117, 0, 0, 4462, 0, 1118, 1118, 0, 0, 0, 0, 1118, 1568, 0, 0, 1118, 1118, 1118, 0, 1118, 1118, 1118, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 1118, 0, 0, 1118, 1118, 1118, 1118, 0, 1118, 0, 1118, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1118, 1118, 1118, 1118, 4463, 1118, 1118, 1118, 1118, 1118, 1118, 0, 1118, 1118, 4464, 1118, 1118, 0, 1118, 1118, 0, 0, 1118, 1118, 0, 1118, 1118, 0, 1118, 0, 1118, 0, 0, 0, 1118, 1118, 1118, 0, 0, 1118, 1118, 1118, 1118, 0, 1118, 0, 0, 0, 0, 0, 0, 1118, 4465, 0, 0, 0, 0, 1118, 1118, 1118, 1118, 0, 1568, 0, 0, 4466, 0, 0, 1118, 1118, 0, 1118, 1118, 0, 0, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3075, 0, 4467, 0, 0, 0, 0, 0, 4468, 0, 3432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 944, 0, 0, 0, 0, 4469, 0, 0, 0, 0, 0, 1117, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 4447, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4470, 0, 0, 0, 0, 0, 0, 4471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, -914, 0, -914, 0, 4472, 4265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4473, 4474, 0, 0, 0, 0, 0, 0, 0, 2044, 0, 0, 0, 4475, 0, 0, 0, 1118, 0, 1118, 0, 0, 0, 0, 0, 0, 4298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4476, 0, 0, 0, 1118, 4448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 0, 1915, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4451, 4452, 4453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 0, 0, 0, 1117, 0, 0, 4454, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 1117, 0, 1117, 0, 1117, 0, 1117, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 4455, 2024, 4456, 0, 0, 1117, 1117, 0, 0, 0, 1117, 0, 1117, 0, 1117, 0, 0, 3430, 942, 1117, -914, 0, 4457, 0, 0, 0, 0, 942, 942, 942, 0, 0, 3075, 0, 0, 1118, 0, 3432, 0, 0, 4458, 0, 0, 0, 3721, 0, 0, 4459, 3721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 4460, 0, 1117, 0, 0, 0, 0, 4461, 0, 1117, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 4462, 0, 1118, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 4463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1118, 1118, 0, 0, 4465, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 4466, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1568, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4467, 0, 1118, 944, 0, 0, 4468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, 1118, 0, 0, 0, 1118, 1118, 0, 1118, 1118, 0, 4469, 0, 0, 0, 0, 0, 1118, 0, 1118, 0, 0, 0, -1072, -1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4447, 174, 175, 0, 0, 0, 0, 0, 0, 942, 4470, 0, 0, 0, 0, 1118, 942, 4471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4563, 0, 4564, 4565, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4472, 4566, 0, 4567, 0, 0, 0, 0, 0, 4568, 0, 0, 0, 0, 0, 4473, 4474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 4475, 0, 2044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4569, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4476, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 4448, 0, 0, 1118, 0, 0, 0, 940, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 4909, 0, 0, 0, 0, 940, 0, 0, 0, 0, 4570, 1244, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1117, 1117, 0, 0, 4571, 0, 4572, 0, 0, 0, 0, 0, 0, 0, 0, 4450, 0, 4573, 0, 0, 0, 0, 0, 1117, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4574, 0, 0, 0, 1119, 0, 0, 1117, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 1117, 944, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 4451, 4452, 4453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 1119, 0, 0, 4454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3721, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 944, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 0, 0, 4575, 0, 0, 0, 0, 0, 1118, 0, 4455, 0, 4456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4457, 0, 0, 0, 0, 0, 0, 4576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4458, 0, 0, 0, 0, 0, 0, 4459, 0, 0, 0, 0, 940, 0, 940, 0, 940, 940, 0, 0, 0, 0, 4460, 940, 0, 0, 940, 0, 0, 4461, 0, 0, 0, 4577, 4578, 0, 0, 0, 0, 0, 4579, 0, 0, 0, 4462, 0, 0, 0, 0, 0, 0, 0, 4580, 0, 0, 0, 0, 2024, 0, 4447, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 1118, 0, 0, 1118, 0, 4582, 0, 0, 0, 4463, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 4464, -914, 1118, -914, 1118, 1118, 0, 1118, 1118, 1118, 1118, 0, 1118, 0, 1118, 1118, 3825, 1118, 0, 0, 0, 0, 0, 0, 0, 1118, 1118, 0, 0, 2044, 1118, 1118, 1118, 0, 0, 1117, 1117, 0, 4465, 0, 1118, 1118, 1118, 0, 1118, 0, 1118, 0, 1118, 0, 1118, 4466, 1118, 4583, 0, 1119, 0, 1118, 1118, 1119, 1118, 1118, 1118, 0, 0, 0, 1118, 0, 0, 1118, 0, 0, 0, 0, 0, 4448, 944, 944, 1118, 0, 0, 1118, 1119, 1118, 1118, 1118, 0, 0, 1118, 0, 4467, 1119, 0, 0, 0, 0, 4468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 1118, 0, 0, 1118, 0, 0, 0, 0, 4469, 4584, 0, 0, 0, 1118, 1118, 1118, 1118, 0, 1118, 0, 4585, 4586, 4587, 1118, 940, 0, 0, 0, 0, 0, 0, 0, 0, 4450, 0, 0, 0, 0, 0, 0, 0, 0, 4470, 0, 1119, 1119, 1119, 1119, 0, 4471, 0, 0, 0, 1117, 0, 0, 1568, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 4472, 0, 0, 0, 0, 0, 0, 4451, 4452, 4453, 0, 0, 0, 0, 0, 4473, 4474, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 4454, 4475, 0, 0, 0, 4588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4476, 0, 0, 1907, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 4455, 0, 4456, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1072, 0, 0, -914, 0, 4457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4458, 0, 0, 0, 0, 0, 0, 4459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4460, 0, 0, 1118, 0, 0, 0, 4461, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4462, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4465, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 4466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4467, 0, 0, 0, 0, 0, 4468, 942, 0, 1119, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4470, 1117, 0, 0, 0, 0, 0, 4471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 0, 1117, 1119, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4473, 4474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4475, 0, 0, 0, 1119, 1119, 0, 0, 0, 0, 1119, 0, 0, 0, 1119, 1119, 1119, 0, 3721, 0, 0, 0, 0, 0, 1119, 1119, 0, 0, 0, 0, 1119, 0, 0, 0, 1119, 1119, 1119, 4476, 1119, 1119, 1119, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 1119, 0, 0, 1119, 1119, 1119, 1119, 0, 1119, 0, 1119, 1119, 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, 0, 0, 1119, 1119, 1119, 1119, 1119, 0, 1119, 1119, 1119, 1119, 1119, 1119, 0, 1119, 1119, 0, 1119, 1119, 0, 1119, 1119, 0, 0, 1119, 1119, 0, 1119, 1119, 0, 1119, 0, 1119, 0, 0, 0, 1119, 1119, 1119, 0, 0, 1119, 1119, 1119, 1119, 0, 1119, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 1119, 1119, 1119, 1119, 0, 0, 0, 0, 0, 0, 0, 1119, 1119, 0, 1119, 1119, 0, 0, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1118, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 1118, 0, 1118, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1118, 0, 0, 1117, 1118, 0, 1118, 0, 1118, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 4445, 0, 4446, 0, 0, 0, 1117, 4447, 174, 175, 0, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1118, 0, 0, 0, 1119, 0, 1119, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -914, 0, -914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 2044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 4449, 0, 0, 0, 3430, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 1117, 0, 942, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 1119, 1118, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 4450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4149, 4150, 2832, 0, 0, 4151, 4152, 0, 0, 0, 0, 0, 0, 0, 0, 4153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 940, 4451, 4452, 4453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4154, 0, 0, 0, 0, 0, 0, 0, 4454, 0, 0, 0, 0, 4155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4156, 0, 6058, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 1117, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4158, 0, 0, 4455, 0, 4456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4159, 4160, 4161, 0, -914, 0, 4457, 1119, 0, 0, 4162, 4163, 4164, 0, 0, 1119, 1119, 0, 0, 0, 0, 0, 0, 0, 4458, 0, 0, 0, 4165, 0, 0, 4459, 0, 0, 3430, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 4460, 0, 0, 0, 0, 1568, 0, 4461, 0, 0, 0, 0, 0, 0, 4166, 0, 0, 0, 0, 0, 0, 0, 4462, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 1118, 0, 1118, 0, 4168, 0, 0, 0, 1568, 1083, 0, 0, 0, 0, 0, 1118, 1118, 1118, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 4169, 4170, 4171, 1119, 1119, 1119, 0, 0, 0, 0, 0, 0, 1118, 1118, 0, 4463, 0, 0, 0, 0, 0, 0, 4172, 4173, 0, 4464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 1119, 4465, 0, 0, 0, 0, 0, 3068, 4174, 0, 4175, 4176, 0, 0, 4466, 1117, 0, 0, 1119, 0, 0, 0, 1119, 1119, 0, 1119, 1119, 4177, 0, 0, 0, 0, 0, 0, 1119, 0, 1119, 0, 0, 0, 0, 0, 3430, 1118, 0, 0, 3721, 1118, 0, 0, 0, 0, 0, 4467, 0, 0, 0, 0, 0, 4468, 0, 0, 0, 4178, 4179, 0, 0, 1119, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 4181, 0, 0, 0, 0, 0, 0, 0, 4470, 0, 0, 0, 0, 0, 0, 4471, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1907, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 4182, 0, 0, 0, 0, 0, 0, 0, 4472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4473, 4474, 0, 0, 0, 0, 5569, 0, 0, 1119, 0, 0, 0, 4475, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 4183, 4184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4476, 0, 0, 0, 0, 4185, 4186, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3721, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 1605, 0, 0, 0, 1118, 1118, 0, 0, 0, 1619, 942, 0, 0, 0, 0, 4187, 0, 0, 0, 0, 3721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 1692, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 4189, 0, 0, 4190, 0, 0, 4191, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 4193, 0, 0, 0, 0, 0, 3426, 940, 942, 0, 0, 0, 0, 0, 0, 0, 940, 940, 940, 0, 4194, 3068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3716, 0, 0, 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 1119, 0, 0, 0, 1119, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 1885, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 1119, 1119, 0, 1119, 1119, 1119, 1119, 942, 1119, 0, 1119, 1119, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 1119, 1119, 0, 0, 0, 1119, 1119, 1119, 0, 0, 0, 0, 0, 0, 0, 1119, 1119, 1119, 0, 1119, 0, 1119, 0, 1119, 0, 1119, 0, 1119, 0, 0, 0, 0, 1119, 1119, 0, 1119, 1119, 1119, 0, 0, 0, 1119, 0, 942, 1119, 0, 1118, 0, 1118, 0, 0, 0, 0, 1119, 0, 0, 1119, 0, 1119, 1119, 1119, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 1119, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 1119, 1119, 1119, 0, 1119, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 940, 0, 0, 2078, 0, 0, 0, 2083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 2160, 0, 2160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 2207, 0, 0, 0, 2212, 0, 2214, 0, 0, 0, 0, 0, 0, 0, 2229, 2230, 0, 0, 0, 0, 2259, 0, 942, 942, 2264, 2265, 2266, 0, 2268, 2269, 2270, 0, 0, 0, 0, 0, 0, 0, 2278, 1119, 2281, 0, 0, 2282, 2283, 2284, 2285, 0, 0, 0, 2289, 2290, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 2302, 2303, 2310, 2314, 2315, 0, 2318, 2319, 2320, 2323, 2324, 0, 0, 2327, 2328, 0, 2334, 2335, 0, 2338, 2339, 0, 0, 0, 2343, 0, 2345, 2346, 0, 2348, 0, 2349, 0, 0, 0, 2352, 2310, 2354, 0, 0, 2360, 0, 2362, 2363, 0, 2364, 0, 0, 0, 0, 0, 0, 2368, 0, 0, 0, 0, 0, 2370, 2371, 2372, 0, 0, 0, 0, 0, 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 2607, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2685, 0, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 4447, 174, 175, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 7, 0, 8, 5411, 0, 4564, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 1119, 1119, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 4566, 0, 0, 0, 10, 0, 11, 12, 5412, 0, 0, 0, 0, 13, 0, 0, 1119, 0, 1119, 0, 1119, 0, 1119, 0, 0, 0, 0, 0, 0, 2044, 14, 0, 0, 0, 15, 2821, 0, 1119, 0, 0, 5413, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 1119, 1119, 0, 0, 0, 1119, 0, 1119, 18, 1119, 0, 0, 0, 0, 1119, 0, 0, 0, 19, 4448, 20, 0, 2876, 0, 21, 0, 0, 0, 0, 1118, 2883, 2884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4570, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 23, 24, 0, 1119, 0, 0, 0, 0, 0, 4489, 4489, 25, 26, 0, 0, 0, 0, 4572, 0, 0, 0, 2903, 0, 27, 28, 29, 4450, 30, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 32, 0, 1119, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 4574, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2942, 2944, 2946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 38, 4451, 4452, 4453, 0, 0, 0, 39, 0, 0, 0, 0, 1118, 0, 0, 40, 41, 0, 0, 0, 0, 4454, 0, 0, 1118, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 940, 0, 43, 44, 0, 45, 0, 1119, 0, 0, 3008, 0, 46, 0, 0, 0, 0, 4575, 0, 0, 47, 1119, 0, 0, 1119, 4455, 3016, 4456, 3017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 4457, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 1118, 3042, 0, 0, 0, 0, 49, 4458, 0, 0, 0, 0, 0, 0, 4459, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3056, 0, 4460, 0, 0, 0, 0, 0, 51, 4461, 0, 0, 0, 4577, 0, 0, 0, 0, 0, 0, 4579, 0, 0, 52, 4462, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 53, 0, 3112, 54, 0, 0, 55, 0, 0, 0, 0, 0, 0, 940, 0, 1119, 0, 0, 3118, 4581, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4463, 0, 0, 0, 0, 0, 0, 0, 3138, 0, 4464, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4465, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 4466, 0, 4583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 1119, 1119, 0, 1119, 0, 0, 4467, 0, 0, 0, 0, 0, 4468, 0, 0, 0, 1119, 1119, 1119, 3231, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 4469, 60, 0, 0, 1119, 1119, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 4470, 3256, 0, 0, 0, 0, 1119, 4471, 0, 0, 63, 0, 0, 64, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3340, 4472, 0, 1118, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4473, 4474, 0, 0, 0, 0, 0, 1119, 0, 0, 4489, 1119, 0, 4475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 4476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3454, 0, 0, 0, 3456, 0, 4489, 3457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3735, 0, 0, 0, 0, 3739, 3740, 3741, 3742, 0, 3743, 0, 3744, 3745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3750, 3751, 0, 0, 0, 3752, 3753, 3754, 0, 0, 0, 0, 0, 0, 0, 3756, 3757, 3758, 0, 3759, 0, 3761, 0, 3763, 0, 3765, 0, 3767, 0, 0, 0, 0, 2320, 3770, 0, 2320, 0, 3773, 0, 0, 0, 3774, 0, 0, 3775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3782, 0, 3783, 3784, 3785, 1119, 1119, 3786, 0, 0, 0, 3426, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 3808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3818, 3821, 0, 1201, 3826, 1202, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 1203, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 3, 4, 0, 0, 3869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 7, 0, 8, 0, 1119, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, 10, 0, 11, 12, 2584, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2584, 1119, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 1208, 0, 0, 0, 0, 4489, 0, 18, 4489, 0, 0, 0, 1209, 0, 0, 0, 0, 19, 0, 20, 0, 3426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 0, 0, 4007, 1210, 0, 0, 0, 0, 0, 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 30, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 32, 0, 0, 0, 33, 34, 35, 0, 0, 0, 1211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 1212, 0, 0, 1119, 0, 1119, 0, 0, 0, 1213, 36, 0, 37, 0, 38, 0, 0, 0, 0, 0, 0, 39, 1214, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 45, 0, 3426, 0, 0, 0, 3716, 46, 0, 0, 0, 0, 0, 0, 0, 47, -2279, 1217, 0, 0, 1218, 0, 1219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 1220, 1221, 0, 0, 0, 0, 1222, 1223, 0, 0, 49, 0, 0, 0, 4219, 0, 0, 4220, 0, 0, 50, 0, 0, 1224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 1226, 0, 54, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 1119, 5565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 1229, 0, 0, 1230, 1231, 0, 0, 0, 0, 0, 3716, 0, 0, 0, 0, 0, 940, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1233, 57, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3304, 58, 1235, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3304, 0, 0, 0, 0, 63, 0, 1236, 64, 0, 0, 4248, 4249, 0, 0, 0, 4254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 4274, 0, 4275, 65, 4276, 0, 4277, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 4292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 4313, 4314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 4361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 940, 0, 0, 0, 0, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4519, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 4533, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 3716, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 4489, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 940, 0, 0, 0, 0, 0, 4716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4741, 4742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4749, 4750, 4751, 0, 1119, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 4489, 0, 4773, 4774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 4796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2584, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 4489, 6188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 4489, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4489, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 1119, 0, 0, 0, 0, 5039, 5040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5347, 0, 5349, 0, 0, 0, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5479, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 5680, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 3256, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 2584, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 5729, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 0, 0, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 956, 0, 0, 0, 0, 957, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 959, 960, 0, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 6077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 1692, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1019, 0, 0, 0, 0, 0, 0, 0, 1020, 1021, 0, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 39, 0, 0, 1031, 1032, 0, 0, 0, 2584, 41, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 2584, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 2307, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 2308, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 2309, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 3865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3866, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 3867, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 3868, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 1578, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 2582, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 2941, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 2943, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 2945, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 4821, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 2582, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1604, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 2158, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 2159, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 2159, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 2379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 2380, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 3766, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 3781, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 1009, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 6172, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1571, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1572, 1573, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1572, 1573, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1687, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1572, 1573, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 2400, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 959, 960, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 2402, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 1075, 956, 0, 0, 0, 1076, 957, 958, 0, 0, 0, 1077, 0, 0, 0, 1078, 1079, 6028, 6029, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 975, 976, 0, 0, 0, 0, 0, 0, 0, 977, 978, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 0, 0, 982, 983, 984, 985, 0, 986, 176, 0, 987, 988, 0, 0, 0, 0, 0, 0, 0, 989, 0, 0, 990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 991, 992, 993, 0, 994, 0, 0, 0, 0, 0, 0, 0, 995, 996, 997, 178, 0, 0, 0, 0, 0, 998, 0, 0, 179, 0, 0, 0, 0, 0, 999, 0, 0, 1571, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 1005, 0, 1006, 0, 0, 0, 1007, 180, 0, 0, 0, 1008, 0, 0, 181, 0, 0, 1010, 1011, 1012, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 1014, 1015, 1016, 0, 1017, 0, 0, 0, 0, 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, 1030, 0, 0, 0, 0, 0, 1031, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 1033, 1034, 1035, 1036, 195, 196, 197, 1037, 199, 200, 201, 202, 203, 204, 1038, 206, 207, 208, 209, 210, 211, 212, 1039, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1040, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 1041, 243, 1042, 1043, 1044, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1045, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1046, 1047, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 1048, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 1049, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1050, 1051, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 1052, 403, 404, 405, 406, 407, 1053, 409, 410, 411, 412, 413, 414, 415, 416, 1054, 1055, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 437, 438, 439, 1056, 441, 442, 443, 444, 445, 446, 447, 1057, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1058, 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, 1059, 505, 506, 507, 508, 509, 510, 1060, 512, 513, 514, 515, 516, 517, 1061, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 1062, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 1063, 1064, 1065, 1066, 571, 572, 573, 574, 1067, 1068, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 1069, 590, 591, 1070, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 1071, 605, 1072, 607, 608, 609, 0, 610, 611, 612, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 6030, 6031, 956, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 6032, 0, 0, 0, 0, 1079, 1564, 1565, 1080, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 2436, 273, 274, 275, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 2437, 568, 569, 2438, 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, 6325, 610, 611, 612, 613, 2356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 6325, 610, 611, 612, 613, 2356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 6326, 0, 0, 0, 0, 0, 0, 2357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 1609, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 1609, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1610, 0, 0, 0, 0, 0, 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 2356, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 3161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 4860, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 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, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 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, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1344, 0, 0, 0, 0, 177, 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, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 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, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 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, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 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, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 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, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 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, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 2811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5036, 0, 0, 0, 0, 0, 0, 0, 4861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 5369, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 779, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 780, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 781, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1421, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 533, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 1169, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 2411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 1173, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1174, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 1175, 322, 323, 324, 325, 1176, 327, 328, 329, 330, 331, 0, 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, 1177, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1178, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 1179, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 1180, 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, 1181, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 1182, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 1183, 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, 1184, 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, 1185, 606, 607, 608, 609, 1169, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 1173, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 1174, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 1175, 322, 323, 324, 325, 1176, 327, 328, 329, 330, 331, 0, 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, 1177, 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, 0, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1178, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 1179, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 1180, 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, 1181, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 1182, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 1185, 606, 607, 608, 609, 1759, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 2002, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 2197, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 1909, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 1909, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 2016, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 2017, 0, 2018, 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 2016, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 2017, 0, 2018, 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 2691, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 2016, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 2017, 0, 2018, 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 2016, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 2017, 0, 2018, 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 2417, 2418, 2419, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 4356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 2793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 4135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 5189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 5510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 2848, 0, 0, 5857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 5464, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 671, 0, 5466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 2849, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 1411, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 1411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 4149, 4150, 3471, 3472, 3473, 4151, 4152, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 4153, 3483, 3484, 0, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 0, 3496, 176, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 4154, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 4155, 3518, 3519, 3520, 3521, 3522, 3523, 177, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 4156, 3533, 0, 3534, 3535, 3536, 3537, 3538, 0, 0, 178, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 5540, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 4157, 3557, 4158, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 4159, 4160, 4161, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 4162, 4163, 4164, 3584, 180, 3585, 3586, 3587, 3588, 3589, 3590, 181, 3591, 3592, 3593, 3594, 3595, 3596, 4165, 3597, 3598, 3599, 3600, 182, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 183, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 4166, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 4167, 3649, 3650, 4168, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 184, 3668, 3669, 3670, 3671, 4169, 4170, 4171, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 0, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 4172, 4173, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 3702, 3703, 3704, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 5541, 218, 5542, 5543, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 5544, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 5545, 5546, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 5547, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 5548, 315, 316, 317, 0, 318, 319, 320, 3418, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5549, 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, 0, 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, 5550, 5551, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 5552, 5553, 432, 3708, 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, 5554, 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, 5555, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 5556, 565, 566, 5557, 568, 569, 5558, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 5559, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 3419, 606, 607, 608, 609, 0, 610, 611, 612, 5560, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 4149, 4150, 3471, 3472, 3473, 4151, 4152, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 4153, 3483, 3484, 0, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 0, 3496, 176, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 4154, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 4155, 3518, 3519, 3520, 3521, 3522, 3523, 177, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 4156, 3533, 0, 3534, 3535, 3536, 3537, 3538, 0, 0, 178, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 4157, 3557, 4158, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 4159, 4160, 4161, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 4162, 4163, 4164, 3584, 180, 3585, 3586, 3587, 3588, 3589, 3590, 181, 3591, 3592, 3593, 3594, 3595, 3596, 4165, 3597, 3598, 3599, 3600, 182, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 183, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 4166, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 4167, 3649, 3650, 4168, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 184, 3668, 3669, 3670, 3671, 4169, 4170, 4171, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 0, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 4172, 4173, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 3702, 3703, 3704, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 4174, 218, 4175, 4176, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 4177, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 4178, 4179, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 4180, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 4181, 315, 316, 317, 0, 318, 319, 320, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 4182, 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, 0, 389, 390, 391, 392, 393, 394, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 4183, 4184, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 0, 4185, 4186, 432, 3708, 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, 0, 4187, 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, 4188, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 516, 517, 518, 519, 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 4189, 565, 566, 4190, 568, 569, 4191, 571, 572, 573, 574, 575, 576, 4192, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 0, 4193, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 606, 607, 608, 609, 0, 610, 611, 612, 4194, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 4149, 4150, 3471, 3472, 3473, 4151, 4152, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 4153, 3483, 3484, 0, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 0, 3496, 176, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 4154, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 4155, 3518, 3519, 3520, 3521, 3522, 3523, 177, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 4156, 3533, 0, 3534, 3535, 3536, 3537, 3538, 0, 0, 178, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 4157, 3557, 4158, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 4159, 4160, 4161, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 4162, 4163, 4164, 3584, 180, 3585, 3586, 3587, 3588, 3589, 3590, 181, 3591, 3592, 3593, 3594, 3595, 3596, 4165, 3597, 3598, 3599, 3600, 182, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 183, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 4166, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 4167, 3649, 3650, 4168, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 184, 3668, 3669, 3670, 3671, 4169, 4170, 4171, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 0, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 4172, 4173, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 3702, 3703, 3704, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 4174, 218, 4175, 4176, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 4177, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 4178, 4179, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 4180, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 4181, 315, 316, 317, 0, 318, 319, 320, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 4182, 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, 0, 389, 390, 391, 392, 393, 394, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 4183, 4184, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 0, 4185, 4186, 432, 3708, 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, 0, 4187, 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, 5584, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 516, 517, 518, 519, 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 4189, 565, 566, 4190, 568, 569, 4191, 571, 572, 573, 574, 575, 576, 5585, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 0, 4193, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 606, 607, 608, 609, 0, 610, 611, 612, 4194, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 4149, 4150, 3471, 3472, 3473, 4151, 4152, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 4153, 3483, 3484, 0, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 0, 3496, 176, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 4154, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 4155, 3518, 3519, 3520, 3521, 3522, 3523, 177, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 4156, 3533, 0, 3534, 3535, 3536, 3537, 3538, 0, 0, 178, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 4157, 3557, 4158, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 4159, 4160, 4161, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 4162, 4163, 4164, 3584, 180, 3585, 3586, 3587, 3588, 3589, 3590, 181, 3591, 3592, 3593, 3594, 3595, 3596, 4165, 3597, 3598, 3599, 3600, 182, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 183, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 4166, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 4167, 3649, 3650, 4168, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 184, 3668, 3669, 3670, 3671, 4169, 4170, 4171, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 0, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 4172, 4173, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 3702, 3703, 3704, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 4174, 218, 4175, 4176, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 4177, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 4178, 4179, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 4180, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 4181, 315, 316, 317, 0, 318, 319, 320, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 4182, 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, 0, 389, 390, 391, 392, 393, 394, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 4183, 4184, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 0, 4185, 4186, 432, 3708, 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, 0, 4187, 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, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 516, 517, 518, 519, 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 4189, 565, 566, 4190, 568, 569, 4191, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 0, 4193, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 606, 607, 608, 609, 0, 610, 611, 612, 4194, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 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, 176, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 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, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 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, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 873, 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, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 876, 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, 0, 247, 248, 249, 250, 251, 252, 253, 254, 877, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 878, 298, 299, 300, 301, 879, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 880, 881, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 882, 463, 464, 465, 883, 467, 468, 469, 470, 471, 884, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 885, 484, 485, 486, 487, 488, 886, 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, 887, 521, 522, 523, 888, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 889, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1147, 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, 176, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 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, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 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, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 873, 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, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 1148, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 876, 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, 0, 247, 248, 249, 250, 251, 252, 253, 254, 877, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 878, 298, 299, 300, 301, 879, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 880, 881, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 882, 463, 464, 465, 1149, 467, 468, 469, 470, 471, 884, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 885, 484, 485, 486, 487, 488, 886, 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, 887, 521, 522, 523, 888, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 889, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 2219, 2220, 5288, 0, 5289, 0, 5290, 704, 5291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1421, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 1305, 0, 0, 1306, 1307, 0, 0, 0, 1308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1421, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 2417, 2418, 2419, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3413, 3414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 3415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 3416, 3417, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 3418, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 3419, 606, 607, 608, 609, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 5298, 0, 0, 5299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 5300, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536, 0, 0, 0, 0, 0, 0, 178, 1537, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 1538, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1459, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 2486, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 4405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 5815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 711, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 247, 789, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 1564, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 1929, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 3063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 3064, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 3065, 322, 323, 324, 325, 0, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 3066, 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, 0, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 3067, 606, 607, 608, 609, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 3181, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 3182, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 5767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 2829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 2830, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 2831, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 0, 606, 607, 608, 609, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 3063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 3064, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 3065, 322, 323, 324, 325, 0, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 3066, 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, 0, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 3067, 606, 607, 608, 609, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 3415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 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, 0, 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, 0, 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, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, 318, 319, 320, 3418, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 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, 0, 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, 0, 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, 0, 0, 534, 535, 0, 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, 3419, 606, 607, 608, 609, 0, 610, 611, 612, 613, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -3651, -3651, -3651, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, -3651, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -3652, 0, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3652, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, -3652, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 1548, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 3385, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 3439, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 3907, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 3913, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 4217, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 5601, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 14, 0, 0, 911, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 919, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 920, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 922, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 1751, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 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, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 16, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 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, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 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, 915, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 918, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 0, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 0, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1534, 0, 0, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 0, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 0, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 0, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1545, 0, 0, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 0, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 0, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 0, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 174, 175, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 0, 607, 608, 0, 0, 610, 0, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 186, 187, 917, 189, 0, 191, 192, 193, 194, 0, 0, 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 206, 207, 208, 209, 210, 211, 212, 213, 0, 0, 0, 0, 217, 218, 219, 220, 221, 0, 0, 224, 225, 226, 227, 228, 0, 0, 0, 232, 233, 234, 235, 236, 0, 238, 239, 240, 241, 0, 0, 0, 0, 0, 0, 247, 0, 249, 0, 251, 252, 0, 254, 255, 256, 257, 258, 259, 0, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 275, 0, 276, 277, 278, 279, 280, 281, 282, 0, 284, 285, 286, 287, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 0, 0, 0, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 0, 0, 0, 0, 0, 319, 320, 921, 322, 323, 324, 0, 326, 327, 0, 329, 330, 0, 0, 332, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 348, 349, 350, 351, 352, 353, 354, 0, 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, 0, 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, 0, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 434, 435, 436, 0, 0, 0, 440, 0, 442, 443, 0, 445, 446, 447, 448, 0, 450, 451, 452, 453, 0, 0, 0, 0, 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, 0, 485, 0, 487, 488, 489, 0, 491, 492, 0, 494, 495, 496, 497, 498, 499, 0, 501, 502, 503, 504, 505, 506, 507, 0, 509, 510, 511, 0, 513, 514, 515, 516, 0, 518, 519, 0, 0, 522, 523, 0, 0, 526, 527, 528, 0, 530, 0, 532, 533, 0, 0, 534, 535, 0, 536, 537, 538, 539, 0, 541, 542, 0, 544, 0, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 0, 567, 568, 569, 570, 571, 572, 573, 574, 575, 0, 577, 578, 0, 580, 581, 582, 583, 0, 0, 586, 587, 0, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 174, 175, 607, 608, 0, 0, 610, 0, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 0, 3470, 3471, 3472, 3473, 0, 0, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 0, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 0, 3496, 176, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 177, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 0, 3534, 3535, 3536, 3537, 3538, 0, 0, 178, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 0, 0, 0, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 0, 0, 0, 3584, 180, 3585, 3586, 3587, 3588, 3589, 3590, 181, 3591, 3592, 3593, 3594, 3595, 3596, 0, 3597, 3598, 3599, 3600, 182, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 183, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 0, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 0, 3649, 3650, 0, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 184, 3668, 3669, 3670, 3671, 0, 0, 0, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 0, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, 3702, 3703, 3704, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 0, 216, 0, 218, 0, 0, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 0, 0, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 3705, 3706, 273, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 0, 0, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 0, 315, 316, 317, 0, 318, 319, 320, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 0, 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, 0, 389, 390, 391, 392, 393, 394, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 0, 3707, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 0, 0, 0, 432, 3708, 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, 0, 0, 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, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 516, 517, 518, 519, 520, 3709, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, 534, 535, 0, 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, 0, 565, 566, 0, 568, 569, 3710, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 0, 3711, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 0, 606, 607, 608, 609, 0, 610, 611, 612 }; static const yytype_int16 yycheck[] = { 5, 165, 0, 68, 0, 923, 44, 0, 684, 685, 173, 1732, 1626, 663, 2099, 795, 1886, 163, 684, 765, 1942, 26, 1745, 1916, 789, 30, 1681, 162, 1236, 679, 35, 684, 1596, 38, 0, 22, 45, 1406, 1543, 795, 0, 1590, 2562, 1371, 3056, 3057, 51, 2109, 3208, 1941, 684, 160, 57, 3364, 3282, 2705, 61, 684, 973, 1178, 2573, 1180, 1181, 1605, 1374, 52, 2027, 1377, 710, 1188, 68, 58, 1377, 2566, 2056, 2858, 3384, 3277, 3125, 684, 31, 3994, 1142, 684, 4072, 909, 1635, 911, 4072, 913, 914, 3252, 2869, 2870, 3080, 3978, 920, 1414, 652, 2886, 3266, 2888, 2571, 1665, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 652, 3504, 124, 4492, 1683, 3283, 4508, 1860, 1004, 1365, 1346, 682, 3141, 1512, 1802, 1803, 727, 2636, 1463, 730, 135, 3974, 2484, 1414, 2889, 135, 1302, 2745, 2600, 2075, 682, 2666, 2885, 173, 156, 157, 2889, 2185, 160, 629, 162, 1745, 1074, 1075, 1076, 833, 3336, 2046, 124, 1910, 173, 2675, 135, 4606, 4235, 1087, 28, 173, 173, 173, 173, 4242, 4713, 173, 3963, 173, 4911, 4072, 1809, 3710, 1910, 5221, 5222, 5094, 3944, 47, 4563, 4563, 4520, 4563, 3035, 6, 7, 1703, 11, 12, 2977, 15, 1829, 15, 173, 1711, 1712, 12, 1714, 1715, 5186, 3705, 4564, 3224, 4566, 691, 3710, 4569, 42, 6, 7, 6, 7, 1144, 6, 7, 1853, 1854, 6, 7, 26, 4583, 31, 1907, 6, 7, 16, 17, 2665, 2666, 4703, 4160, 4161, 6, 7, 4164, 3328, 31, 3517, 42, 65, 28, 4171, 24, 25, 26, 4913, 28, 4177, 30, 3504, 32, 53, 2784, 33, 26, 63, 31, 53, 31, 776, 2196, 41, 4615, 47, 14, 1991, 33, 777, 89, 1442, 50, 5766, 26, 750, 41, 752, 4400, 127, 755, 756, 24, 25, 26, 50, 28, 47, 30, 33, 32, 42, 3351, 42, 60, 43, 44, 41, 26, 1215, 47, 47, 244, 182, 26, 172, 50, 242, 99, 127, 128, 1910, 24, 25, 26, 203, 28, 5810, 30, 26, 32, 1237, 26, 143, 42, 299, 178, 123, 33, 42, 158, 42, 67, 14, 299, 3304, 41, 822, 26, 3125, 26, 4225, 123, 254, 1238, 50, 2827, 124, 2784, 168, 26, 4235, 42, 5562, 1871, 14, 217, 173, 4242, 107, 26, 203, 43, 44, 251, 391, 2871, 40, 122, 33, 122, 33, 168, 42, 42, 314, 281, 41, 127, 41, 232, 42, 268, 314, 43, 44, 50, 168, 50, 299, 3388, 53, 33, 31, 305, 99, 65, 33, 2172, 387, 41, 4481, 33, 1475, 42, 41, 232, 127, 33, 50, 41, 99, 33, 99, 50, 42, 41, 116, 31, 50, 41, 14, 314, 99, 127, 50, 107, 206, 14, 50, 208, 281, 254, 99, 1506, 318, 258, 5242, 3691, 391, 254, 926, 119, 208, 192, 3443, 51, 201, 107, 122, 43, 44, 33, 4932, 310, 4920, 99, 2554, 3711, 333, 41, 1513, 4927, 80, 208, 663, 770, 358, 5385, 50, 427, 775, 89, 777, 203, 152, 634, 5522, 294, 51, 638, 679, 640, 305, 642, 643, 684, 645, 646, 647, 314, 305, 314, 53, 1871, 232, 5904, 128, 572, 104, 314, 5406, 2794, 208, 4873, 652, 173, 57, 328, 244, 33, 192, 299, 2447, 107, 143, 312, 54, 41, 145, 678, 107, 167, 196, 71, 203, 73, 50, 201, 644, 337, 312, 104, 192, 299, 682, 290, 315, 290, 641, 5720, 342, 454, 71, 208, 267, 208, 57, 99, 209, 315, 53, 47, 141, 598, 203, 703, 203, 151, 31, 5739, 71, 598, 73, 1945, 3351, 1960, 208, 136, 154, 717, 315, 208, 203, 732, 733, 761, 208, 71, 6222, 1263, 472, 5128, 208, 4935, 229, 6248, 208, 1346, 28, 158, 30, 3, 5896, 4670, 386, 33, 145, 31, 192, 57, 3850, 3851, 42, 41, 144, 192, 251, 107, 630, 315, 96, 160, 50, 33, 292, 73, 290, 178, 6281, 31, 128, 41, 314, 6267, 810, 1232, 208, 1234, 1760, 4706, 50, 676, 5936, 651, 652, 437, 225, 206, 2543, 676, 226, 5114, 145, 1775, 1572, 1573, 154, 4573, 561, 201, 315, 33, 315, 208, 31, 463, 196, 160, 676, 41, 364, 1430, 323, 811, 682, 492, 312, 40, 50, 155, 338, 232, 2555, 315, 749, 791, 551, 2195, 315, 697, 5861, 1754, 55, 315, 208, 703, 314, 4764, 791, 315, 4591, 2014, 192, 315, 853, 854, 2014, 719, 716, 717, 281, 849, 1594, 1756, 3235, 727, 307, 5887, 730, 310, 909, 786, 911, 677, 913, 914, 2046, 4495, 1610, 2693, 5930, 920, 3242, 845, 923, 847, 3246, 1800, 5634, 4233, 688, 749, 432, 315, 6143, 19, 20, 3095, 5656, 728, 4669, 4065, 386, 1512, 448, 281, 450, 765, 234, 287, 99, 1983, 143, 182, 492, 4154, 783, 4156, 633, 2046, 652, 649, 1994, 631, 782, 776, 4165, 629, 4697, 1453, 208, 299, 4701, 3833, 2680, 36, 37, 795, 151, 4708, 577, 408, 650, 88, 287, 4670, 4185, 178, 208, 3975, 2785, 315, 1476, 811, 167, 577, 664, 4196, 3235, 2734, 706, 3826, 820, 14, 153, 1733, 690, 658, 2363, 2364, 639, 786, 341, 307, 725, 833, 791, 2195, 366, 687, 786, 4706, 840, 196, 842, 791, 208, 845, 4909, 847, 341, 849, 43, 44, 852, 2610, 540, 366, 791, 803, 746, 504, 3867, 786, 3869, 3870, 786, 6341, 359, 1325, 786, 5331, 1328, 1745, 786, 366, 1332, 1333, 1334, 746, 144, 1337, 1338, 477, 5234, 238, 5238, 918, 2803, 686, 2775, 783, 2388, 2389, 314, 2391, 2392, 315, 1562, 4764, 391, 384, 378, 690, 848, 1401, 850, 3962, 3963, 1806, 908, 1808, 910, 786, 1811, 315, 107, 786, 4152, 1408, 4154, 919, 4156, 783, 922, 758, 1823, 2544, 669, 1826, 614, 4165, 196, 1830, 925, 5582, 925, 935, 3400, 925, 745, 2696, 669, 2095, 786, 1473, 783, 4181, 1583, 4208, 50, 4185, 766, 315, 5740, 702, 5603, 786, 716, 1856, 1857, 1858, 4196, 786, 764, 1144, 925, 33, 2673, 2674, 5073, 3972, 581, 5939, 1713, 41, 1851, 791, 719, 783, 783, 783, 1755, 766, 50, 766, 772, 786, 783, 790, 6016, 766, 6018, 6019, 783, 33, 4068, 528, 784, 734, 786, 192, 5455, 41, 771, 772, 1755, 765, 791, 783, 3841, 5343, 50, 790, 3964, 790, 786, 4072, 790, 1077, 783, 772, 790, 784, 1659, 784, 786, 786, 790, 783, 5348, 783, 5350, 784, 766, 786, 766, 790, 1910, 772, 786, 1169, 771, 772, 773, 774, 775, 776, 5411, 5411, 1178, 5411, 5033, 1181, 1827, 783, 5033, 643, 1186, 791, 2789, 784, 4445, 772, 789, 33, 3833, 766, 1534, 772, 786, 5413, 766, 41, 766, 784, 786, 786, 1827, 1545, 734, 1079, 50, 755, 772, 786, 1077, 772, 1077, 1217, 643, 784, 791, 6119, 6120, 766, 287, 791, 784, 791, 786, 3374, 786, 772, 6130, 772, 2159, 4853, 770, 771, 772, 773, 774, 775, 776, 772, 766, 766, 1787, 4349, 791, 1860, 386, 1408, 766, 772, 784, 786, 1787, 769, 770, 771, 772, 773, 774, 775, 776, 4912, 547, 784, 593, 1787, 208, 786, 1142, 706, 6043, 766, 746, 791, 908, 5597, 5033, 5599, 761, 33, 5683, 786, 766, 786, 1787, 5590, 784, 41, 786, 4923, 6192, 1787, 378, 786, 208, 1169, 50, 2084, 786, 786, 737, 1343, 784, 593, 1178, 5533, 784, 1181, 786, 771, 5538, 5539, 1186, 1787, 706, 476, 281, 1787, 169, 769, 770, 771, 772, 773, 774, 775, 776, 143, 771, 772, 773, 774, 775, 776, 791, 1960, 433, 454, 4597, 1762, 239, 758, 33, 1217, 54, 578, 784, 732, 786, 766, 41, 232, 694, 314, 1232, 560, 1234, 497, 1762, 50, 593, 2992, 178, 1367, 208, 732, 4759, 614, 1983, 376, 4763, 1278, 1404, 315, 1202, 143, 5973, 5974, 229, 1994, 1995, 1255, 499, 1257, 1924, 376, 4029, 4030, 1262, 1263, 4033, 4034, 50, 369, 1449, 123, 4039, 4040, 67, 4759, 784, 315, 786, 4763, 784, 1279, 786, 766, 3169, 1751, 314, 2045, 1346, 232, 1288, 1243, 1431, 773, 774, 775, 776, 390, 40, 4066, 791, 586, 1304, 3166, 1302, 1303, 3043, 2914, 593, 33, 281, 3196, 663, 1900, 599, 582, 168, 41, 160, 254, 561, 5342, 2632, 376, 677, 1323, 50, 3043, 679, 2136, 208, 3206, 211, 684, 4527, 1791, 1438, 4530, 5605, 2540, 1927, 33, 97, 4509, 72, 1473, 766, 315, 1346, 1347, 376, 771, 772, 617, 2466, 1346, 4361, 1346, 50, 4002, 136, 160, 295, 604, 40, 2632, 71, 5922, 786, 1367, 305, 2483, 4531, 4016, 4753, 2487, 197, 528, 5730, 314, 53, 2050, 1326, 1327, 317, 4390, 786, 1385, 1404, 674, 2443, 2444, 6191, 208, 494, 5452, 2699, 5454, 2701, 2702, 2710, 2699, 2274, 2701, 2702, 1404, 197, 331, 1406, 1407, 1401, 1413, 1404, 1404, 1404, 1404, 2469, 3339, 1404, 1417, 1404, 3445, 143, 1271, 786, 3032, 4481, 690, 226, 6228, 1428, 1959, 1430, 2808, 1282, 1563, 328, 315, 99, 404, 1438, 1439, 2654, 2710, 1442, 1404, 369, 3202, 2660, 3006, 170, 244, 737, 448, 196, 1453, 2120, 2121, 435, 1457, 281, 1459, 47, 3043, 178, 258, 3381, 3022, 3023, 3024, 3025, 226, 1470, 3984, 3985, 1473, 3924, 1475, 1476, 2122, 743, 3016, 3017, 747, 208, 5864, 5865, 492, 3988, 3989, 784, 4085, 786, 757, 393, 580, 3038, 5326, 5327, 1257, 315, 335, 31, 101, 1262, 287, 1962, 1963, 1506, 2168, 226, 3007, 2155, 3009, 1512, 1971, 1972, 1973, 3135, 4753, 196, 106, 2168, 3861, 791, 766, 767, 768, 4533, 750, 505, 251, 409, 410, 53, 475, 4591, 178, 1536, 5917, 201, 2168, 4283, 3881, 423, 568, 1604, 3885, 2168, 2192, 2193, 5916, 580, 178, 4283, 3310, 363, 114, 909, 690, 911, 654, 913, 914, 1562, 1563, 471, 3984, 3985, 920, 2168, 494, 923, 783, 5595, 690, 5932, 298, 769, 770, 771, 772, 773, 774, 775, 776, 2738, 5452, 1346, 5454, 3345, 315, 3347, 3348, 33, 123, 2828, 697, 3353, 127, 6155, 33, 41, 568, 1732, 1596, 3361, 448, 1787, 41, 3365, 50, 3367, 1604, 2080, 1604, 2513, 706, 50, 614, 2517, 6000, 2519, 315, 143, 6004, 299, 403, 270, 14, 472, 3238, 4637, 361, 1762, 5544, 2533, 690, 167, 460, 168, 4136, 4137, 4410, 3373, 173, 33, 2454, 2455, 2546, 2547, 2390, 5919, 5036, 41, 81, 6211, 746, 43, 44, 33, 366, 1660, 50, 690, 463, 1664, 33, 41, 593, 1428, 33, 1670, 472, 614, 41, 1707, 50, 206, 41, 577, 1439, 4144, 1681, 50, 506, 6051, 658, 50, 632, 1792, 1793, 434, 1795, 1796, 1797, 1798, 6252, 296, 1457, 414, 1459, 1693, 3201, 1861, 1807, 671, 1693, 463, 33, 2176, 4716, 3376, 690, 613, 506, 659, 41, 2184, 232, 786, 147, 107, 1825, 40, 577, 50, 369, 2194, 33, 705, 2366, 158, 666, 1732, 706, 1734, 41, 459, 258, 166, 1743, 591, 5764, 2797, 33, 50, 463, 786, 378, 653, 392, 1750, 41, 311, 33, 1754, 1755, 434, 143, 33, 568, 50, 41, 1762, 1763, 151, 193, 41, 208, 675, 432, 50, 614, 697, 568, 208, 50, 506, 298, 572, 1909, 5965, 312, 371, 5968, 1784, 127, 448, 414, 145, 786, 568, 1144, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 2463, 160, 5109, 192, 6164, 1807, 1967, 1968, 4971, 3134, 983, 984, 985, 2463, 786, 6198, 6199, 208, 1950, 249, 580, 413, 1824, 1825, 1830, 1827, 510, 1959, 458, 1961, 3912, 208, 2463, 458, 715, 19, 20, 718, 208, 2463, 160, 4885, 208, 5230, 783, 474, 1848, 277, 494, 5654, 4909, 4895, 4896, 4912, 33, 1028, 75, 374, 1860, 3184, 33, 2463, 41, 1969, 1970, 33, 33, 33, 41, 553, 2002, 50, 315, 41, 41, 41, 196, 50, 5758, 315, 208, 706, 50, 50, 50, 786, 4998, 4671, 627, 2804, 127, 5999, 3206, 738, 1900, 6003, 235, 489, 1660, 2450, 208, 2084, 1664, 2818, 786, 225, 128, 1909, 1670, 293, 298, 2654, 5024, 2560, 457, 127, 208, 2660, 2450, 110, 566, 1927, 1924, 2055, 315, 33, 208, 1929, 572, 151, 783, 208, 2675, 41, 714, 3206, 459, 528, 315, 2122, 2608, 786, 50, 4717, 2859, 315, 685, 5144, 1950, 315, 614, 2713, 2714, 749, 3070, 1957, 145, 1959, 1960, 1961, 144, 173, 580, 1965, 3271, 784, 542, 1969, 1970, 3271, 3086, 601, 2155, 293, 5033, 608, 601, 3093, 3094, 2732, 756, 1983, 5179, 67, 6171, 2168, 5791, 315, 1750, 5376, 786, 5378, 1994, 1995, 3051, 193, 5383, 33, 758, 5306, 2002, 2592, 386, 5390, 5391, 41, 690, 315, 2681, 2192, 2193, 3901, 196, 5400, 50, 3394, 3395, 236, 4360, 5406, 364, 131, 214, 315, 3081, 384, 3242, 4369, 4370, 208, 3246, 5338, 1794, 315, 226, 208, 3903, 1799, 315, 1801, 208, 208, 208, 468, 33, 577, 2789, 2868, 2869, 2870, 3375, 697, 41, 2055, 4564, 2808, 5065, 600, 786, 4569, 4018, 50, 2064, 4042, 4574, 528, 386, 258, 2070, 57, 3377, 459, 2074, 706, 738, 3377, 268, 314, 669, 6187, 127, 506, 33, 71, 33, 73, 1848, 4734, 10, 722, 41, 191, 41, 2095, 1449, 5207, 99, 289, 1860, 50, 208, 50, 2104, 335, 448, 749, 450, 461, 2110, 10, 462, 495, 10, 759, 4885, 299, 40, 2119, 2120, 2121, 33, 33, 5166, 6108, 4895, 4896, 6107, 5110, 41, 41, 177, 231, 324, 2135, 2136, 711, 315, 50, 50, 493, 758, 4788, 315, 649, 101, 4925, 232, 315, 315, 315, 613, 5944, 119, 729, 10, 268, 33, 2159, 72, 357, 244, 2163, 33, 6073, 41, 6075, 47, 3043, 268, 5552, 41, 2173, 208, 50, 33, 495, 755, 2179, 51, 50, 117, 118, 41, 2643, 725, 152, 2646, 74, 2190, 2191, 120, 50, 2652, 150, 241, 2858, 540, 421, 403, 86, 5397, 33, 386, 1965, 783, 127, 669, 315, 2858, 41, 2873, 173, 126, 567, 413, 573, 574, 0, 50, 208, 725, 1983, 454, 2873, 5382, 106, 4160, 2858, 314, 127, 3145, 104, 1994, 1995, 2858, 2885, 661, 3152, 590, 2889, 141, 2236, 2873, 766, 436, 2796, 2236, 5634, 1421, 2873, 791, 2890, 6162, 5640, 2885, 725, 2858, 208, 2889, 208, 2421, 2885, 2901, 2902, 2796, 2889, 313, 2906, 205, 602, 614, 2873, 196, 386, 33, 3052, 33, 783, 783, 315, 2463, 6074, 41, 2885, 41, 141, 386, 2889, 218, 33, 489, 50, 650, 50, 648, 208, 208, 41, 398, 3052, 303, 304, 2064, 4062, 4063, 4064, 50, 3807, 2070, 3809, 5548, 225, 33, 497, 5552, 667, 33, 541, 2450, 2958, 41, 791, 2384, 5520, 41, 292, 315, 4086, 4087, 50, 4089, 208, 294, 50, 283, 2467, 2975, 208, 2340, 296, 5645, 7, 2344, 786, 33, 282, 4280, 725, 3909, 208, 786, 307, 41, 341, 310, 2357, 35, 36, 37, 789, 39, 50, 4872, 4873, 315, 572, 315, 47, 595, 6203, 6204, 359, 766, 2135, 2136, 153, 208, 2560, 366, 293, 769, 770, 771, 772, 773, 774, 775, 776, 6111, 2384, 168, 2384, 2498, 784, 766, 5166, 5783, 2503, 498, 75, 403, 2163, 315, 315, 47, 783, 2512, 772, 6242, 786, 55, 2173, 2518, 33, 33, 5802, 786, 33, 141, 784, 786, 41, 41, 533, 534, 41, 106, 537, 538, 539, 50, 50, 1787, 617, 50, 2567, 3109, 3110, 315, 5210, 4930, 2443, 2444, 4953, 315, 4955, 3109, 3110, 2450, 208, 126, 208, 2454, 2455, 75, 47, 315, 2463, 786, 3109, 3110, 668, 5242, 106, 208, 2467, 693, 2469, 568, 145, 2472, 2473, 475, 6196, 4816, 4817, 784, 156, 3109, 3110, 33, 771, 772, 315, 160, 3109, 3110, 208, 41, 4160, 4161, 208, 5689, 4164, 786, 2497, 2498, 50, 1010, 3242, 4171, 2503, 784, 3246, 2510, 126, 151, 3109, 3110, 786, 2512, 3109, 3110, 6236, 106, 2521, 2518, 1029, 1030, 208, 783, 748, 167, 1107, 145, 4392, 47, 5174, 791, 413, 3292, 3293, 4291, 3295, 3296, 217, 2642, 3452, 6195, 160, 33, 725, 749, 2545, 2650, 2651, 454, 6270, 41, 225, 766, 2683, 33, 4312, 311, 1139, 315, 50, 315, 2561, 41, 57, 2745, 747, 33, 2567, 2568, 2569, 791, 50, 5795, 315, 41, 757, 4532, 71, 6299, 5734, 2340, 5736, 33, 50, 2344, 419, 2532, 106, 2592, 311, 208, 208, 426, 499, 208, 238, 315, 2597, 217, 50, 315, 281, 2606, 71, 2604, 73, 225, 287, 2608, 786, 47, 673, 30, 19, 20, 786, 53, 35, 55, 681, 786, 786, 786, 2804, 686, 19, 20, 31, 315, 214, 328, 99, 3373, 63, 2634, 772, 4613, 2818, 2638, 2639, 2640, 226, 2642, 3394, 3395, 6300, 6301, 784, 715, 2649, 2650, 2651, 719, 4630, 2654, 5712, 57, 208, 4635, 33, 2660, 783, 568, 271, 5859, 318, 2796, 41, 154, 791, 71, 510, 73, 5680, 282, 2675, 50, 2858, 2859, 2679, 786, 65, 5739, 2683, 2684, 33, 5743, 2868, 2869, 2870, 3893, 128, 2873, 41, 2454, 2455, 281, 315, 315, 4307, 4900, 315, 50, 4311, 2885, 4905, 783, 2711, 2889, 772, 384, 4248, 4249, 4018, 791, 2719, 5871, 208, 4018, 740, 33, 784, 3470, 786, 6030, 6031, 5234, 33, 41, 208, 258, 2084, 2732, 3936, 3482, 41, 178, 50, 2738, 324, 4277, 208, 147, 1293, 50, 4395, 732, 783, 4997, 1299, 1300, 145, 786, 158, 783, 4292, 2886, 4301, 2888, 33, 343, 166, 791, 4820, 315, 384, 50, 41, 3882, 2122, 3884, 22, 3420, 783, 4331, 33, 50, 784, 29, 786, 31, 791, 5031, 41, 299, 2545, 3900, 2787, 3843, 2789, 417, 3420, 50, 5850, 4117, 2795, 2796, 2797, 3420, 786, 4344, 141, 2155, 2052, 283, 33, 33, 2056, 2808, 2569, 33, 33, 128, 41, 41, 2168, 749, 783, 41, 41, 3420, 670, 50, 50, 315, 791, 5981, 50, 50, 5984, 5887, 5476, 670, 783, 208, 33, 315, 786, 783, 2192, 2193, 791, 281, 41, 249, 33, 791, 5904, 315, 33, 5190, 5191, 50, 41, 460, 40, 33, 41, 4835, 783, 208, 784, 50, 786, 41, 50, 50, 791, 128, 2873, 55, 784, 277, 50, 33, 786, 786, 24, 463, 33, 2640, 28, 41, 30, 145, 32, 2886, 41, 2888, 2649, 784, 50, 786, 33, 2654, 208, 50, 647, 366, 783, 2660, 41, 208, 790, 33, 5413, 783, 791, 33, 662, 50, 786, 41, 145, 791, 2675, 41, 786, 386, 145, 594, 50, 783, 312, 784, 50, 786, 784, 3109, 3110, 791, 4818, 737, 738, 208, 740, 33, 742, 6257, 6258, 341, 315, 19, 20, 41, 1384, 4662, 127, 1387, 1388, 208, 791, 3012, 50, 784, 791, 3866, 707, 359, 3707, 710, 515, 516, 736, 3145, 366, 151, 315, 784, 23, 786, 3152, 26, 27, 120, 594, 530, 31, 532, 281, 208, 208, 167, 47, 3143, 208, 208, 737, 6045, 2989, 391, 657, 386, 5508, 746, 4495, 746, 24, 3897, 393, 4669, 28, 315, 30, 23, 32, 268, 26, 27, 315, 208, 196, 31, 3006, 408, 113, 114, 115, 3018, 3012, 208, 3012, 436, 784, 208, 786, 114, 784, 4697, 2789, 704, 208, 4701, 4029, 4030, 2795, 430, 4033, 4034, 4708, 99, 315, 784, 4039, 4040, 784, 3046, 786, 784, 208, 786, 3051, 3052, 238, 208, 4614, 783, 315, 18, 19, 20, 128, 47, 101, 4387, 784, 287, 144, 208, 784, 141, 625, 626, 5050, 606, 3850, 3851, 1674, 1675, 208, 40, 3081, 5059, 208, 647, 704, 6143, 315, 315, 766, 767, 768, 315, 315, 784, 151, 786, 784, 40, 3850, 3851, 28, 783, 30, 3097, 3105, 3097, 3107, 50, 3097, 475, 208, 150, 55, 5973, 5974, 101, 315, 3222, 196, 3279, 584, 3252, 4880, 4881, 4882, 4883, 315, 5377, 4886, 4887, 315, 706, 784, 4891, 786, 3097, 4894, 315, 3139, 4897, 535, 3097, 4900, 784, 5394, 786, 4904, 4905, 773, 774, 3151, 3282, 3283, 548, 784, 315, 786, 5407, 580, 5409, 315, 784, 783, 786, 150, 784, 784, 3805, 737, 784, 565, 33, 533, 534, 315, 783, 537, 538, 539, 41, 4384, 3957, 784, 4834, 786, 315, 783, 3318, 50, 315, 783, 53, 1576, 1577, 3199, 784, 784, 786, 786, 160, 333, 1585, 33, 81, 333, 3957, 2560, 784, 151, 786, 41, 203, 24, 25, 26, 254, 28, 315, 30, 50, 32, 3222, 617, 784, 167, 786, 784, 333, 786, 3230, 551, 1615, 784, 1617, 287, 196, 314, 784, 3420, 786, 784, 3242, 786, 4358, 4359, 3246, 3988, 3989, 1632, 1633, 1634, 3252, 784, 196, 786, 1639, 1640, 296, 4796, 3260, 784, 203, 786, 1647, 225, 784, 305, 786, 254, 147, 3452, 784, 784, 786, 786, 314, 784, 784, 786, 786, 158, 3282, 3283, 786, 784, 3046, 786, 783, 166, 328, 355, 784, 784, 786, 101, 238, 5054, 692, 5056, 283, 5058, 3306, 3307, 3308, 3309, 427, 3311, 3312, 386, 784, 296, 786, 707, 4678, 360, 193, 784, 3318, 792, 305, 4685, 784, 784, 786, 786, 784, 351, 786, 314, 389, 732, 391, 293, 3334, 399, 784, 401, 786, 351, 784, 6348, 786, 328, 150, 3349, 3350, 208, 3352, 790, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 784, 3362, 786, 783, 5011, 3366, 757, 15, 784, 425, 786, 784, 4483, 786, 4735, 249, 3373, 784, 783, 786, 5093, 208, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 783, 3151, 2745, 3393, 3394, 3395, 455, 783, 4217, 3399, 277, 783, 4150, 4151, 783, 24, 25, 26, 783, 28, 784, 30, 71, 32, 783, 5172, 88, 24, 25, 783, 497, 28, 783, 30, 4172, 32, 386, 491, 740, 784, 4178, 786, 4737, 784, 783, 786, 784, 96, 182, 4187, 783, 4189, 4190, 4191, 783, 4193, 4194, 784, 254, 786, 109, 2804, 5061, 783, 315, 4203, 4204, 4205, 4206, 4207, 5178, 784, 783, 786, 119, 2818, 125, 5444, 123, 783, 3230, 784, 127, 145, 784, 81, 786, 541, 784, 122, 73, 784, 3242, 786, 57, 315, 3246, 24, 25, 783, 296, 28, 677, 30, 4139, 32, 155, 152, 71, 305, 73, 213, 784, 5040, 786, 2858, 2859, 784, 314, 786, 784, 740, 784, 168, 786, 2868, 2869, 2870, 173, 24, 25, 38, 328, 28, 588, 30, 784, 32, 784, 588, 786, 4138, 2885, 4140, 783, 495, 2889, 783, 4652, 783, 617, 147, 214, 783, 783, 783, 18, 19, 20, 5199, 783, 206, 158, 783, 226, 213, 784, 784, 201, 783, 166, 784, 784, 622, 22, 783, 24, 25, 40, 783, 28, 29, 30, 31, 4349, 234, 4658, 18, 19, 20, 783, 53, 783, 783, 783, 213, 784, 193, 783, 783, 783, 783, 783, 783, 5674, 4677, 784, 203, 4349, 40, 784, 73, 783, 213, 4686, 783, 754, 784, 783, 783, 4692, 783, 783, 3373, 678, 783, 360, 289, 783, 783, 4702, 4258, 783, 783, 4152, 784, 783, 99, 4710, 4711, 784, 4159, 73, 783, 4162, 4283, 295, 292, 702, 3399, 783, 4169, 783, 249, 784, 783, 783, 290, 783, 5514, 783, 31, 324, 783, 4283, 784, 783, 617, 99, 784, 783, 4283, 406, 783, 783, 783, 783, 783, 783, 3828, 747, 277, 783, 783, 783, 783, 783, 783, 145, 40, 757, 783, 4319, 4283, 783, 15, 15, 784, 160, 783, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 783, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 119, 4470, 4471, 791, 123, 4474, 4475, 786, 127, 783, 160, 88, 783, 5610, 783, 196, 18, 19, 20, 783, 201, 783, 203, 783, 306, 307, 677, 5713, 783, 766, 584, 484, 203, 152, 128, 105, 783, 203, 40, 258, 786, 409, 410, 670, 225, 460, 196, 3109, 3110, 168, 690, 201, 129, 203, 173, 436, 783, 690, 410, 341, 5487, 127, 706, 676, 33, 510, 429, 143, 145, 786, 5497, 73, 41, 422, 786, 225, 786, 359, 582, 3788, 360, 50, 463, 3145, 366, 786, 755, 206, 757, 783, 3152, 127, 579, 5719, 547, 394, 786, 99, 786, 5725, 5726, 4570, 701, 766, 7, 746, 4575, 47, 463, 391, 563, 564, 293, 463, 10, 568, 569, 570, 783, 786, 3829, 191, 217, 31, 136, 151, 196, 296, 92, 93, 94, 95, 88, 65, 3843, 393, 3845, 408, 3, 583, 3853, 3850, 3851, 293, 3853, 746, 791, 3856, 3857, 311, 427, 5404, 54, 3966, 5513, 786, 127, 791, 160, 128, 33, 231, 120, 791, 643, 346, 106, 422, 41, 706, 784, 647, 333, 292, 138, 139, 140, 50, 411, 333, 333, 141, 5500, 636, 2276, 262, 506, 2279, 311, 4717, 558, 559, 561, 128, 196, 4085, 346, 154, 268, 201, 786, 203, 311, 2295, 281, 386, 3915, 3909, 3910, 783, 386, 177, 33, 577, 790, 786, 293, 393, 791, 783, 41, 602, 47, 225, 2316, 189, 190, 427, 784, 50, 33, 784, 408, 336, 106, 688, 386, 786, 41, 208, 791, 391, 784, 784, 784, 478, 3955, 50, 3957, 4139, 53, 3960, 3961, 648, 430, 128, 3969, 3966, 214, 4127, 784, 338, 784, 644, 127, 6, 7, 127, 783, 783, 226, 5094, 351, 352, 88, 784, 167, 18, 791, 3988, 3989, 662, 5355, 5356, 465, 5358, 3995, 783, 5647, 253, 136, 293, 786, 287, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 786, 792, 128, 127, 388, 773, 544, 53, 546, 495, 73, 386, 791, 786, 552, 690, 127, 773, 151, 264, 281, 266, 4217, 398, 710, 4700, 4073, 490, 289, 451, 208, 413, 277, 703, 127, 81, 127, 435, 4700, 346, 495, 315, 33, 427, 786, 718, 5669, 316, 293, 690, 41, 737, 784, 3420, 535, 783, 786, 4700, 715, 50, 746, 718, 783, 324, 4700, 5996, 154, 548, 3, 151, 786, 3845, 217, 119, 612, 5453, 5204, 123, 363, 386, 239, 127, 208, 510, 565, 3452, 4700, 510, 4283, 122, 136, 137, 510, 510, 360, 5827, 786, 143, 510, 510, 208, 147, 786, 766, 4878, 4119, 152, 226, 154, 4651, 120, 4653, 158, 287, 676, 784, 4890, 47, 656, 127, 166, 4663, 168, 498, 33, 673, 33, 173, 596, 746, 158, 617, 41, 784, 41, 4142, 127, 315, 663, 4681, 784, 50, 411, 50, 53, 732, 784, 193, 784, 268, 784, 4693, 158, 577, 679, 210, 783, 203, 786, 684, 206, 791, 617, 65, 137, 5895, 439, 4709, 201, 791, 251, 664, 418, 783, 660, 436, 480, 480, 786, 595, 226, 3955, 784, 33, 283, 786, 3960, 3961, 495, 315, 68, 41, 736, 568, 705, 128, 222, 206, 4212, 245, 50, 203, 463, 249, 4218, 660, 786, 315, 786, 478, 783, 692, 258, 751, 3988, 3989, 287, 208, 602, 338, 146, 128, 154, 649, 762, 97, 707, 42, 784, 474, 784, 277, 784, 427, 784, 619, 773, 784, 784, 784, 5618, 128, 5620, 5621, 772, 784, 292, 783, 791, 784, 4925, 784, 298, 299, 784, 784, 217, 290, 784, 786, 783, 645, 644, 4925, 784, 786, 312, 784, 314, 755, 784, 757, 784, 786, 784, 544, 658, 546, 128, 5837, 662, 784, 4925, 552, 784, 784, 4300, 784, 72, 4925, 81, 75, 786, 783, 413, 786, 784, 784, 783, 208, 755, 208, 757, 776, 688, 784, 784, 784, 783, 378, 617, 4925, 591, 783, 4332, 5000, 766, 436, 4332, 783, 31, 783, 31, 31, 315, 786, 427, 131, 710, 128, 786, 4345, 786, 6104, 4352, 4349, 784, 6216, 4352, 791, 6331, 127, 126, 612, 463, 129, 791, 791, 127, 504, 786, 786, 791, 660, 786, 737, 147, 786, 208, 128, 613, 145, 4535, 258, 784, 786, 53, 158, 81, 100, 403, 786, 4386, 5931, 47, 166, 160, 410, 670, 786, 365, 4395, 786, 127, 909, 5312, 911, 656, 913, 914, 4404, 4396, 576, 158, 4401, 920, 158, 658, 923, 4871, 753, 5328, 193, 507, 439, 4549, 315, 513, 315, 515, 516, 549, 203, 459, 783, 6079, 123, 5975, 557, 268, 268, 657, 268, 268, 530, 4439, 532, 268, 314, 203, 5105, 4445, 783, 217, 147, 4449, 681, 682, 683, 684, 766, 225, 127, 5105, 766, 158, 766, 5109, 755, 576, 757, 766, 766, 166, 766, 766, 766, 766, 249, 4473, 766, 766, 5105, 6086, 4636, 315, 5109, 299, 6347, 5105, 766, 766, 766, 5109, 168, 766, 737, 766, 262, 766, 193, 736, 751, 766, 766, 746, 277, 34, 766, 4607, 203, 5105, 287, 762, 766, 5109, 766, 333, 766, 766, 786, 791, 766, 791, 287, 4700, 4520, 791, 299, 293, 758, 786, 506, 4985, 154, 4529, 392, 153, 4662, 625, 626, 153, 4717, 213, 784, 784, 65, 4671, 784, 4547, 33, 577, 790, 784, 791, 4549, 249, 784, 41, 658, 5467, 791, 791, 662, 772, 784, 772, 50, 786, 784, 784, 6215, 783, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 277, 783, 338, 5242, 699, 287, 287, 241, 584, 679, 680, 128, 250, 128, 783, 81, 5242, 250, 791, 4597, 783, 791, 55, 492, 232, 92, 93, 94, 95, 4607, 30, 784, 772, 6220, 4612, 5242, 384, 72, 783, 786, 75, 766, 5242, 4614, 783, 766, 735, 545, 203, 786, 333, 126, 203, 203, 737, 1144, 50, 287, 158, 158, 714, 31, 786, 746, 5242, 4636, 784, 4636, 408, 408, 4636, 138, 139, 140, 31, 31, 240, 53, 283, 6201, 5306, 147, 783, 783, 4662, 783, 245, 773, 6316, 122, 127, 126, 158, 4671, 129, 584, 773, 784, 143, 5306, 166, 4439, 6330, 470, 786, 790, 5306, 791, 6336, 783, 145, 4449, 5338, 95, 783, 6343, 783, 4695, 715, 155, 784, 718, 189, 190, 362, 160, 155, 193, 5306, 362, 727, 5338, 370, 784, 784, 784, 30, 370, 5338, 783, 783, 208, 784, 753, 791, 786, 786, 385, 4856, 206, 784, 153, 385, 784, 4085, 784, 766, 395, 396, 397, 5338, 784, 395, 396, 397, 65, 4925, 405, 201, 784, 784, 5662, 405, 784, 784, 783, 786, 766, 783, 789, 790, 128, 31, 249, 4892, 31, 253, 313, 232, 232, 225, 786, 786, 784, 736, 783, 783, 554, 203, 408, 5236, 783, 783, 299, 5240, 5241, 299, 378, 4139, 53, 31, 277, 783, 208, 446, 4793, 784, 786, 287, 5545, 53, 786, 439, 251, 131, 224, 502, 262, 5554, 391, 5556, 5557, 5558, 5559, 5560, 783, 783, 127, 127, 4993, 4994, 576, 4996, 30, 784, 65, 594, 5001, 315, 316, 5004, 168, 256, 5007, 5008, 784, 4834, 290, 293, 314, 784, 5015, 4833, 5017, 504, 4843, 643, 4833, 4850, 4851, 4852, 206, 5026, 786, 65, 784, 784, 347, 4856, 786, 217, 4859, 169, 4861, 5003, 786, 4217, 314, 173, 784, 447, 784, 784, 784, 766, 783, 766, 757, 4876, 766, 786, 167, 418, 4914, 418, 543, 4888, 4889, 217, 744, 543, 203, 53, 641, 4892, 676, 4898, 555, 299, 784, 299, 783, 555, 170, 30, 30, 593, 65, 384, 4911, 159, 217, 707, 4911, 217, 4913, 217, 217, 217, 217, 159, 707, 592, 217, 411, 217, 5105, 217, 603, 384, 5109, 6043, 4283, 6295, 386, 203, 704, 485, 4940, 4937, 1449, 203, 128, 439, 584, 314, 203, 310, 154, 391, 403, 310, 99, 576, 237, 57, 783, 410, 784, 498, 784, 784, 784, 784, 549, 5093, 784, 786, 613, 784, 155, 71, 784, 784, 65, 784, 786, 784, 406, 784, 786, 784, 640, 791, 786, 50, 4984, 783, 654, 783, 783, 478, 427, 791, 784, 53, 31, 655, 378, 4997, 4998, 4999, 655, 783, 65, 783, 65, 5918, 117, 65, 783, 5009, 446, 5011, 30, 4995, 331, 744, 141, 160, 5018, 5019, 744, 225, 390, 669, 5024, 422, 317, 314, 5010, 424, 295, 5031, 281, 766, 30, 695, 5036, 791, 5020, 127, 695, 5045, 786, 784, 549, 5027, 445, 5029, 5030, 709, 784, 5051, 784, 6167, 709, 544, 783, 546, 687, 784, 786, 5242, 783, 552, 419, 783, 583, 783, 160, 160, 236, 784, 5530, 5066, 783, 53, 784, 5077, 5066, 786, 105, 203, 5842, 5843, 790, 5845, 5846, 5847, 5848, 790, 790, 127, 5740, 5093, 786, 5128, 783, 65, 784, 65, 65, 31, 287, 127, 19, 20, 127, 411, 19, 20, 160, 5740, 786, 314, 287, 784, 4876, 30, 5740, 786, 584, 461, 649, 612, 299, 5306, 784, 784, 5128, 601, 440, 5312, 5132, 784, 783, 367, 72, 594, 601, 783, 5740, 791, 57, 783, 576, 783, 57, 5328, 791, 6, 791, 120, 281, 120, 791, 5896, 791, 5338, 791, 791, 281, 287, 72, 791, 73, 584, 790, 656, 791, 287, 791, 791, 791, 287, 791, 791, 791, 791, 791, 790, 784, 687, 72, 160, 791, 50, 784, 5187, 698, 713, 30, 786, 786, 783, 18, 5936, 784, 65, 218, 5199, 5200, 576, 65, 783, 144, 783, 99, 5207, 5384, 5969, 99, 217, 5972, 428, 584, 296, 649, 584, 5218, 783, 5980, 5221, 5222, 5983, 418, 6339, 5226, 418, 783, 786, 5230, 430, 784, 784, 180, 160, 783, 783, 5238, 4999, 783, 5245, 704, 5243, 744, 201, 160, 704, 296, 339, 99, 53, 5382, 154, 783, 589, 791, 5261, 5018, 699, 715, 784, 751, 718, 783, 203, 198, 783, 426, 783, 783, 783, 727, 762, 127, 422, 1787, 6, 207, 740, 791, 784, 783, 739, 338, 5956, 5467, 739, 173, 784, 585, 784, 791, 783, 218, 203, 783, 251, 6, 7, 786, 6042, 786, 480, 5304, 332, 5339, 203, 784, 784, 18, 784, 112, 65, 784, 203, 296, 101, 5318, 649, 5320, 203, 203, 143, 116, 432, 30, 258, 3097, 3368, 783, 5054, 2580, 5724, 5058, 5056, 5369, 3218, 5371, 786, 4051, 5317, 5755, 5914, 6147, 53, 761, 4700, 5348, 763, 5350, 761, 5132, 5304, 5757, 270, 1426, 5457, 5105, 270, 5584, 5474, 5683, 4925, 4717, 4713, 281, 1744, 3924, 3445, 2601, 3389, 2081, 81, 2191, 5375, 5376, 5377, 5378, 4217, 826, 2193, 5382, 5383, 2192, 5385, 5580, 5579, 5370, 5297, 5390, 5391, 4596, 4072, 5394, 5398, 5183, 4341, 4345, 5399, 5400, 4793, 5963, 2429, 5500, 6081, 5406, 5407, 6220, 5409, 6180, 119, 5850, 2710, 5498, 123, 4591, 5417, 4992, 127, 6333, 5746, 5230, 4597, 5605, 1414, 4870, 665, 136, 137, 5589, 5036, 6204, 5372, 6032, 5936, 6042, 5925, 5925, 147, 5925, 5925, 4233, 4280, 152, 5445, 154, 4160, 4208, 5956, 158, 6045, 4660, 5125, 4311, 3791, 4308, 5457, 166, 6226, 168, 5461, 4303, 89, 89, 173, 6198, 5731, 6199, 3210, 5988, 6004, 710, 6000, 5631, 4685, 5368, 5366, 3958, 5033, 4596, 5662, 1521, 1435, 1939, 193, 3198, 5807, 3193, 5954, 5635, 2738, 3399, 2098, 3046, 203, 2569, 957, 206, 2827, 4145, 416, 135, 1401, 3140, 416, 3006, 769, 1348, 1388, 3275, 4634, 5602, 5513, 3055, 430, 4332, 432, 226, 430, 1678, 432, 5522, 2957, 3828, 2954, 5526, 3024, 1734, 3737, 1166, 4736, 1610, 5533, 5534, 3023, 1579, 245, 5538, 5539, 1600, 249, 6152, 5924, 1004, 6258, 6257, 4957, 5928, 464, 258, 1990, 1995, 464, 4389, 1346, 5929, 5353, 4843, 5740, 1346, 1985, 477, 1585, 3814, 2689, 477, 3262, 1346, 277, 1346, 4529, 4925, 2084, 2011, 1346, 5576, 4528, 3812, 5178, 5827, 5647, 5582, 4820, 292, 5174, 5579, 3278, 4737, 3271, 1409, 299, 1379, 5195, 775, 510, 4291, 4535, 2683, 510, 107, 89, 2104, 5603, 312, 1459, 314, 694, 1256, 5609, 2157, 2122, 2820, 528, 4142, 4401, 5513, 528, 3303, 4849, 1080, 4388, 4386, 6215, 840, 2541, 1816, 841, 685, 685, 2542, 3132, 685, 2595, 5634, 5576, 1404, 5210, 6218, 4148, 5640, 1928, 5642, 1526, 2155, 4962, 6263, 5647, 5362, 6336, 5683, 6343, 2561, 5199, 2817, 961, 5656, 2168, 2873, 3109, 3106, 3110, 684, 3101, 3111, 5795, 2475, 5667, 5668, 2197, 684, 3102, 2173, 1959, 3862, 1756, 1147, 1181, 682, 3051, 4061, 2192, 2193, 5683, 1514, 5445, 4549, 3213, 2732, 5441, 4640, 606, 723, 4073, 113, 606, 89, 1289, 613, 1514, 89, 89, 613, 3972, 5704, 2648, 5739, 925, 623, 4139, 5743, 6054, 623, 4931, 3446, 5715, 2194, 4941, 4931, 957, 5720, 4927, 637, 1183, 4926, -1, 637, -1, 5728, -1, 5730, -1, -1, -1, -1, 973, -1, 5918, 5919, 977, -1, -1, -1, -1, 5744, -1, -1, -1, -1, -1, -1, 5751, 5105, -1, 669, -1, 5109, 672, 669, -1, -1, 672, 1000, -1, -1, 5895, 1004, -1, -1, -1, -1, 1009, -1, -1, 5534, 690, -1, -1, -1, 690, -1, -1, -1, 5783, -1, -1, -1, -1, -1, -1, -1, 706, -1, 5793, -1, 5795, -1, -1, -1, -1, -1, 5801, 5802, 5803, -1, -1, 721, -1, -1, -1, 721, -1, 1272, -1, 108, -1, -1, 5799, -1, -1, -1, -1, -1, 5823, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1074, 1075, 1076, 1077, -1, -1, 1080, -1, -1, -1, 5976, -1, 142, 1087, -1, -1, -1, -1, 5887, -1, -1, -1, -1, -1, -1, 5861, -1, -1, -1, -1, 5866, -1, -1, 577, -1, 5904, 5872, -1, -1, -1, -1, -1, 5882, -1, -1, -1, -1, -1, -1, 179, -1, -1, -1, 5242, -1, -1, -1, -1, -1, 5895, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5911, -1, 5913, 1374, -1, -1, 1377, -1, -1, -1, -1, -1, -1, 5924, -1, -1, -1, 5928, 5929, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1183, -1, -1, -1, -1, -1, -1, 2463, 5306, 5954, -1, -1, -1, -1, 5312, -1, -1, -1, 5963, -1, -1, 5970, 5971, -1, -1, -1, 6101, 6032, -1, -1, 5328, 5976, -1, 5982, -1, -1, -1, -1, -1, -1, 5338, -1, 6146, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6008, -1, -1, -1, 6045, -1, -1, -1, 6016, 6050, 6018, 6019, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1268, -1, -1, 5793, 1272, -1, -1, -1, -1, 6032, -1, 6032, -1, 5803, -1, 753, -1, 6047, 6178, 2560, -1, -1, -1, -1, -1, 1515, -1, -1, 766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 784, -1, 786, 6079, -1, 789, 790, -1, -1, -1, 6090, -1, -1, 6093, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6101, -1, -1, -1, -1, -1, -1, -1, -1, 6143, -1, -1, -1, 5467, 6148, -1, -1, -1, 6119, 6120, -1, -1, 6123, -1, -1, -1, -1, -1, -1, 6130, -1, -1, -1, 1594, -1, 1374, -1, -1, 1377, -1, -1, -1, -1, 6144, -1, -1, -1, -1, 1609, 1610, -1, 6333, 5913, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6203, 6204, -1, -1, -1, -1, -1, -1, 6178, -1, -1, -1, -1, -1, -1, 6344, -1, 481, -1, -1, 6320, -1, 6192, -1, -1, 6325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1444, 6207, -1, 6242, 1448, -1, -1, -1, -1, 6215, -1, 511, 512, -1, 514, 515, 516, 517, 518, -1, 520, 521, 522, 523, 524, 525, 526, 527, 2745, 529, 530, 531, 532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5605, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1515, 1738, -1, -1, -1, -1, -1, -1, 1745, 1524, -1, 1526, -1, -1, -1, -1, 2804, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2818, -1, 5662, -1, -1, -1, -1, -1, -1, 6316, -1, -1, -1, 6320, -1, -1, -1, -1, 6325, 1786, -1, -1, -1, 6330, 625, 626, -1, 1572, 1573, 6336, -1, -1, -1, 1578, -1, -1, 6343, 1582, 1583, 1584, 2858, 2859, -1, -1, -1, -1, -1, 1592, 1593, 1594, 2868, 2869, 2870, 1598, -1, 2873, -1, 1602, 1603, 1604, -1, 1606, 1607, 1608, 1609, 1610, -1, -1, -1, -1, -1, 1616, 663, 1618, -1, -1, 1621, 1622, 1623, 1624, 5740, 1626, -1, 1628, 1629, -1, -1, -1, 679, -1, -1, -1, -1, -1, -1, -1, -1, 1642, 1643, 1644, 1645, 1646, -1, 1648, 1649, 1650, 1651, 1652, 1653, -1, 1655, 1656, -1, 1658, 1659, -1, 1661, 1662, -1, -1, 1665, 1666, -1, 1668, 1669, -1, 1671, -1, 1673, -1, -1, -1, 1677, 1678, 1679, -1, -1, 1682, 1683, 1684, 1685, -1, 1687, 1910, -1, -1, -1, -1, -1, 1694, -1, -1, -1, -1, -1, 1700, 1701, 1702, 1703, -1, -1, -1, -1, -1, -1, -1, 1711, 1712, -1, 1714, 1715, -1, -1, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, -1, -1, 1733, -1, -1, -1, -1, 1738, -1, -1, -1, -1, -1, -1, 1745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1768, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1786, -1, -1, -1, -1, -1, 2014, -1, 2016, -1, -1, -1, -1, -1, -1, -1, -1, 5918, 5919, -1, -1, -1, 5, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3109, 3110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 909, -1, 911, -1, 913, 914, 66, -1, 68, 3145, 70, 920, 72, -1, 923, -1, 3152, -1, -1, -1, 80, 1884, -1, 1886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 104, -1, -1, 1910, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, 1921, -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, -1, 171, -1, 173, -1, 2200, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, 2008, -1, -1, -1, -1, -1, 2014, -1, 2016, -1, -1, 216, 217, -1, -1, 48, -1, -1, -1, -1, -1, -1, 227, 228, -1, -1, -1, -1, 2036, -1, -1, -1, -1, -1, 239, 240, 241, -1, 243, -1, -1, -1, -1, 248, 2274, 2275, -1, 80, -1, 254, -1, -1, -1, 258, 259, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 1144, 296, -1, 298, -1, -1, -1, -1, 131, -1, 305, -1, -1, -1, -1, -1, -1, -1, 313, 314, -1, -1, 145, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, 328, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2369, 173, -1, -1, -1, -1, 350, 351, -1, 353, -1, 2158, -1, -1, -1, -1, 360, -1, -1, -1, -1, -1, -1, -1, 368, -1, -1, -1, -1, -1, -1, -1, 3452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 388, -1, -1, -1, -1, -1, -1, -1, -1, 2200, 2201, -1, -1, -1, -1, -1, 232, -1, 2209, 2210, 236, -1, -1, -1, 412, -1, -1, 6333, -1, -1, -1, -1, -1, -1, 422, -1, -1, -1, 254, -1, -1, -1, 258, 259, -1, -1, 2459, -1, -1, -1, -1, -1, -1, 441, -1, -1, -1, -1, -1, -1, -1, -1, 2475, -1, -1, -1, -1, -1, 456, -1, -1, -1, 2263, 289, -1, -1, -1, -1, -1, 467, 296, 297, 470, 2274, 2275, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2307, 2308, 2309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 665, -1, -1, 2562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2366, -1, 393, 2369, -1, -1, -1, -1, -1, -1, -1, -1, 2600, 2601, -1, -1, 710, -1, 2384, -1, -1, -1, 2388, 2389, -1, 2391, 2392, -1, -1, -1, -1, -1, -1, -1, 2400, -1, 2402, 1449, -1, 602, -1, -1, -1, -1, -1, 436, -1, -1, -1, -1, 441, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 452, 453, -1, -1, -1, -1, 2433, 631, -1, -1, -1, 635, -1, -1, -1, -1, -1, -1, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, 653, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, 665, -1, -1, -1, -1, -1, -1, 2475, -1, 2699, -1, 2701, 2702, 2703, -1, -1, -1, -1, -1, -1, -1, -1, -1, 688, -1, -1, 691, 2495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, -1, -1, -1, -1, -1, -1, -1, -1, 733, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2548, -1, -1, -1, -1, -1, -1, 2555, -1, -1, -1, -1, -1, -1, 2562, 760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 607, -1, -1, -1, 783, -1, -1, -1, -1, -1, 617, -1, -1, 2817, -1, -1, -1, -1, 2600, 2601, -1, 628, -1, -1, -1, -1, -1, 634, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 665, -1, -1, -1, 669, 973, -1, -1, -1, 977, -1, -1, -1, 2653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1000, -1, -1, 700, -1, -1, -1, -1, -1, 1009, -1, -1, -1, -1, 2686, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2699, -1, 2701, 2702, 2703, -1, 2705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2744, -1, 1074, 1075, 1076, 1077, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1087, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3026, -1, -1, -1, -1, -1, -1, -1, 4085, -1, -1, -1, -1, 2817, -1, -1, -1, 3043, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4139, -1, -1, -1, -1, -1, -1, -1, 2874, -1, -1, -1, 2878, -1, -1, 2881, -1, -1, -1, -1, -1, -1, -1, 3111, 2890, -1, -1, -1, -1, -1, -1, -1, -1, 2899, -1, 2901, 2902, -1, 2904, 2905, 2906, 2907, -1, 2909, -1, 2911, 2912, -1, 2914, -1, -1, -1, -1, -1, -1, -1, 2922, 2923, -1, -1, -1, 2927, 2928, 2929, -1, 99, -1, -1, -1, -1, -1, 2937, 2938, 2939, 1268, 2941, -1, 2943, 4217, 2945, -1, 2947, -1, 2949, -1, -1, -1, -1, 2954, 2955, -1, 2957, 2958, 2959, -1, -1, -1, 2963, -1, -1, 2966, -1, -1, -1, -1, -1, -1, -1, -1, 2975, -1, 145, 2978, -1, 2980, 2981, 2982, -1, -1, 2985, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3007, -1, 3009, -1, -1, 3012, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3022, 3023, 3024, 3025, 3026, 3027, -1, -1, -1, -1, 3032, -1, -1, -1, -1, -1, 2084, -1, -1, -1, -1, 3043, -1, -1, -1, 215, -1, 3271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, 273, 274, -1, -1, 2155, -1, 3111, -1, -1, -1, -1, 1444, -1, -1, -1, 1448, -1, 2168, -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3144, -1, 2192, 2193, -1, -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, -1, 348, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1524, -1, 1526, -1, 368, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3238, -1, 408, -1, -1, -1, 1572, 1573, -1, 415, -1, -1, 1578, -1, -1, -1, 1582, 1583, 1584, -1, -1, 3259, -1, -1, 430, -1, 1592, 1593, -1, -1, -1, -1, 1598, 3271, -1, -1, 1602, 1603, 1604, -1, 1606, 1607, 1608, -1, -1, -1, -1, -1, -1, -1, 1616, -1, 1618, -1, -1, 1621, 1622, 1623, 1624, -1, 1626, -1, 1628, 1629, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1642, 1643, 1644, 1645, 1646, 487, 1648, 1649, 1650, 1651, 1652, 1653, -1, 1655, 1656, 497, 1658, 1659, -1, 1661, 1662, -1, -1, 1665, 1666, -1, 1668, 1669, -1, 1671, -1, 1673, -1, -1, -1, 1677, 1678, 1679, -1, -1, 1682, 1683, 1684, 1685, -1, 1687, -1, -1, -1, -1, -1, -1, 1694, 535, -1, -1, -1, -1, 1700, 1701, 1702, 1703, -1, 3377, -1, -1, 548, -1, -1, 1711, 1712, -1, 1714, 1715, -1, -1, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, -1, -1, 1733, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2463, -1, 587, -1, -1, -1, -1, -1, 593, -1, 4700, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1768, -1, -1, -1, 4717, -1, -1, -1, -1, 617, -1, -1, -1, -1, -1, 3455, -1, -1, 3458, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 651, -1, -1, -1, -1, -1, -1, 658, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2560, -1, -1, -1, -1, -1, 71, -1, 73, -1, 692, 3747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 707, 708, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 720, -1, -1, -1, 1884, -1, 1886, -1, -1, -1, -1, -1, -1, 3787, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 757, -1, -1, -1, 1921, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3855, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4925, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2008, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2745, -1, -1, 3924, -1, -1, -1, -1, -1, 2036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3733, 3734, -1, -1, -1, 3738, -1, -1, 292, -1, -1, -1, -1, -1, 3747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2804, -1, 3760, -1, 3762, -1, 3764, -1, 3766, -1, -1, -1, -1, -1, 2818, -1, -1, -1, -1, -1, -1, -1, -1, 3781, -1, -1, -1, -1, -1, 3787, -1, -1, -1, -1, -1, -1, -1, 346, 4018, 348, -1, -1, 3800, 3801, -1, -1, -1, 3805, -1, 3807, -1, 3809, -1, -1, 2858, 2859, 3814, 366, -1, 368, -1, -1, -1, -1, 2868, 2869, 2870, -1, -1, 2873, -1, -1, 2158, -1, 5105, -1, -1, 386, -1, -1, -1, 2885, -1, -1, 393, 2889, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3855, -1, 408, -1, 3859, -1, -1, -1, -1, 415, -1, 3866, -1, -1, -1, -1, -1, -1, 2201, -1, -1, -1, -1, -1, 430, -1, 2209, 2210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3903, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2263, 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, 497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5242, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2307, 2308, 2309, -1, -1, 535, -1, -1, -1, -1, -1, -1, -1, 3992, -1, -1, -1, -1, 548, -1, -1, -1, -1, 4002, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4016, -1, 4018, 4019, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 587, -1, 2366, 5312, -1, -1, 593, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5328, 2384, -1, -1, -1, 2388, 2389, -1, 2391, 2392, -1, 617, -1, -1, -1, -1, -1, 2400, -1, 2402, -1, -1, -1, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, -1, -1, -1, -1, -1, -1, 3145, 651, -1, -1, -1, -1, 2433, 3152, 658, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, 48, 49, -1, -1, -1, -1, -1, -1, -1, 4129, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 70, -1, 72, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2495, -1, 720, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 2511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 757, -1, -1, -1, -1, -1, -1, -1, 4214, -1, -1, 145, -1, -1, 2548, -1, -1, -1, 663, -1, -1, 2555, -1, -1, -1, -1, -1, -1, -1, 786, -1, -1, -1, -1, 679, -1, -1, -1, -1, 173, 685, -1, -1, -1, -1, -1, -1, -1, -1, 4255, 4256, -1, 4258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4271, 4272, 4273, -1, -1, 204, -1, 206, -1, -1, -1, -1, -1, -1, -1, -1, 215, -1, 217, -1, -1, -1, -1, -1, 4295, 4296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, -1, -1, -1, 665, -1, -1, 4319, -1, -1, -1, -1, -1, 2653, -1, -1, -1, -1, -1, 4331, 5605, -1, -1, -1, -1, -1, -1, -1, 4340, -1, -1, -1, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2686, -1, -1, 710, -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3420, -1, -1, 2705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4388, 5662, -1, -1, 4392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3452, -1, -1, -1, 338, -1, -1, -1, -1, -1, 2744, -1, 346, -1, 348, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, -1, -1, -1, -1, -1, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, 909, -1, 911, -1, 913, 914, -1, -1, -1, -1, 408, 920, -1, -1, 923, -1, -1, 415, -1, -1, -1, 419, 420, -1, -1, -1, -1, -1, 426, -1, -1, -1, 430, -1, -1, -1, -1, -1, -1, -1, 438, -1, -1, -1, -1, 4737, -1, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874, -1, -1, -1, 2878, -1, -1, 2881, -1, 483, -1, -1, -1, 487, -1, -1, 2890, -1, -1, -1, -1, -1, -1, 497, 71, 2899, 73, 2901, 2902, -1, 2904, 2905, 2906, 2907, -1, 2909, -1, 2911, 2912, 4807, 2914, -1, -1, -1, -1, -1, -1, -1, 2922, 2923, -1, -1, 99, 2927, 2928, 2929, -1, -1, 4604, 4605, -1, 535, -1, 2937, 2938, 2939, -1, 2941, -1, 2943, -1, 2945, -1, 2947, 548, 2949, 550, -1, 973, -1, 2954, 2955, 977, 2957, 2958, 2959, -1, -1, -1, 2963, -1, -1, 2966, -1, -1, -1, -1, -1, 145, 5918, 5919, 2975, -1, -1, 2978, 1000, 2980, 2981, 2982, -1, -1, 2985, -1, 587, 1009, -1, -1, -1, -1, 593, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3007, -1, 3009, -1, -1, 3012, -1, -1, -1, -1, 617, 618, -1, -1, -1, 3022, 3023, 3024, 3025, -1, 3027, -1, 629, 630, 631, 3032, 1144, -1, -1, -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, 651, -1, 1074, 1075, 1076, 1077, -1, 658, -1, -1, -1, 4734, -1, -1, 4737, 1087, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3091, 692, -1, -1, -1, -1, -1, -1, 272, 273, 274, -1, -1, -1, -1, -1, 707, 708, -1, -1, -1, -1, -1, -1, -1, 4788, -1, -1, 292, 720, -1, -1, -1, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4807, -1, -1, -1, -1, -1, -1, -1, -1, 3144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 757, -1, -1, 1271, -1, -1, -1, -1, -1, 3166, -1, -1, -1, -1, -1, -1, 346, -1, 348, -1, 4849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 790, -1, -1, 366, -1, 368, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, 3238, -1, -1, -1, 415, -1, -1, -1, -1, 1268, -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, -1, 3259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4947, -1, 4949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, 497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1449, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, 4085, -1, -1, -1, -1, -1, -1, -1, 548, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6333, 5061, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 587, -1, -1, -1, -1, -1, 593, 4139, -1, 1444, -1, -1, -1, 1448, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 617, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3455, -1, -1, 3458, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 651, 5151, -1, -1, -1, -1, -1, 658, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4217, -1, -1, 5174, 1524, -1, 1526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 720, -1, -1, -1, 1572, 1573, -1, -1, -1, -1, 1578, -1, -1, -1, 1582, 1583, 1584, -1, 4283, -1, -1, -1, -1, -1, 1592, 1593, -1, -1, -1, -1, 1598, -1, -1, -1, 1602, 1603, 1604, 757, 1606, 1607, 1608, -1, -1, -1, -1, -1, -1, -1, 1616, -1, 1618, -1, -1, 1621, 1622, 1623, 1624, -1, 1626, -1, 1628, 1629, -1, -1, -1, -1, -1, 5508, -1, -1, -1, -1, -1, -1, 1642, 1643, 1644, 1645, 1646, -1, 1648, 1649, 1650, 1651, 1652, 1653, -1, 1655, 1656, -1, 1658, 1659, -1, 1661, 1662, -1, -1, 1665, 1666, -1, 1668, 1669, -1, 1671, -1, 1673, -1, -1, -1, 1677, 1678, 1679, -1, -1, 1682, 1683, 1684, 1685, -1, 1687, -1, -1, -1, -1, -1, -1, 1694, -1, -1, -1, -1, -1, 1700, 1701, 1702, 1703, -1, -1, -1, -1, -1, -1, -1, 1711, 1712, -1, 1714, 1715, -1, -1, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, -1, -1, 1733, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3733, 3734, -1, -1, -1, 3738, -1, -1, -1, -1, -1, -1, -1, -1, 1768, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3760, -1, 3762, -1, 3764, -1, 3766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3781, -1, -1, -1, -1, -1, 5459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3800, 3801, -1, -1, 5476, 3805, -1, 3807, -1, 3809, -1, -1, -1, -1, 3814, -1, -1, -1, -1, -1, -1, -1, 11, -1, 13, -1, -1, -1, 5500, 18, 19, 20, -1, -1, -1, -1, 5508, -1, -1, -1, -1, -1, 5514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5529, -1, 3859, -1, -1, -1, 1884, -1, 1886, 3866, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1921, -1, -1, 3903, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2084, -1, -1, -1, -1, 167, -1, -1, -1, 4700, -1, -1, -1, -1, 2008, -1, -1, -1, -1, 3992, -1, -1, -1, -1, 5669, -1, 4717, -1, -1, 4002, -1, -1, -1, -1, -1, -1, -1, -1, 2122, -1, -1, -1, 2036, 4016, -1, -1, 4019, -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2155, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, 2168, -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2192, 2193, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, 292, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, 127, -1, -1, 4129, -1, -1, -1, -1, -1, -1, 5808, 2158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, 346, -1, 348, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, 175, 176, -1, 366, -1, 368, 2201, -1, -1, 184, 185, 186, -1, -1, 2209, 2210, -1, -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, 202, -1, -1, 393, -1, -1, 4925, -1, -1, -1, -1, -1, -1, 4214, -1, -1, -1, -1, 408, -1, -1, -1, -1, 5896, -1, 415, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, 430, 2263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4255, 4256, -1, 4258, -1, 261, -1, -1, -1, 5936, 665, -1, -1, -1, -1, -1, 4271, 4272, 4273, -1, -1, 5948, -1, -1, -1, -1, -1, -1, 284, 285, 286, 2307, 2308, 2309, -1, -1, -1, -1, -1, -1, 4295, 4296, -1, 487, -1, -1, -1, -1, -1, -1, 306, 307, -1, 497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4319, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4331, -1, -1, -1, -1, -1, -1, -1, -1, 4340, -1, -1, -1, -1, 2366, 535, -1, -1, -1, -1, -1, 2463, 354, -1, 356, 357, -1, -1, 548, 6032, -1, -1, 2384, -1, -1, -1, 2388, 2389, -1, 2391, 2392, 373, -1, -1, -1, -1, -1, -1, 2400, -1, 2402, -1, -1, -1, -1, -1, 5105, 4388, -1, -1, 5109, 4392, -1, -1, -1, -1, -1, 587, -1, -1, -1, -1, -1, 593, -1, -1, -1, 409, 410, -1, -1, 2433, -1, 6086, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 617, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2560, -1, -1, -1, -1, 455, -1, -1, -1, -1, -1, -1, -1, 651, -1, -1, -1, -1, -1, -1, 658, -1, -1, -1, -1, 2495, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2595, -1, -1, -1, -1, -1, 2511, -1, -1, -1, -1, 496, -1, -1, -1, -1, -1, -1, -1, 692, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 707, 708, -1, -1, -1, -1, 5242, -1, -1, 2548, -1, -1, -1, 720, -1, -1, 2555, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6216, -1, -1, -1, 6220, -1, -1, -1, -1, -1, -1, -1, -1, 558, 559, -1, -1, -1, -1, -1, -1, -1, -1, -1, 757, -1, -1, -1, -1, 574, 575, -1, -1, 977, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5306, -1, -1, -1, -1, -1, 5312, -1, -1, -1, -1, -1, 1000, -1, -1, -1, 4604, 4605, -1, -1, -1, 1009, 5328, -1, -1, -1, -1, 616, -1, -1, -1, -1, 5338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2653, -1, 2745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2686, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6347, -1, 1077, -1, -1, -1, -1, -1, -1, 2705, -1, -1, -1, -1, -1, -1, -1, -1, 2804, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2818, -1, -1, -1, 712, -1, -1, 715, -1, -1, 718, -1, -1, -1, -1, -1, 2744, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4734, -1, -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, -1, 2858, 2859, 5467, -1, -1, -1, -1, -1, -1, -1, 2868, 2869, 2870, -1, 762, 2873, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2885, -1, -1, -1, 2889, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4788, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4849, -1, -1, -1, 2874, -1, -1, -1, 2878, -1, -1, 2881, -1, -1, -1, -1, -1, -1, -1, 1268, 2890, -1, -1, -1, -1, -1, -1, -1, -1, 2899, -1, 2901, 2902, -1, 2904, 2905, 2906, 2907, 5605, 2909, -1, 2911, 2912, -1, 2914, -1, -1, -1, -1, -1, -1, -1, 2922, 2923, -1, -1, -1, 2927, 2928, 2929, -1, -1, -1, -1, -1, -1, -1, 2937, 2938, 2939, -1, 2941, -1, 2943, -1, 2945, -1, 2947, -1, 2949, -1, -1, -1, -1, 2954, 2955, -1, 2957, 2958, 2959, -1, -1, -1, 2963, -1, 5662, 2966, -1, 4947, -1, 4949, -1, -1, -1, -1, 2975, -1, -1, 2978, -1, 2980, 2981, 2982, -1, -1, 2985, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3007, -1, 3009, -1, -1, 3012, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3022, 3023, 3024, 3025, -1, 3027, -1, -1, -1, -1, 3032, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5740, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3145, -1, -1, -1, -1, -1, -1, 3152, -1, -1, 1444, -1, -1, -1, 1448, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5061, -1, -1, -1, -1, -1, -1, -1, -1, 3091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3144, 1524, -1, 1526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3166, -1, -1, -1, -1, -1, 5151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5174, -1, -1, -1, 1578, -1, -1, -1, 1582, -1, 1584, -1, -1, -1, -1, -1, -1, -1, 1592, 1593, -1, -1, -1, -1, 1598, -1, 5918, 5919, 1602, 1603, 1604, -1, 1606, 1607, 1608, -1, -1, -1, -1, -1, -1, -1, 1616, 3238, 1618, -1, -1, 1621, 1622, 1623, 1624, -1, -1, -1, 1628, 1629, -1, -1, -1, -1, -1, -1, -1, -1, 3259, -1, -1, -1, 1642, 1643, 1644, 1645, 1646, -1, 1648, 1649, 1650, 1651, 1652, -1, -1, 1655, 1656, -1, 1658, 1659, -1, 1661, 1662, -1, -1, -1, 1666, -1, 1668, 1669, -1, 1671, -1, 1673, -1, -1, -1, 1677, 1678, 1679, -1, -1, 1682, -1, 1684, 1685, -1, 1687, -1, -1, -1, -1, -1, -1, 1694, -1, -1, -1, -1, -1, 1700, 1701, 1702, -1, -1, -1, -1, -1, -1, 3420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1768, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3455, -1, -1, 3458, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5476, -1, -1, -1, -1, -1, -1, -1, 1884, -1, 1886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5514, -1, -1, -1, -1, -1, -1, 1921, -1, -1, -1, -1, -1, -1, -1, 5529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2008, -1, -1, -1, -1, -1, -1, 6333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, 2036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5669, -1, 18, 19, 20, 48, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 68, -1, 70, -1, 72, 46, -1, 48, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 3733, 3734, -1, -1, -1, 3738, -1, -1, -1, -1, -1, 70, -1, -1, -1, 101, -1, 103, 104, 78, -1, -1, -1, -1, 110, -1, -1, 3760, -1, 3762, -1, 3764, -1, 3766, -1, -1, -1, -1, -1, -1, 99, 127, -1, -1, -1, 131, 2158, -1, 3781, -1, -1, 110, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, 3800, 3801, -1, -1, -1, 3805, -1, 3807, 161, 3809, -1, -1, -1, -1, 3814, -1, -1, -1, 171, 145, 173, -1, 2201, -1, 177, -1, -1, -1, -1, 5808, 2209, 2210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, 3859, -1, -1, -1, 216, 217, -1, 3866, -1, -1, -1, -1, -1, 3962, 3963, 227, 228, -1, -1, -1, -1, 206, -1, -1, -1, 2263, -1, 239, 240, 241, 215, 243, -1, -1, -1, -1, 248, -1, -1, -1, -1, -1, 254, -1, 3903, -1, 258, 259, 260, -1, -1, -1, -1, -1, -1, 240, -1, -1, 5896, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2307, 2308, 2309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, 296, -1, 298, 272, 273, 274, -1, -1, -1, 305, -1, -1, -1, -1, 5936, -1, -1, 313, 314, -1, -1, -1, -1, 292, -1, -1, 5948, -1, -1, -1, -1, -1, 328, -1, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3992, -1, -1, 4085, -1, 350, 351, -1, 353, -1, 4002, -1, -1, 2384, -1, 360, -1, -1, -1, -1, 338, -1, -1, 368, 4016, -1, -1, 4019, 346, 2400, 348, 2402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 388, -1, -1, -1, -1, -1, -1, 368, -1, -1, -1, -1, -1, -1, 4139, -1, -1, -1, 6032, 2433, -1, -1, -1, -1, 412, 386, -1, -1, -1, -1, -1, -1, 393, -1, 422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, 408, -1, -1, -1, -1, -1, 441, 415, -1, -1, -1, 419, -1, -1, -1, -1, -1, -1, 426, -1, -1, 456, 430, -1, -1, 6086, -1, -1, -1, -1, -1, -1, 467, -1, 2495, 470, -1, -1, 473, -1, -1, -1, -1, -1, -1, 4217, -1, 4129, -1, -1, 2511, 459, -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, -1, -1, -1, -1, -1, 2548, -1, 497, -1, -1, -1, -1, 2555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4283, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, 4214, -1, -1, -1, -1, -1, -1, -1, 548, -1, 550, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6216, -1, -1, -1, 6220, -1, -1, -1, -1, -1, -1, -1, 602, -1, -1, -1, -1, -1, 4255, 4256, -1, 4258, -1, -1, 587, -1, -1, -1, -1, -1, 593, -1, -1, -1, 4271, 4272, 4273, 2653, -1, -1, -1, 631, -1, -1, -1, 635, -1, -1, -1, -1, -1, -1, -1, -1, 617, 645, -1, -1, 4295, 4296, -1, -1, -1, 653, -1, -1, -1, -1, -1, -1, 2686, -1, -1, -1, -1, 665, -1, -1, -1, -1, -1, -1, 4319, -1, -1, -1, -1, -1, 651, 2705, -1, -1, -1, -1, 4331, 658, -1, -1, 688, -1, -1, 691, -1, 4340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2744, 692, -1, 6347, -1, -1, 724, -1, -1, -1, -1, -1, -1, -1, -1, 733, 707, 708, -1, -1, -1, -1, -1, 4388, -1, -1, 4481, 4392, -1, 720, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, 757, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2874, -1, -1, -1, 2878, -1, 4591, 2881, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2899, -1, -1, -1, -1, 2904, 2905, 2906, 2907, -1, 2909, -1, 2911, 2912, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2922, 2923, -1, -1, -1, 2927, 2928, 2929, -1, -1, -1, -1, -1, -1, -1, 2937, 2938, 2939, -1, 2941, -1, 2943, -1, 2945, -1, 2947, -1, 2949, -1, -1, -1, -1, 2954, 2955, -1, 2957, -1, 2959, -1, -1, -1, 2963, -1, -1, 2966, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2978, -1, 2980, 2981, 2982, 4604, 4605, 2985, -1, -1, -1, 4700, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, 4717, -1, -1, -1, -1, -1, 3012, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3023, 3024, -1, 47, 3027, 49, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, -1, -1, -1, 48, 49, -1, -1, 3091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, 70, -1, 72, -1, 4734, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, 101, -1, 103, 104, 3144, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3166, 4788, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, -1, 214, -1, -1, -1, -1, 4909, -1, 161, 4912, -1, -1, -1, 226, -1, -1, -1, -1, 171, -1, 173, -1, 4925, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, 217, -1, -1, 3259, 281, -1, -1, -1, -1, -1, 227, 228, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 239, 240, -1, -1, 243, -1, -1, -1, -1, 248, -1, -1, -1, -1, -1, 254, -1, -1, -1, 258, 259, 260, -1, -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5033, 344, -1, -1, 4947, -1, 4949, -1, -1, -1, 353, 294, -1, 296, -1, 298, -1, -1, -1, -1, -1, -1, 305, 366, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, 377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, 350, -1, -1, 353, -1, 5105, -1, -1, -1, 5109, 360, -1, -1, -1, -1, -1, -1, -1, 368, 429, 430, -1, -1, 433, -1, 435, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 388, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5061, 462, 463, -1, -1, -1, -1, 468, 469, -1, -1, 412, -1, -1, -1, 3455, -1, -1, 3458, -1, -1, 422, -1, -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 441, -1, -1, -1, -1, 506, -1, -1, -1, -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 467, 528, -1, 470, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, -1, -1, 5151, 5242, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5174, -1, -1, -1, -1, -1, -1, -1, 582, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 597, -1, -1, -1, -1, -1, -1, -1, -1, 606, -1, -1, 609, 610, -1, -1, -1, -1, -1, 5306, -1, -1, -1, -1, -1, 5312, -1, 624, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 661, 602, -1, -1, -1, -1, -1, -1, 669, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, 631, 692, -1, -1, 635, -1, -1, -1, -1, -1, -1, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, 653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 665, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 743, -1, -1, -1, -1, 688, -1, 750, 691, -1, -1, 3733, 3734, -1, -1, -1, 3738, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5467, -1, -1, -1, 3760, -1, 3762, 724, 3764, -1, 3766, -1, -1, -1, -1, -1, 733, -1, -1, -1, -1, -1, -1, -1, -1, 3781, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 760, 3800, 3801, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3814, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5476, -1, -1, -1, 3859, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5514, 5605, -1, -1, -1, -1, -1, -1, -1, -1, 3903, -1, -1, -1, -1, 5529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5662, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3992, -1, -1, -1, -1, -1, -1, -1, -1, 5712, 4002, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4016, -1, -1, 4019, -1, -1, -1, -1, -1, -1, -1, -1, 5739, 5740, -1, -1, 5743, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5669, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4129, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5850, -1, -1, -1, -1, -1, -1, -1, 5858, -1, -1, -1, -1, -1, 5864, 5865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5808, -1, -1, -1, -1, -1, 5904, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5918, 5919, -1, -1, -1, -1, -1, 4214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4255, 4256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4271, 4272, 4273, -1, 5896, -1, 5988, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6000, -1, -1, -1, 6004, -1, 4295, 4296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5948, -1, -1, -1, -1, -1, -1, 6045, -1, -1, -1, -1, -1, 4340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4388, -1, -1, -1, 4392, -1, -1, -1, -1, -1, -1, -1, 6111, 6112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6032, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6086, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6196, -1, 6198, 6199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6299, -1, -1, -1, -1, -1, -1, 6216, -1, -1, -1, 6220, -1, -1, -1, -1, 4604, 4605, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6347, -1, -1, -1, -1, -1, -1, -1, 4734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4788, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 4947, -1, 4949, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 5151, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, 5459, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, 5476, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, 5514, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, 5529, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, -1, -1, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 786, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 5948, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, 6032, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, 305, -1, -1, 308, 309, -1, -1, -1, 6216, 314, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, 6347, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, 64, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, 163, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, 203, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, 311, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, 143, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, 128, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, 128, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, 128, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, 143, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, 196, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, 182, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, 777, 8, 9, -1, -1, -1, 783, -1, -1, -1, 787, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, 120, 121, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, 150, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 164, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, -1, -1, 192, -1, -1, 195, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 221, -1, 223, -1, -1, -1, -1, -1, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, -1, -1, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, 275, 276, -1, 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, 771, 772, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, 783, -1, -1, -1, -1, 788, 19, 20, 791, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, 201, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 784, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 8, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 8, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 8, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, 788, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, 788, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, 678, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, 783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, 3, 759, 760, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, 26, -1, -1, 773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, 196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, 267, -1, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, 772, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, 766, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, 766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 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, -1, 128, 129, 130, 131, 132, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 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, -1, 128, 129, 130, 131, 132, -1, -1, 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, -1, 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, -1, 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, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, -1, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 533, 534, 535, 536, 537, 538, 539, -1, 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, -1, 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, -1, 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, -1, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, -1, -1, 681, 682, -1, 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, -1, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, 754, 755, 756, 757, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 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, -1, 128, 129, 130, 131, 132, -1, -1, 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, -1, 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, -1, 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, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, -1, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 533, 534, 535, 536, 537, 538, 539, -1, 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, -1, 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, -1, 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, -1, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, -1, -1, 681, 682, -1, 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, -1, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, 754, 755, 756, 757, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 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, -1, 128, 129, 130, 131, 132, -1, -1, 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, -1, 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, -1, 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, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, -1, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 533, 534, 535, 536, 537, 538, 539, -1, 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, -1, 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, -1, 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, -1, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, -1, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, -1, -1, 681, 682, -1, 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, -1, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, 754, 755, 756, 757, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, 145, -1, -1, -1, -1, 150, -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, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, 258, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, 296, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, 145, -1, -1, -1, -1, 150, -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, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, 258, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, 296, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, 24, 25, 26, -1, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 84, 85, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, 23, -1, -1, 26, 27, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 85, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 84, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, 148, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, 212, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, 135, 136, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 754, 755, 756, 757, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, -1, 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, -1, 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, -1, 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, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 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, -1, 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, -1, 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, -1, -1, 681, 682, -1, 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, -1, 759, 760, 761, 762, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -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, 114, 115, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, 313, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, 127, -1, -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, 582, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, -1, -1, -1, 246, 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, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, 351, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, -1, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, -1, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, -1, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, -1, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, -1, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, 19, 20, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, -1, 755, 756, -1, -1, 759, -1, 761, 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, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, -1, -1, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, -1, -1, -1, -1, 354, 355, 356, 357, 358, -1, -1, 361, 362, 363, 364, 365, -1, -1, -1, 369, 370, 371, 372, 373, -1, 375, 376, 377, 378, -1, -1, -1, -1, -1, -1, 385, -1, 387, -1, 389, 390, -1, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, -1, 423, 424, 425, 426, -1, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, 442, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, -1, -1, -1, -1, -1, 461, 462, 463, 464, 465, 466, -1, 468, 469, -1, 471, 472, -1, -1, 475, -1, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, -1, 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, -1, 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, -1, 569, 570, 571, 572, 573, 574, 575, 576, -1, 578, 579, 580, 581, -1, -1, -1, 585, -1, 587, 588, -1, 590, 591, 592, 593, -1, 595, 596, 597, 598, -1, -1, -1, -1, 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, -1, 630, -1, 632, 633, 634, -1, 636, 637, -1, 639, 640, 641, 642, 643, 644, -1, 646, 647, 648, 649, 650, 651, 652, -1, 654, 655, 656, -1, 658, 659, 660, 661, -1, 663, 664, -1, -1, 667, 668, -1, -1, 671, 672, 673, -1, 675, -1, 677, 678, -1, -1, 681, 682, -1, 684, 685, 686, 687, -1, 689, 690, -1, 692, -1, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, -1, 715, 716, 717, 718, 719, 720, 721, 722, 723, -1, 725, 726, -1, 728, 729, 730, 731, -1, -1, 734, 735, -1, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 19, 20, 755, 756, -1, -1, 759, -1, 761, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 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, -1, 128, 129, 130, 131, 132, -1, -1, 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, -1, -1, -1, 177, 178, 179, 180, 181, 182, 183, -1, -1, -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, -1, 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, -1, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, -1, -1, -1, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 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, -1, 353, -1, 355, -1, -1, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, -1, -1, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, -1, 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, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, -1, -1, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, -1, 456, 457, 458, -1, 460, 461, 462, -1, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, -1, 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, -1, 533, 534, 535, 536, 537, 538, 539, -1, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, -1, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, -1, -1, -1, 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, -1, -1, 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, -1, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, -1, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, -1, -1, 681, 682, -1, 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, -1, 713, 714, -1, 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, -1, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, -1, 754, 755, 756, 757, -1, 759, 760, 761 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { 0, 5, 7, 48, 49, 66, 68, 70, 72, 80, 101, 103, 104, 110, 127, 131, 141, 150, 161, 171, 173, 177, 204, 216, 217, 227, 228, 239, 240, 241, 243, 248, 254, 258, 259, 260, 294, 296, 298, 305, 313, 314, 328, 350, 351, 353, 360, 368, 388, 412, 422, 441, 456, 467, 470, 473, 488, 602, 631, 635, 645, 653, 665, 688, 691, 724, 733, 760, 783, 794, 797, 798, 799, 800, 801, 803, 809, 811, 826, 869, 876, 915, 916, 923, 924, 937, 972, 997, 1015, 1077, 1132, 1233, 1287, 1290, 1300, 1305, 1311, 1324, 1327, 1333, 1336, 1341, 1348, 1360, 1363, 1366, 1367, 1369, 1372, 1373, 1375, 1376, 1379, 1380, 1383, 1624, 1626, 1639, 1642, 1680, 1689, 1707, 1715, 1729, 1733, 1734, 1738, 1739, 1749, 1756, 1764, 1766, 1772, 1775, 1776, 1808, 1863, 1905, 1912, 1914, 1923, 1926, 1962, 1964, 1969, 1970, 1971, 1972, 2002, 2011, 2012, 2013, 2015, 2061, 2066, 2082, 88, 226, 338, 413, 463, 658, 662, 737, 1234, 1976, 1977, 1978, 1979, 197, 460, 506, 1335, 1736, 19, 20, 88, 116, 135, 144, 188, 195, 207, 218, 279, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 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, 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, 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, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 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, 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, 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, 681, 682, 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, 759, 760, 761, 762, 1830, 1832, 1841, 1848, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 2033, 973, 528, 1328, 208, 1690, 88, 145, 214, 226, 289, 324, 436, 463, 644, 662, 710, 737, 746, 866, 867, 868, 1638, 1000, 864, 938, 1640, 1767, 145, 408, 761, 1781, 281, 706, 1908, 998, 1335, 1133, 1016, 57, 528, 1721, 258, 267, 912, 917, 919, 1841, 653, 737, 1908, 1002, 917, 918, 864, 1370, 1864, 1716, 917, 1913, 1681, 1841, 1368, 999, 235, 1810, 1643, 173, 294, 686, 1750, 40, 196, 1420, 1963, 3, 31, 1835, 145, 1908, 756, 1966, 1625, 482, 1841, 1335, 403, 925, 1915, 810, 598, 676, 1841, 1335, 1757, 1966, 1841, 1773, 47, 669, 719, 47, 669, 1708, 598, 676, 351, 352, 388, 427, 602, 619, 645, 688, 2005, 1369, 1376, 1379, 0, 7, 795, 602, 88, 129, 145, 262, 293, 644, 737, 843, 1211, 1212, 1638, 1976, 1977, 1978, 1979, 128, 154, 1386, 1387, 1620, 1364, 1361, 119, 152, 292, 1378, 1973, 1377, 1973, 448, 460, 591, 791, 1735, 1736, 1827, 1841, 1373, 1375, 386, 1253, 1841, 870, 1841, 766, 766, 870, 141, 1637, 21, 1835, 1841, 1843, 1637, 1279, 1280, 268, 1404, 1980, 1981, 1976, 766, 1908, 1360, 1363, 1639, 1642, 1680, 1689, 1732, 791, 877, 311, 953, 954, 974, 977, 980, 822, 823, 1835, 746, 1325, 1908, 328, 143, 178, 475, 614, 1692, 1705, 1706, 1637, 1628, 63, 1637, 318, 1637, 1637, 1637, 1637, 1637, 1637, 658, 1908, 985, 1841, 2037, 47, 48, 80, 84, 101, 110, 131, 145, 150, 173, 232, 236, 254, 258, 259, 289, 296, 297, 353, 393, 436, 441, 452, 453, 607, 611, 617, 628, 634, 665, 669, 700, 1843, 1927, 1931, 1932, 1933, 1935, 1937, 1938, 1939, 1940, 953, 968, 1645, 471, 675, 1768, 154, 1777, 1906, 77, 123, 130, 144, 157, 165, 246, 247, 321, 351, 374, 444, 463, 582, 894, 939, 940, 941, 942, 944, 947, 950, 951, 952, 962, 963, 964, 965, 966, 987, 990, 1832, 1842, 1855, 1856, 1857, 1861, 2034, 2042, 2043, 2044, 2059, 2060, 2061, 2062, 2064, 1908, 3, 8, 9, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 40, 57, 58, 59, 60, 68, 69, 71, 78, 79, 82, 83, 84, 85, 87, 90, 91, 99, 102, 120, 121, 122, 124, 132, 133, 134, 141, 150, 153, 162, 164, 166, 180, 181, 183, 187, 192, 196, 198, 199, 200, 201, 219, 220, 221, 223, 230, 241, 249, 250, 268, 275, 276, 278, 279, 290, 300, 301, 302, 308, 309, 327, 328, 329, 330, 334, 341, 349, 366, 379, 381, 382, 383, 398, 410, 411, 466, 478, 500, 501, 546, 552, 561, 562, 585, 593, 605, 649, 656, 663, 696, 715, 716, 717, 718, 723, 724, 737, 740, 752, 754, 762, 771, 772, 777, 783, 787, 788, 791, 1379, 1385, 1414, 1415, 1416, 1417, 1421, 1432, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1446, 1447, 1448, 1456, 1462, 1463, 1464, 1465, 1466, 1468, 1471, 1800, 1803, 1805, 1806, 1807, 1824, 1831, 1833, 1834, 1841, 1848, 1859, 1860, 65, 1017, 510, 250, 362, 370, 385, 395, 396, 397, 405, 543, 555, 655, 695, 709, 920, 922, 740, 913, 919, 1841, 864, 1637, 894, 988, 919, 47, 333, 611, 1924, 1925, 1933, 1935, 47, 106, 264, 266, 277, 293, 474, 681, 682, 683, 684, 1389, 1396, 1397, 1975, 3, 71, 99, 144, 321, 366, 463, 468, 506, 556, 577, 593, 644, 661, 689, 719, 753, 1176, 1830, 1839, 1850, 1852, 1853, 1854, 1856, 1857, 1858, 1861, 1865, 1875, 1886, 2033, 47, 49, 79, 80, 89, 145, 159, 214, 226, 281, 324, 344, 353, 366, 377, 400, 430, 433, 435, 462, 463, 468, 469, 485, 506, 528, 582, 597, 606, 609, 610, 624, 661, 669, 692, 750, 1176, 1210, 1717, 1721, 1722, 1724, 1733, 1832, 1876, 919, 1908, 178, 1688, 783, 1659, 1668, 953, 2039, 1809, 1645, 1751, 1841, 343, 1966, 1843, 1342, 1301, 50, 1967, 1414, 1487, 804, 299, 806, 1740, 417, 1827, 1829, 1841, 1916, 1843, 141, 1076, 1835, 128, 1306, 528, 613, 669, 1758, 1759, 287, 1967, 749, 1774, 670, 822, 232, 314, 1291, 1292, 1293, 670, 822, 281, 1710, 1637, 1637, 23, 26, 27, 31, 1801, 1802, 1836, 2004, 2004, 2004, 460, 2003, 2004, 2004, 784, 784, 790, 1841, 1076, 1076, 145, 1076, 1076, 662, 848, 145, 145, 281, 658, 226, 289, 436, 867, 868, 1980, 337, 865, 865, 1976, 111, 135, 783, 788, 1385, 1388, 1492, 1495, 1507, 1510, 1511, 1512, 1523, 1524, 1525, 1526, 1528, 1529, 1530, 1827, 211, 423, 1615, 1616, 1621, 312, 1553, 1386, 123, 127, 168, 173, 206, 577, 1398, 1578, 1583, 1584, 1593, 1594, 1598, 226, 1597, 1610, 1620, 47, 106, 1974, 1974, 1974, 1593, 1595, 1379, 1382, 1383, 1594, 1596, 1381, 47, 1841, 1731, 127, 1730, 791, 1365, 1362, 42, 766, 1662, 1663, 1236, 736, 1238, 791, 542, 711, 729, 85, 1843, 1844, 1845, 1931, 1239, 120, 1244, 1243, 864, 281, 143, 581, 1281, 1282, 1283, 657, 436, 746, 1980, 1843, 1312, 1841, 783, 880, 953, 975, 1407, 114, 982, 980, 287, 1326, 1631, 1632, 1827, 128, 1694, 128, 1634, 1635, 1694, 1695, 1696, 1828, 1841, 1705, 1841, 141, 1636, 870, 870, 864, 1843, 864, 1629, 1841, 1637, 1637, 1001, 151, 986, 606, 1936, 647, 647, 707, 710, 737, 746, 783, 1413, 475, 584, 706, 580, 737, 80, 89, 746, 333, 551, 633, 333, 333, 203, 333, 371, 528, 669, 551, 287, 203, 786, 783, 283, 427, 178, 414, 474, 1647, 1649, 393, 613, 1769, 1770, 360, 178, 392, 1783, 1827, 1909, 1910, 311, 1842, 128, 136, 561, 1841, 1842, 1842, 1842, 2065, 1841, 311, 1842, 1841, 427, 2060, 2015, 2016, 953, 967, 1841, 792, 127, 177, 241, 313, 351, 790, 1334, 1472, 19, 20, 30, 1831, 1848, 31, 1802, 153, 771, 772, 1439, 783, 783, 783, 311, 1414, 1490, 1491, 783, 783, 783, 783, 783, 1413, 1413, 1413, 783, 1412, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 1414, 783, 783, 783, 8, 783, 1488, 1489, 1824, 1831, 783, 783, 783, 783, 1414, 1412, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 15, 783, 783, 783, 783, 1413, 1412, 1412, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 31, 783, 783, 783, 783, 783, 783, 783, 783, 740, 783, 783, 783, 740, 783, 783, 783, 783, 31, 783, 783, 783, 31, 783, 783, 783, 783, 783, 783, 783, 783, 153, 1439, 153, 1439, 1439, 1134, 1379, 1414, 1808, 1841, 1831, 33, 41, 50, 208, 315, 1418, 1419, 35, 36, 37, 39, 156, 766, 767, 768, 1422, 55, 151, 167, 238, 677, 1420, 14, 43, 44, 107, 192, 769, 770, 771, 772, 773, 774, 775, 776, 1439, 73, 38, 213, 213, 754, 1836, 791, 783, 15, 1018, 54, 287, 786, 766, 1836, 1338, 1844, 1846, 1337, 735, 1936, 584, 203, 128, 203, 1371, 1397, 3, 1843, 258, 644, 791, 57, 99, 1177, 1178, 1662, 1843, 127, 1662, 1662, 1932, 99, 1831, 1869, 1878, 1866, 57, 99, 1180, 1181, 1843, 791, 1662, 1867, 786, 670, 1736, 783, 88, 214, 226, 281, 289, 324, 436, 463, 658, 737, 746, 167, 312, 1728, 63, 690, 376, 690, 690, 318, 690, 435, 690, 1728, 47, 1091, 1843, 1582, 1583, 1588, 128, 151, 1723, 1725, 376, 690, 127, 690, 706, 676, 47, 355, 399, 401, 491, 541, 588, 678, 702, 1711, 1712, 1713, 822, 477, 822, 1588, 1728, 1725, 510, 429, 378, 608, 706, 722, 1736, 1403, 690, 743, 143, 1278, 1669, 786, 422, 1811, 1812, 1819, 1841, 1648, 1649, 1827, 2067, 786, 1343, 1344, 1345, 1346, 1827, 1631, 363, 568, 239, 568, 1968, 786, 1414, 807, 57, 270, 416, 430, 432, 464, 477, 510, 528, 606, 613, 623, 637, 669, 672, 690, 721, 1741, 1746, 1747, 1832, 1908, 3, 74, 926, 927, 928, 929, 1831, 582, 232, 374, 1420, 1841, 802, 746, 1303, 1908, 1761, 360, 1760, 786, 653, 1841, 1968, 127, 1294, 1295, 1294, 580, 758, 394, 786, 1294, 1294, 1632, 1841, 1835, 786, 579, 2007, 701, 2008, 766, 158, 639, 2006, 7, 796, 1841, 830, 1076, 864, 864, 1076, 834, 836, 1076, 1076, 1076, 841, 842, 1076, 1076, 746, 463, 463, 1980, 783, 1492, 1512, 1524, 1525, 1526, 1527, 1528, 1841, 10, 1394, 81, 147, 158, 166, 193, 249, 277, 1519, 1520, 786, 217, 1521, 1522, 31, 1837, 1837, 3, 1617, 1618, 1619, 1841, 1843, 1554, 136, 1557, 1553, 454, 561, 1585, 296, 8, 28, 30, 32, 251, 1589, 1590, 1803, 1831, 151, 65, 1590, 1582, 1398, 1841, 1398, 1399, 1399, 1382, 1732, 393, 1737, 1801, 1841, 1841, 1594, 1597, 1835, 99, 386, 1073, 1074, 1088, 1089, 1184, 408, 871, 1841, 1413, 3, 871, 1827, 583, 1844, 1845, 1846, 1946, 1950, 1637, 1283, 413, 489, 870, 1827, 746, 1313, 1314, 1632, 791, 878, 881, 882, 1414, 981, 311, 976, 978, 1414, 894, 2018, 427, 812, 1631, 127, 364, 448, 450, 540, 614, 786, 1329, 1330, 1331, 1827, 54, 1691, 1634, 1841, 786, 1698, 127, 1392, 1393, 1553, 791, 1704, 120, 1841, 1930, 1933, 1846, 1945, 1631, 791, 1630, 1627, 422, 2041, 643, 984, 706, 784, 333, 647, 1846, 333, 333, 1946, 281, 866, 1934, 353, 393, 436, 441, 452, 453, 607, 617, 628, 634, 665, 669, 700, 1938, 1940, 1817, 1818, 1831, 969, 141, 1278, 479, 737, 1414, 1771, 1771, 1349, 506, 1782, 53, 766, 1549, 1550, 1551, 572, 749, 786, 1907, 953, 311, 1841, 561, 128, 154, 2014, 2055, 953, 311, 783, 961, 177, 790, 943, 786, 993, 991, 996, 992, 2063, 1631, 3, 1473, 1843, 791, 783, 47, 1481, 1552, 1481, 1481, 1414, 1491, 114, 311, 427, 1414, 1487, 1414, 106, 1481, 1552, 784, 24, 25, 26, 28, 30, 32, 784, 1602, 1606, 1607, 1414, 1414, 1824, 784, 1374, 1375, 1384, 1808, 92, 93, 94, 95, 138, 139, 140, 189, 190, 253, 316, 411, 478, 544, 546, 552, 612, 656, 751, 762, 1546, 1547, 1414, 106, 1474, 1474, 1461, 1414, 1414, 1414, 1546, 1414, 1414, 1414, 1831, 1489, 336, 786, 791, 106, 1481, 1414, 106, 1481, 1414, 1414, 1414, 1414, 1414, 784, 1417, 784, 1414, 1414, 784, 648, 1481, 1481, 106, 1481, 784, 1602, 1481, 1481, 784, 1414, 1414, 1443, 1444, 1445, 64, 163, 288, 1414, 1433, 1434, 1435, 1414, 1414, 106, 1481, 1414, 1414, 1414, 1429, 1430, 1414, 1414, 1486, 1487, 1414, 1414, 409, 410, 715, 718, 1548, 1414, 1414, 1487, 1827, 1414, 1414, 127, 1827, 1486, 1414, 127, 1414, 1414, 1827, 1414, 1414, 1547, 1547, 1414, 1433, 1414, 784, 8, 791, 1825, 1841, 1414, 1486, 1414, 1414, 1414, 784, 786, 1375, 1414, 791, 1414, 1414, 1414, 1416, 122, 201, 290, 734, 1420, 47, 340, 1416, 1423, 1416, 783, 1385, 1416, 1416, 167, 55, 151, 167, 238, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 153, 1417, 153, 1417, 1417, 1417, 1417, 1417, 1182, 1843, 1439, 783, 1470, 1563, 1841, 783, 136, 328, 329, 330, 1831, 1449, 461, 493, 567, 648, 1431, 169, 229, 505, 705, 1019, 1023, 1765, 1835, 922, 410, 715, 718, 921, 1471, 1805, 1824, 786, 287, 1339, 1340, 1827, 953, 786, 127, 1846, 1845, 1947, 866, 1934, 773, 1401, 1402, 1404, 468, 506, 661, 1877, 1662, 1933, 1841, 73, 1414, 1896, 1895, 1894, 791, 791, 1662, 786, 1868, 232, 492, 1897, 1898, 1899, 1900, 1841, 1887, 99, 719, 1831, 1870, 1882, 1872, 1873, 1875, 1886, 690, 127, 773, 1076, 63, 870, 870, 1827, 870, 318, 870, 870, 870, 1827, 1846, 1827, 1403, 1403, 376, 690, 1728, 870, 1728, 1723, 376, 690, 1728, 151, 1726, 510, 553, 690, 1720, 1720, 1728, 1841, 870, 1728, 1845, 1723, 1728, 1835, 490, 703, 451, 127, 1714, 786, 435, 690, 1827, 1725, 1723, 1723, 127, 1728, 1728, 1728, 1495, 1679, 1827, 1404, 1671, 1673, 783, 1666, 2040, 786, 783, 1815, 154, 1650, 2055, 3, 151, 786, 217, 1354, 1356, 1357, 448, 614, 1302, 363, 239, 1414, 805, 99, 143, 808, 1414, 1674, 1675, 510, 510, 510, 510, 360, 510, 822, 510, 786, 1403, 1742, 1843, 921, 931, 786, 766, 1550, 1917, 120, 676, 1414, 1304, 1631, 287, 1763, 822, 1759, 1841, 47, 1289, 627, 685, 1296, 1297, 127, 824, 825, 673, 1293, 824, 1907, 1801, 596, 2009, 1843, 838, 1841, 832, 1930, 1946, 1843, 1076, 1076, 827, 1827, 2083, 1404, 1989, 852, 1404, 870, 870, 1076, 1076, 1076, 746, 1508, 786, 784, 784, 784, 784, 784, 786, 784, 1492, 47, 53, 55, 128, 1395, 1551, 158, 158, 210, 1531, 166, 249, 1519, 1531, 1492, 1510, 783, 1394, 1622, 1843, 786, 791, 1414, 65, 137, 1555, 1557, 251, 649, 1586, 1590, 572, 668, 749, 1400, 1831, 439, 251, 577, 786, 791, 664, 1579, 649, 1586, 1611, 1414, 1237, 1663, 1074, 73, 1176, 418, 191, 231, 268, 386, 398, 498, 568, 873, 875, 1646, 1843, 1646, 1245, 783, 480, 242, 786, 1954, 1827, 1242, 1241, 1827, 786, 595, 1315, 1841, 880, 784, 786, 283, 953, 978, 1405, 68, 108, 142, 179, 481, 511, 512, 514, 515, 516, 517, 518, 520, 521, 522, 523, 524, 525, 526, 527, 529, 530, 531, 532, 625, 626, 813, 814, 821, 127, 1332, 736, 1632, 1330, 1521, 705, 1693, 1700, 791, 1635, 128, 222, 1577, 1578, 773, 1841, 203, 786, 786, 67, 244, 1284, 1841, 1631, 1631, 894, 783, 955, 958, 287, 314, 1929, 773, 1827, 1841, 1944, 1944, 784, 786, 894, 2017, 1650, 1414, 1846, 1350, 1351, 1352, 1353, 1827, 146, 144, 321, 463, 1832, 1838, 1847, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1861, 2033, 178, 232, 758, 1911, 26, 772, 1599, 1601, 1910, 948, 953, 154, 649, 1841, 97, 893, 2056, 945, 953, 955, 956, 960, 1841, 985, 987, 988, 2039, 2055, 1907, 1877, 42, 1831, 1414, 784, 1482, 784, 784, 283, 427, 1414, 1414, 53, 299, 784, 299, 786, 1457, 784, 773, 784, 786, 786, 784, 784, 1375, 128, 784, 1459, 1460, 1414, 786, 786, 786, 772, 784, 786, 784, 786, 786, 784, 783, 1824, 1831, 1481, 784, 784, 1481, 784, 786, 786, 784, 784, 784, 151, 786, 786, 784, 784, 1481, 784, 784, 784, 784, 786, 128, 786, 784, 128, 1414, 128, 1414, 128, 1414, 128, 784, 786, 784, 1481, 784, 784, 786, 786, 784, 786, 786, 786, 784, 784, 784, 786, 784, 784, 786, 784, 784, 784, 1827, 784, 784, 784, 1827, 786, 784, 786, 786, 784, 786, 786, 786, 784, 784, 786, 1831, 1841, 784, 791, 53, 504, 786, 1199, 784, 784, 1546, 1546, 1487, 784, 789, 1831, 122, 201, 290, 734, 783, 50, 1414, 434, 1416, 1416, 783, 1385, 1416, 1416, 1414, 1414, 1564, 217, 1566, 783, 783, 783, 783, 783, 791, 1404, 1453, 1454, 1455, 378, 783, 1028, 1029, 1021, 1028, 1022, 591, 1031, 160, 472, 1414, 766, 1846, 1846, 786, 1907, 427, 131, 1933, 128, 786, 1944, 1944, 786, 1414, 1822, 1831, 791, 791, 791, 99, 144, 321, 463, 577, 753, 1832, 1835, 1840, 1849, 1852, 1853, 1854, 1855, 1857, 1858, 1861, 2033, 1890, 127, 1662, 99, 1182, 1183, 1846, 31, 578, 593, 1902, 1406, 1903, 1841, 1841, 1879, 1878, 127, 580, 758, 504, 786, 786, 1662, 1903, 791, 1871, 791, 1662, 786, 786, 1874, 1414, 784, 1841, 870, 870, 1835, 1414, 870, 1728, 1728, 870, 1728, 1835, 128, 1727, 864, 1728, 613, 1588, 1713, 1726, 824, 1723, 1827, 1728, 1728, 1414, 258, 1521, 1675, 784, 786, 1667, 894, 1812, 1816, 1818, 53, 1651, 1652, 893, 1843, 99, 1347, 1841, 1345, 1827, 1014, 1356, 145, 160, 1208, 1358, 806, 786, 100, 1752, 822, 1747, 1631, 1748, 929, 932, 933, 928, 573, 574, 650, 930, 454, 561, 1841, 1918, 1919, 1835, 1631, 448, 614, 738, 1307, 1308, 1309, 1601, 47, 1762, 670, 786, 365, 1288, 1709, 786, 127, 2010, 1072, 1073, 299, 725, 1220, 1841, 314, 1928, 1954, 849, 1841, 1841, 1827, 829, 870, 2052, 1076, 1076, 2000, 2001, 2000, 1827, 870, 1841, 870, 1076, 1414, 1492, 1492, 789, 576, 715, 719, 1390, 1391, 1441, 1391, 158, 1531, 1531, 1523, 158, 203, 299, 1545, 1841, 1550, 1176, 1179, 1618, 1841, 1414, 1558, 1823, 1556, 753, 1560, 1555, 314, 580, 1587, 1586, 507, 1601, 1590, 1591, 439, 1590, 1590, 1831, 549, 1580, 1823, 123, 783, 1072, 1835, 1663, 1663, 557, 268, 268, 657, 1835, 268, 268, 268, 182, 360, 406, 484, 547, 563, 564, 568, 569, 570, 636, 688, 845, 846, 88, 476, 586, 593, 599, 674, 737, 850, 851, 65, 314, 745, 1948, 270, 369, 494, 566, 697, 759, 1942, 1943, 1950, 314, 1957, 1907, 203, 860, 1250, 783, 1982, 1240, 1314, 127, 879, 1414, 2018, 979, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 786, 824, 736, 1391, 1646, 299, 1841, 1495, 576, 168, 1592, 791, 1704, 1827, 1933, 1846, 1907, 427, 905, 906, 959, 34, 1946, 333, 791, 791, 287, 287, 1817, 970, 1651, 786, 1354, 1356, 1837, 758, 506, 392, 24, 25, 28, 30, 32, 949, 154, 76, 77, 144, 443, 444, 463, 753, 899, 900, 902, 908, 935, 936, 1832, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1861, 2033, 2035, 2046, 2057, 427, 2060, 790, 946, 957, 784, 786, 994, 983, 989, 1842, 989, 989, 893, 1840, 1414, 786, 1414, 1414, 283, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 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, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 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, 177, 178, 179, 180, 181, 182, 183, 187, 189, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 283, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 328, 329, 330, 409, 410, 559, 577, 666, 718, 742, 1140, 1483, 1484, 1485, 1832, 1851, 1852, 1853, 1854, 1855, 1856, 1861, 1862, 2031, 2032, 2033, 1177, 1177, 1483, 1487, 784, 153, 153, 1414, 1487, 1487, 786, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1417, 791, 784, 784, 1414, 1414, 1414, 1414, 1414, 784, 1414, 1414, 1414, 1414, 128, 1414, 128, 1414, 128, 1414, 153, 1414, 784, 1430, 1414, 1429, 1487, 1414, 1414, 1414, 1487, 28, 771, 1599, 1603, 153, 1414, 1414, 1414, 1414, 1414, 791, 791, 1841, 57, 71, 1194, 1195, 1196, 1197, 1198, 1602, 1601, 784, 772, 772, 1384, 1416, 784, 786, 1416, 50, 1414, 434, 1546, 1546, 1565, 1841, 65, 784, 1467, 1486, 1414, 1445, 1486, 1414, 1435, 1486, 1486, 1831, 1414, 784, 786, 783, 1037, 1417, 1029, 168, 1067, 1068, 1602, 699, 1032, 338, 1024, 1020, 921, 287, 1340, 287, 241, 584, 1945, 1845, 128, 128, 1402, 1405, 1405, 791, 791, 791, 1662, 1406, 1846, 1889, 1662, 783, 783, 47, 57, 99, 203, 1414, 1904, 1662, 1662, 1903, 797, 232, 632, 659, 1901, 1899, 1898, 1888, 1841, 1897, 1841, 1883, 1872, 1873, 1882, 433, 750, 1599, 1604, 1718, 30, 1727, 1553, 1723, 1684, 1685, 1825, 1392, 1405, 1404, 1670, 1672, 1675, 427, 784, 783, 1644, 1633, 1827, 427, 1355, 783, 1675, 766, 824, 127, 314, 1743, 1744, 766, 786, 36, 37, 454, 499, 561, 604, 766, 767, 768, 1920, 1922, 1553, 127, 128, 1310, 1308, 824, 1297, 1835, 735, 1298, 2014, 2036, 1601, 545, 358, 472, 652, 1226, 1226, 203, 1220, 333, 1957, 126, 203, 203, 828, 844, 845, 2053, 1990, 870, 2086, 386, 875, 1997, 1998, 1999, 2087, 839, 2085, 641, 2084, 1827, 786, 1391, 31, 1417, 50, 287, 1492, 1523, 158, 158, 1492, 1523, 1513, 1514, 784, 786, 1540, 1541, 1178, 1623, 16, 17, 786, 1559, 51, 104, 1581, 1414, 1470, 1561, 1562, 1560, 714, 1587, 1591, 1400, 786, 1581, 1585, 1404, 1612, 1613, 1614, 1183, 1178, 408, 408, 413, 489, 1663, 1663, 65, 1663, 1665, 1663, 182, 547, 314, 1663, 1664, 1664, 846, 1246, 1835, 1835, 1835, 1835, 1601, 1835, 1835, 784, 786, 31, 593, 1843, 1951, 1952, 31, 31, 31, 50, 1941, 533, 534, 537, 538, 539, 1955, 1956, 331, 593, 1249, 1235, 390, 654, 240, 1251, 1841, 1983, 53, 1982, 47, 378, 1316, 880, 283, 783, 783, 1601, 783, 1601, 1601, 1835, 1835, 1604, 1835, 1601, 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1601, 1835, 404, 568, 671, 1806, 122, 290, 1601, 1609, 1835, 1601, 814, 1495, 1553, 1403, 251, 1590, 245, 1702, 1907, 1284, 127, 907, 784, 1406, 958, 314, 1959, 584, 773, 773, 1946, 1946, 113, 114, 115, 971, 1641, 1352, 1827, 1356, 143, 1359, 1778, 56, 57, 61, 62, 71, 96, 109, 125, 153, 155, 174, 175, 176, 184, 185, 186, 202, 234, 258, 261, 284, 285, 286, 306, 307, 354, 356, 357, 373, 409, 410, 431, 455, 496, 558, 559, 574, 575, 616, 649, 712, 715, 718, 725, 742, 762, 1138, 1140, 1141, 1142, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 470, 74, 86, 786, 790, 1406, 956, 2041, 427, 791, 1414, 1414, 783, 1159, 1160, 1162, 1162, 783, 1155, 1156, 1160, 783, 1156, 1164, 95, 155, 1160, 1159, 1161, 1163, 1162, 155, 1163, 1160, 784, 784, 784, 784, 1458, 1414, 1414, 784, 206, 1476, 1476, 1414, 786, 786, 784, 786, 784, 784, 784, 151, 1450, 1451, 1831, 784, 784, 784, 784, 784, 786, 127, 786, 1414, 1414, 1414, 1414, 784, 784, 53, 1424, 784, 53, 784, 784, 784, 28, 30, 30, 784, 786, 1414, 784, 784, 786, 786, 784, 1831, 1841, 791, 783, 1189, 1189, 51, 104, 643, 771, 1191, 1192, 1193, 786, 786, 1414, 1414, 784, 1487, 1416, 784, 786, 1416, 1566, 1558, 206, 1469, 784, 784, 784, 784, 784, 784, 783, 1405, 1455, 1025, 1026, 1027, 1841, 784, 1604, 153, 65, 783, 1039, 766, 783, 1029, 1846, 1827, 128, 1947, 1947, 53, 1410, 1835, 1841, 773, 1831, 1841, 1841, 1891, 1414, 1903, 1902, 31, 31, 1405, 1405, 1405, 1881, 1880, 387, 728, 232, 1903, 1662, 1662, 1903, 24, 25, 28, 30, 32, 1588, 1719, 1728, 786, 1682, 1662, 1550, 1675, 784, 786, 313, 1374, 11, 12, 258, 1009, 1374, 1653, 1655, 1658, 1521, 783, 225, 1542, 1543, 1544, 1841, 783, 1745, 232, 250, 362, 370, 385, 395, 396, 397, 405, 543, 555, 640, 655, 695, 709, 934, 933, 1921, 1588, 736, 554, 513, 679, 680, 821, 1299, 1827, 203, 1845, 1249, 408, 1827, 1827, 11, 13, 18, 145, 167, 215, 272, 273, 274, 292, 346, 348, 368, 386, 393, 408, 415, 430, 487, 497, 535, 548, 587, 593, 617, 651, 658, 692, 707, 708, 720, 757, 1005, 1007, 1078, 1080, 1081, 1083, 1084, 1085, 1087, 1088, 1089, 1096, 1832, 1078, 783, 890, 870, 853, 2019, 1835, 1997, 2019, 1982, 783, 892, 2024, 96, 155, 234, 694, 1094, 2024, 840, 1509, 1391, 1391, 203, 1516, 1523, 1523, 203, 1518, 1414, 783, 1014, 1841, 1538, 1539, 378, 1785, 1823, 53, 786, 1823, 1586, 1590, 1414, 784, 786, 1603, 1603, 1603, 1603, 1603, 1603, 1646, 851, 31, 53, 299, 1949, 1953, 208, 1942, 1601, 1601, 1601, 1806, 771, 1599, 1600, 1955, 173, 294, 1247, 446, 46, 48, 49, 70, 72, 78, 110, 173, 204, 206, 217, 240, 338, 375, 419, 420, 426, 438, 459, 483, 550, 618, 629, 630, 631, 724, 1012, 1079, 1081, 1254, 1259, 1261, 1264, 1270, 1271, 1272, 1275, 1276, 1574, 1420, 1965, 342, 437, 854, 287, 419, 426, 856, 784, 786, 1984, 1985, 53, 47, 783, 1317, 2018, 817, 818, 1601, 819, 820, 1601, 815, 816, 1601, 1553, 1699, 1841, 439, 251, 1703, 1697, 1404, 1414, 131, 1954, 1954, 968, 2017, 968, 1653, 1359, 502, 143, 328, 1784, 1162, 1162, 391, 1160, 1168, 1170, 1155, 224, 1155, 1168, 57, 71, 73, 306, 341, 359, 732, 1143, 1148, 1150, 1170, 1176, 1185, 1187, 1143, 1168, 1143, 1155, 783, 1168, 1143, 1162, 1162, 1143, 1162, 783, 1155, 1168, 71, 307, 307, 310, 1155, 1162, 725, 783, 898, 1162, 1162, 1162, 576, 1162, 1162, 901, 1155, 310, 1162, 1162, 1162, 1162, 1162, 1164, 127, 127, 2058, 1841, 1414, 995, 983, 1841, 24, 28, 30, 32, 1186, 1187, 30, 30, 1161, 1186, 1186, 784, 1546, 1546, 65, 256, 1475, 168, 1478, 1479, 784, 1414, 1414, 1487, 193, 357, 784, 314, 1452, 1414, 1414, 1414, 1546, 96, 109, 125, 155, 234, 295, 409, 410, 558, 559, 718, 1148, 1149, 1425, 1426, 1427, 1428, 1483, 1609, 1546, 1414, 1414, 1841, 1602, 784, 1199, 1194, 1192, 1194, 1195, 1601, 784, 1487, 206, 1567, 65, 784, 1486, 1410, 784, 786, 347, 1070, 1414, 1023, 217, 1040, 1041, 1042, 1602, 1025, 1947, 1835, 1841, 791, 1662, 1662, 1903, 1405, 784, 784, 1903, 1903, 1885, 1884, 1588, 1685, 1553, 99, 1674, 1540, 1405, 1675, 784, 1656, 1657, 1820, 1821, 1825, 1841, 1808, 1654, 1702, 1658, 47, 1260, 1268, 1269, 1841, 784, 786, 1604, 1753, 1754, 447, 173, 783, 766, 766, 766, 786, 831, 1827, 757, 835, 837, 75, 594, 791, 1097, 1098, 1099, 1100, 1108, 1109, 1114, 1115, 1116, 1208, 1211, 1212, 1826, 1841, 167, 744, 418, 1827, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 418, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 421, 541, 1841, 1663, 1663, 1010, 1011, 1012, 786, 1080, 1662, 1006, 891, 872, 54, 335, 1003, 203, 226, 463, 2014, 2079, 2080, 2081, 97, 226, 463, 2027, 2028, 2029, 2068, 2069, 2074, 2081, 53, 883, 884, 641, 2026, 676, 2026, 1982, 22, 29, 31, 1493, 1515, 299, 1517, 299, 1545, 143, 298, 459, 1533, 1534, 1537, 117, 118, 205, 282, 1786, 1787, 170, 1788, 1581, 1563, 1562, 1581, 1587, 1586, 1405, 1614, 593, 1835, 1951, 30, 30, 593, 99, 153, 560, 1248, 75, 217, 384, 594, 704, 1100, 1108, 1109, 1277, 1208, 1277, 217, 1277, 217, 217, 281, 287, 75, 126, 217, 594, 704, 1113, 1208, 1277, 1663, 217, 65, 1014, 53, 287, 384, 766, 1208, 1286, 1663, 217, 159, 707, 159, 217, 707, 1277, 217, 592, 217, 217, 217, 1079, 786, 1011, 1259, 783, 1099, 603, 1414, 1414, 203, 860, 870, 203, 386, 861, 1841, 1646, 1374, 1984, 1318, 485, 784, 786, 784, 786, 784, 786, 1701, 1646, 128, 439, 1401, 1646, 1360, 1808, 1405, 584, 314, 1958, 1958, 203, 1676, 154, 1168, 1167, 1662, 1168, 295, 317, 666, 1157, 1158, 1158, 1185, 99, 1182, 1168, 1143, 1186, 1177, 57, 73, 391, 1171, 1158, 1232, 1801, 1168, 1232, 1158, 310, 1158, 1168, 576, 896, 897, 1841, 2038, 99, 2014, 2045, 1143, 895, 935, 1143, 1158, 2045, 237, 1154, 1186, 57, 1188, 1143, 1168, 1158, 1158, 903, 911, 912, 1601, 783, 904, 1405, 989, 784, 784, 784, 784, 786, 784, 784, 1477, 1823, 1801, 1478, 1480, 1589, 784, 784, 786, 784, 498, 549, 613, 784, 784, 1155, 155, 1163, 71, 1163, 1186, 784, 784, 786, 784, 784, 784, 1190, 784, 786, 784, 65, 229, 251, 1568, 1569, 1823, 784, 1027, 1546, 160, 472, 784, 786, 1043, 784, 773, 1893, 1892, 1903, 1903, 824, 1577, 406, 1813, 784, 786, 791, 1375, 1660, 1661, 1825, 1646, 784, 786, 1543, 784, 786, 50, 1755, 1672, 1835, 1835, 1835, 821, 783, 833, 1843, 783, 783, 1231, 1826, 10, 127, 1110, 1841, 784, 786, 72, 126, 225, 293, 1112, 1207, 1114, 1076, 1208, 1209, 1209, 1117, 791, 1827, 1663, 99, 1601, 1608, 99, 1601, 99, 1601, 99, 1601, 1082, 1604, 1601, 1601, 1835, 1835, 1663, 1601, 1843, 454, 499, 568, 1093, 1601, 1604, 1604, 99, 1601, 1835, 99, 389, 391, 425, 455, 588, 622, 1092, 1608, 1601, 1608, 1008, 1784, 1080, 26, 28, 30, 32, 99, 1605, 1606, 1835, 1841, 1078, 148, 151, 212, 886, 887, 888, 889, 1841, 2047, 2048, 2049, 873, 874, 1965, 2054, 101, 150, 296, 1004, 654, 1409, 2072, 1409, 2070, 427, 2081, 900, 935, 2072, 2070, 893, 2030, 2027, 2069, 2074, 1984, 784, 885, 2048, 1995, 1996, 872, 2050, 1835, 2050, 53, 31, 378, 1496, 1414, 783, 1414, 783, 784, 1208, 1208, 1534, 65, 65, 117, 65, 1787, 271, 282, 1789, 1790, 1587, 783, 446, 30, 331, 141, 1076, 141, 1075, 744, 1075, 1636, 1636, 1335, 1636, 1260, 1269, 1827, 1176, 1636, 160, 1637, 10, 1636, 744, 225, 1636, 1636, 99, 1841, 1335, 1575, 1576, 1825, 1013, 1636, 1636, 1827, 99, 1841, 1335, 1269, 1636, 1335, 1335, 1335, 1260, 46, 78, 110, 1272, 1095, 1097, 335, 454, 1285, 1546, 669, 1835, 422, 1252, 314, 1986, 1646, 1321, 1841, 47, 783, 1319, 818, 820, 816, 1646, 1417, 1405, 131, 1955, 1960, 1961, 424, 1702, 281, 1841, 317, 295, 99, 1182, 1167, 784, 786, 784, 895, 784, 786, 1138, 1406, 2045, 791, 766, 1188, 209, 265, 269, 909, 910, 911, 914, 1420, 1841, 885, 127, 30, 786, 1581, 784, 1414, 549, 445, 1604, 784, 1601, 1580, 784, 55, 403, 410, 715, 718, 727, 1570, 1571, 1805, 1581, 687, 1069, 1024, 783, 1030, 1042, 1044, 1841, 1903, 1903, 1592, 1814, 1820, 773, 1841, 784, 786, 1662, 1269, 1754, 419, 784, 1228, 1230, 1841, 783, 583, 1228, 1228, 783, 1841, 1098, 783, 160, 160, 1209, 1076, 236, 1201, 1231, 1841, 1076, 1076, 144, 354, 356, 357, 373, 409, 410, 431, 455, 496, 558, 559, 574, 575, 616, 660, 712, 715, 718, 742, 762, 935, 1118, 1139, 1141, 1832, 1852, 1853, 1854, 1855, 1856, 1861, 2033, 1841, 784, 1835, 783, 1835, 53, 1071, 1010, 784, 786, 886, 649, 725, 1138, 105, 2060, 203, 854, 1841, 790, 1841, 790, 1408, 790, 2019, 2077, 2019, 2075, 427, 2088, 786, 1138, 2051, 2022, 2022, 1984, 783, 784, 1545, 1545, 127, 1532, 1532, 1801, 1801, 65, 1801, 65, 65, 1790, 31, 1248, 411, 1247, 1420, 1335, 1420, 1110, 1841, 1826, 1260, 1826, 1256, 287, 1258, 1178, 1826, 1636, 1268, 127, 160, 1826, 1826, 1260, 786, 1581, 1017, 1841, 1826, 1602, 314, 1116, 1260, 1265, 1260, 784, 1841, 855, 862, 863, 72, 361, 506, 784, 786, 1320, 287, 584, 1961, 1677, 1646, 1827, 1186, 1801, 1186, 2045, 896, 1414, 1841, 30, 786, 2060, 461, 784, 906, 784, 1823, 784, 784, 784, 727, 1571, 1572, 1805, 649, 601, 440, 1573, 601, 1805, 1070, 783, 1037, 1033, 99, 303, 304, 403, 475, 1045, 1683, 1818, 791, 1661, 1675, 367, 784, 786, 1581, 783, 1228, 783, 784, 784, 1841, 783, 1414, 1076, 1231, 1841, 1827, 299, 1219, 725, 1231, 1231, 1120, 791, 1111, 1112, 1119, 791, 1748, 1009, 1008, 2048, 725, 898, 576, 6, 847, 1404, 859, 860, 2073, 2071, 2022, 1409, 790, 1409, 790, 1408, 2048, 2059, 195, 1497, 1498, 1841, 1550, 784, 784, 136, 158, 206, 1536, 1535, 1801, 1801, 1801, 784, 120, 1262, 120, 144, 196, 1227, 110, 258, 1116, 1329, 281, 287, 73, 1826, 1841, 1284, 1255, 1576, 287, 287, 281, 1285, 1266, 1268, 1257, 687, 857, 2060, 584, 72, 72, 1841, 225, 1322, 1323, 1841, 1417, 160, 1521, 1405, 791, 910, 1581, 458, 50, 458, 136, 403, 568, 714, 1035, 1036, 1841, 784, 698, 1038, 1047, 713, 145, 386, 393, 408, 535, 548, 565, 707, 1061, 1062, 1063, 1066, 1083, 1722, 1646, 244, 773, 1907, 1230, 30, 786, 1229, 850, 1907, 1907, 786, 1841, 784, 1231, 1219, 725, 783, 1202, 1226, 1101, 1226, 1103, 1104, 18, 225, 293, 386, 495, 755, 1083, 1121, 1122, 1131, 1173, 1174, 1175, 1200, 1420, 1141, 73, 99, 201, 203, 346, 465, 660, 1125, 1127, 1165, 1166, 1174, 1841, 784, 1086, 1087, 576, 1841, 1991, 856, 890, 2025, 2024, 2078, 2076, 2022, 847, 218, 784, 786, 1499, 65, 65, 783, 783, 1826, 591, 783, 1263, 144, 99, 99, 1285, 1827, 217, 1183, 1335, 1841, 1826, 1827, 1267, 1307, 1414, 428, 858, 847, 584, 584, 784, 786, 296, 1779, 1841, 1572, 649, 209, 323, 784, 786, 1602, 783, 1049, 1051, 1046, 418, 1663, 1663, 418, 1663, 1663, 1663, 1663, 783, 1056, 1063, 430, 299, 386, 497, 725, 747, 1083, 1213, 1216, 1221, 1222, 1223, 1227, 1581, 784, 1841, 784, 784, 314, 1214, 1218, 1222, 1225, 1215, 1217, 1222, 1224, 1841, 786, 1107, 1105, 1226, 1203, 1841, 180, 1204, 783, 1102, 783, 783, 160, 1835, 704, 1174, 744, 160, 201, 1182, 19, 20, 771, 772, 783, 1135, 1136, 1137, 1385, 1436, 1804, 296, 339, 99, 53, 391, 1166, 1172, 1841, 791, 1827, 861, 872, 2026, 2021, 2060, 2020, 2059, 1493, 1498, 127, 1142, 1144, 1145, 1146, 1501, 1502, 1542, 1544, 1112, 1602, 1040, 1137, 314, 755, 1273, 1042, 1273, 154, 1414, 1323, 1678, 1179, 1034, 1036, 783, 1050, 1051, 1052, 182, 1048, 1051, 1663, 1835, 1835, 1663, 1605, 1605, 1602, 1843, 699, 1057, 1058, 1663, 1226, 1835, 1663, 1226, 1274, 1275, 1276, 1223, 755, 1907, 589, 1274, 1225, 1274, 1224, 784, 1841, 783, 783, 1106, 784, 786, 462, 590, 667, 203, 1205, 1228, 783, 1228, 1228, 426, 1169, 1806, 1806, 1134, 198, 740, 649, 1135, 1167, 1165, 791, 1841, 127, 422, 872, 6, 2023, 2023, 1500, 207, 120, 218, 784, 784, 784, 739, 739, 1014, 1273, 1014, 783, 1686, 1687, 1825, 1780, 1038, 784, 786, 182, 1054, 1055, 1417, 1835, 1835, 1059, 784, 786, 1090, 1843, 1601, 1276, 1275, 585, 1213, 1832, 784, 1228, 1228, 783, 1841, 101, 296, 784, 1228, 784, 784, 784, 783, 1411, 427, 688, 1126, 1841, 791, 1404, 862, 1496, 218, 1493, 1014, 1040, 786, 1662, 251, 1791, 1051, 786, 1053, 1060, 1843, 1058, 1274, 784, 1229, 1228, 67, 244, 258, 568, 1206, 1206, 1213, 784, 1214, 1215, 784, 1602, 1123, 1124, 1173, 1123, 595, 693, 748, 1128, 1841, 1992, 1493, 99, 201, 432, 1503, 1504, 1505, 1506, 784, 1687, 1675, 480, 1785, 1055, 784, 1064, 1065, 1066, 1201, 784, 1229, 99, 201, 332, 203, 203, 1213, 784, 1173, 1129, 1130, 1131, 112, 24, 25, 28, 30, 1493, 1494, 203, 1504, 1506, 1504, 1505, 65, 1788, 1066, 1213, 784, 296, 101, 1131, 649, 116, 432, 203, 203, 1801, 143, 1792, 1213, 1206, 1206, 1993, 30, 783, 1794, 457, 600, 1987, 1988, 170, 251, 1793, 3, 784, 1795, 1796, 1825, 258, 1797, 1843, 1994, 1843, 784, 786, 1798, 1799, 1825, 1646, 2060, 1796, 786, 1662, 847, 1799, 1404, 1675, 1405 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int16 yyr1[] = { 0, 793, 794, 795, 794, 794, 796, 796, 797, 797, 797, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 799, 800, 800, 802, 801, 803, 804, 805, 803, 806, 807, 806, 808, 808, 810, 809, 812, 811, 813, 813, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 815, 815, 815, 816, 817, 817, 817, 818, 819, 819, 819, 820, 821, 821, 821, 821, 821, 821, 821, 821, 822, 822, 823, 824, 824, 825, 827, 828, 826, 829, 826, 830, 831, 826, 832, 833, 826, 834, 835, 826, 836, 837, 826, 838, 826, 839, 826, 840, 826, 841, 826, 842, 826, 826, 826, 843, 826, 826, 844, 844, 845, 845, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 847, 847, 849, 848, 850, 850, 851, 851, 851, 851, 851, 851, 851, 853, 852, 855, 854, 854, 856, 856, 856, 856, 857, 857, 858, 858, 859, 859, 860, 861, 861, 863, 862, 864, 865, 865, 866, 866, 866, 866, 867, 867, 868, 868, 869, 869, 870, 870, 871, 871, 872, 872, 873, 873, 873, 873, 873, 873, 873, 874, 874, 875, 875, 877, 876, 878, 876, 879, 876, 880, 880, 881, 881, 882, 882, 883, 884, 883, 885, 885, 886, 887, 887, 888, 888, 889, 889, 889, 891, 890, 892, 893, 893, 894, 894, 895, 895, 895, 896, 897, 897, 898, 899, 901, 900, 900, 900, 903, 902, 904, 904, 905, 907, 906, 908, 908, 908, 908, 909, 909, 910, 911, 911, 912, 913, 913, 914, 914, 914, 914, 914, 914, 915, 915, 916, 917, 917, 918, 918, 919, 919, 920, 920, 921, 921, 921, 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 923, 924, 925, 925, 926, 926, 927, 927, 928, 929, 929, 930, 930, 930, 931, 932, 932, 933, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 935, 935, 936, 936, 938, 937, 940, 939, 941, 941, 943, 942, 942, 944, 944, 945, 944, 946, 944, 947, 947, 948, 947, 949, 947, 950, 951, 952, 954, 953, 955, 957, 956, 959, 958, 960, 960, 961, 961, 962, 962, 962, 963, 964, 964, 964, 965, 965, 966, 967, 967, 969, 970, 968, 971, 971, 971, 971, 973, 972, 975, 974, 974, 976, 976, 977, 977, 979, 978, 981, 980, 982, 982, 983, 983, 984, 984, 985, 986, 986, 986, 987, 988, 989, 991, 990, 992, 990, 993, 994, 995, 990, 996, 990, 998, 997, 999, 997, 1000, 1001, 997, 1002, 997, 1003, 1003, 1004, 1004, 1004, 1006, 1005, 1005, 1005, 1007, 1007, 1008, 1008, 1009, 1009, 1010, 1011, 1011, 1013, 1012, 1014, 1016, 1015, 1018, 1017, 1019, 1020, 1019, 1019, 1019, 1021, 1019, 1019, 1022, 1019, 1023, 1023, 1024, 1024, 1025, 1025, 1026, 1026, 1027, 1028, 1029, 1030, 1031, 1031, 1032, 1033, 1032, 1034, 1032, 1035, 1035, 1036, 1037, 1038, 1038, 1039, 1039, 1040, 1040, 1041, 1041, 1043, 1042, 1044, 1045, 1046, 1045, 1047, 1045, 1045, 1045, 1045, 1048, 1048, 1049, 1049, 1050, 1050, 1052, 1053, 1051, 1054, 1054, 1055, 1055, 1056, 1056, 1057, 1057, 1059, 1058, 1060, 1061, 1061, 1062, 1062, 1063, 1063, 1064, 1064, 1065, 1065, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1067, 1068, 1067, 1067, 1069, 1069, 1070, 1070, 1071, 1071, 1072, 1072, 1073, 1073, 1074, 1074, 1074, 1075, 1075, 1076, 1076, 1077, 1077, 1078, 1078, 1079, 1079, 1080, 1080, 1080, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1082, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1083, 1083, 1083, 1083, 1084, 1084, 1085, 1085, 1086, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1093, 1093, 1093, 1094, 1094, 1094, 1094, 1095, 1096, 1097, 1097, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1101, 1100, 1102, 1100, 1103, 1100, 1104, 1100, 1105, 1100, 1106, 1100, 1107, 1100, 1108, 1109, 1110, 1111, 1111, 1112, 1113, 1113, 1114, 1114, 1115, 1117, 1116, 1119, 1118, 1120, 1118, 1121, 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1125, 1125, 1125, 1125, 1126, 1125, 1125, 1125, 1127, 1127, 1128, 1128, 1128, 1128, 1129, 1129, 1130, 1130, 1131, 1131, 1131, 1131, 1133, 1132, 1134, 1134, 1135, 1135, 1136, 1136, 1137, 1137, 1138, 1139, 1139, 1140, 1140, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, 1147, 1148, 1149, 1149, 1150, 1150, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153, 1154, 1154, 1155, 1155, 1155, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1158, 1159, 1159, 1159, 1159, 1160, 1161, 1162, 1162, 1163, 1163, 1164, 1164, 1165, 1165, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, 1167, 1168, 1168, 1169, 1169, 1170, 1171, 1172, 1173, 1173, 1173, 1174, 1174, 1174, 1175, 1175, 1176, 1176, 1177, 1177, 1178, 1178, 1179, 1179, 1180, 1180, 1181, 1181, 1182, 1183, 1183, 1184, 1184, 1185, 1185, 1185, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1190, 1189, 1191, 1191, 1192, 1193, 1193, 1193, 1193, 1194, 1195, 1196, 1196, 1197, 1198, 1198, 1199, 1199, 1200, 1200, 1201, 1202, 1202, 1203, 1203, 1204, 1204, 1204, 1204, 1205, 1205, 1205, 1205, 1205, 1206, 1206, 1206, 1206, 1206, 1207, 1207, 1208, 1208, 1209, 1209, 1210, 1210, 1210, 1211, 1212, 1213, 1213, 1214, 1214, 1215, 1215, 1216, 1216, 1217, 1217, 1218, 1218, 1219, 1219, 1220, 1220, 1220, 1221, 1221, 1222, 1222, 1222, 1222, 1222, 1223, 1223, 1224, 1225, 1225, 1226, 1226, 1226, 1227, 1227, 1228, 1228, 1229, 1229, 1230, 1230, 1231, 1231, 1232, 1232, 1234, 1235, 1233, 1236, 1233, 1237, 1233, 1233, 1238, 1233, 1239, 1233, 1240, 1233, 1241, 1233, 1242, 1233, 1243, 1233, 1233, 1244, 1245, 1246, 1233, 1247, 1247, 1248, 1248, 1248, 1248, 1249, 1249, 1249, 1249, 1249, 1250, 1250, 1250, 1250, 1251, 1251, 1252, 1252, 1253, 1253, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1255, 1254, 1254, 1256, 1254, 1257, 1254, 1254, 1254, 1254, 1254, 1254, 1258, 1254, 1259, 1260, 1260, 1262, 1261, 1263, 1263, 1263, 1265, 1264, 1266, 1267, 1266, 1268, 1268, 1269, 1270, 1270, 1271, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273, 1273, 1273, 1274, 1274, 1274, 1274, 1274, 1275, 1275, 1276, 1276, 1277, 1277, 1278, 1278, 1280, 1279, 1281, 1281, 1282, 1282, 1283, 1283, 1284, 1284, 1284, 1285, 1285, 1285, 1286, 1286, 1286, 1286, 1288, 1287, 1289, 1287, 1287, 1287, 1290, 1291, 1291, 1292, 1292, 1293, 1293, 1293, 1295, 1294, 1296, 1296, 1297, 1297, 1297, 1298, 1298, 1298, 1298, 1298, 1299, 1299, 1301, 1300, 1302, 1302, 1302, 1303, 1304, 1303, 1306, 1305, 1307, 1307, 1308, 1308, 1309, 1309, 1309, 1310, 1310, 1310, 1312, 1311, 1313, 1313, 1314, 1315, 1315, 1316, 1316, 1317, 1318, 1317, 1319, 1320, 1319, 1321, 1321, 1321, 1322, 1322, 1322, 1323, 1323, 1324, 1324, 1325, 1326, 1325, 1328, 1327, 1329, 1329, 1330, 1330, 1331, 1331, 1331, 1331, 1331, 1331, 1332, 1332, 1334, 1333, 1335, 1335, 1335, 1337, 1336, 1336, 1338, 1338, 1339, 1339, 1340, 1342, 1341, 1343, 1343, 1344, 1344, 1345, 1346, 1347, 1347, 1349, 1348, 1350, 1350, 1351, 1351, 1352, 1353, 1355, 1354, 1357, 1356, 1358, 1358, 1359, 1359, 1361, 1360, 1362, 1360, 1364, 1363, 1365, 1363, 1366, 1366, 1368, 1367, 1370, 1371, 1369, 1372, 1373, 1374, 1374, 1375, 1375, 1377, 1376, 1378, 1376, 1379, 1379, 1380, 1381, 1380, 1380, 1382, 1382, 1383, 1384, 1385, 1385, 1386, 1386, 1387, 1388, 1388, 1389, 1389, 1390, 1390, 1390, 1391, 1391, 1391, 1392, 1393, 1393, 1394, 1394, 1395, 1395, 1395, 1395, 1396, 1396, 1397, 1397, 1397, 1398, 1398, 1399, 1399, 1400, 1400, 1400, 1400, 1401, 1401, 1401, 1402, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1410, 1410, 1410, 1410, 1411, 1411, 1411, 1412, 1412, 1412, 1413, 1413, 1414, 1414, 1414, 1414, 1414, 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, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1418, 1418, 1419, 1419, 1420, 1420, 1421, 1421, 1422, 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1424, 1424, 1425, 1425, 1425, 1426, 1426, 1426, 1426, 1426, 1426, 1427, 1427, 1427, 1428, 1428, 1429, 1430, 1430, 1431, 1431, 1431, 1431, 1432, 1433, 1433, 1434, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437, 1438, 1438, 1439, 1439, 1439, 1439, 1439, 1439, 1440, 1440, 1441, 1441, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1443, 1443, 1444, 1444, 1445, 1445, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1449, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1450, 1450, 1451, 1451, 1452, 1452, 1453, 1453, 1454, 1454, 1455, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1457, 1458, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1459, 1456, 1460, 1456, 1461, 1456, 1462, 1462, 1463, 1463, 1463, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1465, 1467, 1466, 1466, 1468, 1468, 1469, 1470, 1472, 1471, 1473, 1473, 1473, 1473, 1474, 1474, 1475, 1475, 1476, 1476, 1477, 1477, 1478, 1478, 1479, 1480, 1482, 1481, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1485, 1485, 1485, 1485, 1486, 1486, 1487, 1487, 1488, 1488, 1489, 1489, 1490, 1490, 1491, 1491, 1492, 1492, 1493, 1493, 1493, 1494, 1494, 1494, 1494, 1494, 1495, 1496, 1497, 1497, 1499, 1498, 1500, 1498, 1501, 1501, 1501, 1502, 1502, 1502, 1502, 1503, 1503, 1503, 1503, 1503, 1504, 1504, 1504, 1505, 1506, 1508, 1509, 1507, 1510, 1510, 1511, 1511, 1512, 1513, 1512, 1514, 1512, 1512, 1515, 1512, 1516, 1512, 1512, 1517, 1512, 1518, 1512, 1512, 1519, 1519, 1519, 1520, 1520, 1521, 1521, 1522, 1523, 1523, 1523, 1523, 1523, 1524, 1524, 1525, 1525, 1526, 1526, 1527, 1527, 1528, 1528, 1529, 1530, 1531, 1531, 1532, 1532, 1532, 1532, 1533, 1533, 1535, 1534, 1536, 1534, 1537, 1537, 1538, 1539, 1538, 1541, 1540, 1542, 1542, 1543, 1543, 1544, 1544, 1545, 1545, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1548, 1548, 1548, 1548, 1549, 1549, 1549, 1550, 1550, 1551, 1552, 1552, 1553, 1554, 1553, 1555, 1556, 1555, 1557, 1557, 1558, 1558, 1559, 1559, 1559, 1560, 1560, 1561, 1561, 1562, 1564, 1563, 1565, 1565, 1566, 1566, 1567, 1567, 1568, 1568, 1569, 1569, 1570, 1570, 1571, 1571, 1571, 1572, 1572, 1572, 1573, 1573, 1573, 1573, 1573, 1573, 1574, 1575, 1575, 1576, 1577, 1577, 1579, 1578, 1580, 1580, 1581, 1581, 1581, 1582, 1582, 1583, 1583, 1583, 1583, 1584, 1584, 1584, 1584, 1584, 1585, 1585, 1586, 1586, 1587, 1587, 1588, 1589, 1589, 1589, 1590, 1590, 1590, 1590, 1590, 1590, 1591, 1592, 1592, 1592, 1592, 1593, 1593, 1593, 1594, 1594, 1595, 1596, 1597, 1597, 1597, 1598, 1598, 1599, 1599, 1600, 1600, 1601, 1601, 1601, 1601, 1601, 1601, 1602, 1602, 1602, 1602, 1602, 1603, 1603, 1603, 1603, 1604, 1604, 1604, 1604, 1604, 1605, 1605, 1605, 1605, 1605, 1606, 1607, 1607, 1608, 1608, 1609, 1609, 1609, 1611, 1610, 1612, 1612, 1613, 1613, 1614, 1616, 1615, 1617, 1617, 1618, 1619, 1619, 1619, 1620, 1622, 1623, 1621, 1621, 1621, 1625, 1624, 1627, 1626, 1628, 1626, 1626, 1626, 1626, 1629, 1626, 1626, 1626, 1626, 1630, 1626, 1626, 1631, 1631, 1632, 1633, 1634, 1634, 1635, 1636, 1636, 1637, 1637, 1638, 1638, 1640, 1641, 1639, 1643, 1644, 1642, 1645, 1646, 1647, 1647, 1647, 1648, 1648, 1649, 1649, 1650, 1650, 1652, 1651, 1653, 1653, 1654, 1653, 1655, 1656, 1656, 1657, 1657, 1658, 1659, 1659, 1660, 1660, 1661, 1662, 1662, 1663, 1663, 1664, 1664, 1665, 1665, 1667, 1666, 1669, 1668, 1670, 1670, 1671, 1671, 1672, 1672, 1673, 1673, 1674, 1674, 1675, 1675, 1676, 1677, 1678, 1676, 1679, 1679, 1681, 1682, 1683, 1680, 1684, 1684, 1685, 1685, 1686, 1686, 1687, 1688, 1688, 1690, 1689, 1691, 1691, 1692, 1693, 1692, 1694, 1695, 1697, 1696, 1698, 1699, 1696, 1700, 1701, 1696, 1702, 1703, 1702, 1704, 1704, 1705, 1705, 1706, 1706, 1706, 1708, 1709, 1707, 1710, 1710, 1711, 1711, 1712, 1712, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1714, 1714, 1716, 1715, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1718, 1717, 1719, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1720, 1720, 1720, 1721, 1721, 1722, 1722, 1723, 1723, 1724, 1724, 1725, 1725, 1726, 1726, 1727, 1727, 1728, 1728, 1728, 1730, 1729, 1731, 1729, 1732, 1732, 1732, 1732, 1732, 1732, 1733, 1733, 1734, 1735, 1735, 1735, 1735, 1736, 1736, 1737, 1737, 1737, 1738, 1740, 1739, 1742, 1741, 1741, 1743, 1743, 1744, 1745, 1744, 1746, 1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1748, 1748, 1749, 1750, 1751, 1750, 1750, 1752, 1752, 1753, 1753, 1753, 1754, 1755, 1755, 1757, 1756, 1758, 1758, 1760, 1759, 1761, 1759, 1759, 1762, 1762, 1763, 1763, 1764, 1765, 1764, 1767, 1766, 1768, 1768, 1768, 1769, 1769, 1769, 1770, 1770, 1771, 1771, 1773, 1772, 1774, 1774, 1775, 1777, 1778, 1779, 1780, 1776, 1781, 1781, 1782, 1782, 1783, 1783, 1783, 1784, 1784, 1784, 1785, 1785, 1786, 1786, 1787, 1787, 1787, 1787, 1788, 1788, 1789, 1789, 1790, 1790, 1791, 1791, 1792, 1792, 1793, 1793, 1794, 1794, 1794, 1795, 1795, 1796, 1796, 1797, 1797, 1798, 1798, 1799, 1800, 1800, 1800, 1800, 1801, 1801, 1802, 1802, 1802, 1803, 1803, 1803, 1804, 1804, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1807, 1807, 1807, 1809, 1808, 1810, 1810, 1811, 1811, 1812, 1813, 1814, 1813, 1815, 1815, 1816, 1817, 1818, 1818, 1819, 1820, 1820, 1821, 1821, 1822, 1822, 1823, 1824, 1824, 1824, 1824, 1824, 1825, 1825, 1825, 1825, 1825, 1826, 1826, 1826, 1826, 1827, 1827, 1827, 1828, 1828, 1829, 1830, 1830, 1831, 1831, 1831, 1832, 1833, 1833, 1833, 1833, 1834, 1835, 1836, 1837, 1838, 1838, 1839, 1839, 1840, 1840, 1840, 1841, 1841, 1842, 1842, 1843, 1843, 1843, 1844, 1844, 1844, 1845, 1845, 1846, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1853, 1853, 1853, 1853, 1853, 1853, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1855, 1855, 1855, 1856, 1856, 1856, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1858, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1860, 1860, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1864, 1863, 1865, 1865, 1866, 1865, 1867, 1865, 1868, 1865, 1869, 1869, 1870, 1870, 1871, 1870, 1872, 1872, 1874, 1873, 1873, 1875, 1875, 1875, 1876, 1876, 1876, 1876, 1877, 1877, 1877, 1877, 1879, 1878, 1880, 1878, 1881, 1878, 1883, 1882, 1884, 1882, 1885, 1882, 1887, 1886, 1888, 1886, 1889, 1886, 1890, 1886, 1891, 1886, 1892, 1886, 1893, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1894, 1886, 1895, 1886, 1896, 1886, 1897, 1897, 1897, 1897, 1898, 1899, 1900, 1900, 1901, 1901, 1901, 1901, 1902, 1902, 1902, 1903, 1903, 1903, 1904, 1904, 1904, 1906, 1905, 1907, 1907, 1907, 1908, 1908, 1909, 1909, 1910, 1911, 1911, 1911, 1911, 1911, 1913, 1912, 1915, 1914, 1916, 1916, 1917, 1916, 1918, 1918, 1919, 1919, 1920, 1920, 1920, 1920, 1921, 1920, 1922, 1922, 1922, 1922, 1922, 1923, 1924, 1924, 1924, 1924, 1924, 1925, 1925, 1926, 1927, 1927, 1927, 1927, 1928, 1928, 1929, 1929, 1930, 1930, 1931, 1932, 1933, 1933, 1934, 1934, 1935, 1935, 1936, 1936, 1937, 1937, 1937, 1937, 1938, 1939, 1939, 1939, 1939, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1941, 1941, 1942, 1942, 1943, 1943, 1943, 1944, 1944, 1944, 1944, 1945, 1945, 1946, 1946, 1947, 1947, 1948, 1948, 1949, 1949, 1950, 1950, 1950, 1950, 1951, 1951, 1952, 1953, 1953, 1953, 1954, 1954, 1954, 1954, 1954, 1955, 1955, 1955, 1955, 1955, 1956, 1956, 1957, 1957, 1958, 1958, 1959, 1959, 1960, 1960, 1961, 1961, 1963, 1962, 1964, 1965, 1965, 1966, 1966, 1967, 1967, 1967, 1968, 1968, 1968, 1969, 1970, 1970, 1970, 1971, 1972, 1973, 1973, 1973, 1974, 1974, 1974, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1976, 1976, 1977, 1978, 1979, 1979, 1979, 1980, 1980, 1981, 1981, 1982, 1982, 1983, 1983, 1985, 1984, 1986, 1986, 1986, 1986, 1987, 1987, 1988, 1988, 1990, 1991, 1992, 1993, 1994, 1989, 1996, 1995, 1997, 1997, 1998, 1998, 1999, 1999, 2001, 2000, 2002, 2002, 2002, 2002, 2002, 2002, 2003, 2003, 2004, 2004, 2004, 2005, 2005, 2005, 2006, 2006, 2006, 2007, 2007, 2008, 2009, 2008, 2010, 2010, 2011, 2011, 2012, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2023, 2024, 2025, 2026, 2027, 2028, 2028, 2028, 2029, 2030, 2031, 2031, 2031, 2032, 2032, 2033, 2033, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2036, 2037, 2038, 2040, 2039, 2041, 2042, 2043, 2044, 2045, 2045, 2046, 2046, 2047, 2047, 2048, 2048, 2048, 2049, 2049, 2049, 2049, 2051, 2050, 2053, 2054, 2052, 2055, 2055, 2056, 2057, 2057, 2057, 2058, 2057, 2059, 2059, 2059, 2059, 2059, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061, 2061, 2063, 2062, 2065, 2064, 2067, 2066, 2068, 2068, 2069, 2069, 2071, 2070, 2073, 2072, 2074, 2074, 2074, 2076, 2075, 2078, 2077, 2079, 2079, 2080, 2080, 2081, 2081, 2083, 2082, 2084, 2082, 2085, 2082, 2082, 2086, 2082, 2087, 2088, 2082 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 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, 1, 3, 1, 1, 0, 5, 3, 0, 0, 6, 0, 0, 3, 1, 3, 0, 3, 0, 7, 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, 3, 0, 1, 1, 0, 1, 3, 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, 0, 3, 1, 0, 1, 1, 2, 3, 2, 1, 3, 2, 1, 3, 3, 3, 1, 1, 1, 1, 3, 0, 1, 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, 3, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 6, 4, 3, 1, 0, 2, 0, 2, 2, 2, 2, 2, 3, 3, 1, 1, 2, 3, 3, 0, 4, 0, 6, 0, 8, 0, 3, 0, 1, 3, 1, 0, 0, 2, 3, 1, 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, 5, 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, 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, 1, 3, 0, 5, 0, 2, 1, 1, 0, 3, 1, 1, 2, 0, 4, 0, 5, 1, 2, 0, 4, 0, 5, 2, 2, 2, 0, 4, 0, 0, 5, 0, 5, 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, 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, 1, 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, 1, 1, 0, 1, 2, 1, 3, 4, 3, 3, 3, 3, 4, 4, 3, 0, 0, 6, 3, 0, 2, 0, 1, 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, 1, 3, 1, 3, 3, 3, 3, 1, 1, 1, 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, 1, 1, 1, 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, 1, 1, 0, 1, 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, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 1, 1, 0, 1, 1, 1, 2, 1, 2, 3, 3, 2, 2, 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, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, 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, 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, 8, 8, 0, 9, 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, 5, 6, 3, 6, 6, 4, 6, 1, 1, 1, 1, 1, 3, 3, 3, 5, 0, 2, 2, 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, 7, 0, 5, 5, 4, 3, 0, 1, 1, 3, 3, 2, 2, 0, 2, 1, 3, 0, 1, 1, 0, 2, 4, 4, 4, 1, 3, 0, 5, 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, 2, 1, 1, 1, 0, 2, 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, 2, 3, 1, 1, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 0, 2, 3, 0, 2, 3, 0, 2, 3, 3, 3, 2, 1, 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, 2, 1, 4, 1, 3, 1, 1, 1, 1, 3, 1, 1, 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, 1, 1, 5, 3, 5, 3, 6, 8, 2, 2, 8, 8, 6, 6, 2, 6, 3, 6, 8, 4, 3, 4, 8, 8, 4, 2, 2, 2, 6, 6, 4, 8, 4, 4, 8, 4, 6, 6, 4, 6, 8, 6, 5, 8, 7, 10, 0, 5, 4, 4, 4, 6, 8, 6, 6, 6, 6, 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, 2, 1, 0, 3, 2, 3, 3, 3, 2, 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, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 4, 1, 3, 0, 3, 0, 5, 2, 4, 4, 1, 1, 1, 1, 0, 1, 2, 1, 2, 1, 1, 2, 3, 3, 0, 0, 10, 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, 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, 4, 7, 5, 8, 3, 1, 1, 1, 1, 1, 2, 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, 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, 0, 5, 3, 2, 0, 7, 0, 0, 7, 0, 0, 8, 0, 0, 3, 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, 8, 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, 4, 3, 3, 3, 3, 4, 4, 3, 2, 3, 3, 3, 3, 3, 4, 4, 3, 3, 4, 4, 3, 4, 4, 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, 5, 0, 4, 0, 4, 1, 0, 1, 4, 0, 3, 3, 1, 2, 2, 2, 2, 3, 4, 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, 5, 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, 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, 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, 7, 0, 7, 0, 9, 0, 9, 2, 3, 2, 4, 3, 5, 2, 0, 4, 0, 4, 0, 6, 1, 1, 3, 3, 1, 3, 2, 2, 2, 2, 2, 1, 1, 4, 4, 3, 3, 3, 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, 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, 3, 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, 20, 0, 2, 2, 1, 1, 2, 0, 1, 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, 0, 1, 1, 0, 0, 1, 1, 1, 2, 3, 1, 1, 2, 1, 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, 0, 6, 4, 2, 1, 1, 1, 4, 5, 6, 2, 1, 2, 3, 1, 6, 8, 5, 7, 0, 4, 0, 0, 7, 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, 1, 2, 1, 2, 0, 6, 0, 5, 4, 4, 1, 0, 5, 0, 5, 1, 1, 1, 2, 3, 3, 0, 6, 0, 11, 0, 11, 10, 0, 12, 0, 0, 13 }; enum { YYENOMEM = -2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYNOMEM goto yyexhaustedlab #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) /* Backward compatibility with an undocumented macro. Use YYerror or YYUNDEF. */ #define YYERRCODE YYUNDEF /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Kind, Value, thd); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, THD *thd) { FILE *yyoutput = yyo; YY_USE (yyoutput); YY_USE (thd); if (!yyvaluep) return; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, THD *thd) { YYFPRINTF (yyo, "%s %s (", yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); yy_symbol_value_print (yyo, yykind, yyvaluep, thd); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *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 (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, THD *thd) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, YY_ACCESSING_SYMBOL (+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) ((void) 0) # define YY_SYMBOL_PRINT(Title, Kind, 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 /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, THD *thd) { YY_USE (yyvaluep); YY_USE (thd); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yykind) { case YYSYMBOL_expr_lex: /* expr_lex */ #line 1572 "/home/buildbot/git/mkdist/sql/yy_mariadb.yy" { /* In case of a syntax/oom error let's free the sp_expr_lex instance, but only if it has not been linked to any structures such as sp_instr_jump_if_not::m_lex_keeper yet, e.g.: IF f1() THEN1 i.e. THEN1 came instead of the expected THEN causing a syntax error. */ if (!((*yyvaluep).expr_lex)->sp_lex_in_use) delete ((*yyvaluep).expr_lex); } #line 29573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case YYSYMBOL_cursor_actual_parameters: /* cursor_actual_parameters */ #line 1632 "/home/buildbot/git/mkdist/sql/yy_mariadb.yy" { if (((*yyvaluep).sp_assignment_lex_list)) { sp_assignment_lex *elem; List_iterator li(*((*yyvaluep).sp_assignment_lex_list)); while ((elem= li++)) { if (!elem->sp_lex_in_use) delete elem; } } } #line 29590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case YYSYMBOL_opt_parenthesized_cursor_actual_parameters: /* opt_parenthesized_cursor_actual_parameters */ #line 1632 "/home/buildbot/git/mkdist/sql/yy_mariadb.yy" { if (((*yyvaluep).sp_assignment_lex_list)) { sp_assignment_lex *elem; List_iterator li(*((*yyvaluep).sp_assignment_lex_list)); while ((elem= li++)) { if (!elem->sp_lex_in_use) delete elem; } } } #line 29607 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; default: break; } YY_IGNORE_MAYBE_UNINITIALIZED_END } /*----------. | yyparse. | `----------*/ int yyparse (THD *thd) { /* Lookahead token kind. */ 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 = 0; yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus = 0; /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ YYPTRDIFF_T yystacksize = YYINITDEPTH; /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss = yyssa; yy_state_t *yyssp = yyss; /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #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; YYDPRINTF ((stderr, "Starting parse\n")); 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 -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined 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. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; /* 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 * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 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 empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (&yylval, thd); } if (yychar <= YYEOF) { yychar = YYEOF; yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else if (yychar == YYerror) { /* The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery. */ yychar = YYUNDEF; yytoken = YYSYMBOL_YYerror; goto yyerrlab1; } 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); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Discard the shifted token. */ yychar = YYEMPTY; 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: /* query: END_OF_INPUT */ #line 2007 "/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 29890 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3: /* $@1: %empty */ #line 2016 "/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 29917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 5: /* query: directly_executable_statement END_OF_INPUT */ #line 2041 "/home/buildbot/git/sql/sql_yacc.yy" { /* Single query, not terminated. */ YYLIP->found_semicolon= NULL; } #line 29926 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 71: /* deallocate: deallocate_or_drop PREPARE_SYM ident */ #line 2124 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->stmt_deallocate_prepare((yyvsp[0].ident_sys)); } #line 29934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 74: /* $@2: %empty */ #line 2136 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= "PREPARE..FROM"; } #line 29940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 75: /* prepare: PREPARE_SYM ident FROM $@2 expr */ #line 2138 "/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 29950 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 76: /* execute: EXECUTE_SYM ident execute_using */ #line 2147 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_execute((yyvsp[-1].ident_sys), (yyvsp[0].item_list))) MYSQL_YYABORT; } #line 29959 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 77: /* $@3: %empty */ #line 2152 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= "EXECUTE IMMEDIATE"; } #line 29965 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 78: /* $@4: %empty */ #line 2154 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= NULL; } #line 29971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 79: /* execute: EXECUTE_SYM IMMEDIATE_SYM $@3 expr $@4 execute_using */ #line 2156 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_execute_immediate((yyvsp[-2].item), (yyvsp[0].item_list))) MYSQL_YYABORT; } #line 29980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 80: /* execute_using: %empty */ #line 2163 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= NULL; } #line 29986 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 81: /* $@5: %empty */ #line 2165 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= "EXECUTE..USING"; } #line 29992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 82: /* execute_using: USING $@5 execute_params */ #line 2167 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list); Lex->clause_that_disallows_subselect= NULL; } #line 30001 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 83: /* execute_params: expr_or_ignore_or_default */ #line 2175 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item_list)= List::make(thd->mem_root, (yyvsp[0].item))))) MYSQL_YYABORT; } #line 30010 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 84: /* execute_params: execute_params ',' expr_or_ignore_or_default */ #line 2180 "/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 30019 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 85: /* $@6: %empty */ #line 2191 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sphead)) my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HELP")); } #line 30028 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 86: /* help: HELP_SYM $@6 ident_or_text */ #line 2196 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_HELP; lex->help_arg= (yyvsp[0].lex_str).str; } #line 30038 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 87: /* $@7: %empty */ #line 2207 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_CHANGE_MASTER; } #line 30046 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 88: /* change: CHANGE MASTER_SYM optional_connection_name TO_SYM $@7 master_defs optional_for_channel */ #line 2212 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 30052 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 91: /* master_def: MASTER_HOST_SYM '=' TEXT_STRING_sys */ #line 2222 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.host = (yyvsp[0].lex_str).str; } #line 30060 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 92: /* master_def: MASTER_USER_SYM '=' TEXT_STRING_sys */ #line 2226 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.user = (yyvsp[0].lex_str).str; } #line 30068 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 93: /* master_def: MASTER_PASSWORD_SYM '=' TEXT_STRING_sys */ #line 2230 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.password = (yyvsp[0].lex_str).str; } #line 30076 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 94: /* master_def: MASTER_PORT_SYM '=' ulong_num */ #line 2234 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.port = (yyvsp[0].ulong_num); } #line 30084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 95: /* master_def: MASTER_CONNECT_RETRY_SYM '=' ulong_num */ #line 2238 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.connect_retry = (yyvsp[0].ulong_num); } #line 30092 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 96: /* master_def: MASTER_DELAY_SYM '=' ulong_num */ #line 2242 "/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 30106 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 97: /* master_def: MASTER_SSL_SYM '=' ulong_num */ #line 2252 "/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 30115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 98: /* master_def: MASTER_SSL_CA_SYM '=' TEXT_STRING_sys */ #line 2257 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_ca= (yyvsp[0].lex_str).str; } #line 30123 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 99: /* master_def: MASTER_SSL_CAPATH_SYM '=' TEXT_STRING_sys */ #line 2261 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_capath= (yyvsp[0].lex_str).str; } #line 30131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 100: /* master_def: MASTER_SSL_CERT_SYM '=' TEXT_STRING_sys */ #line 2265 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_cert= (yyvsp[0].lex_str).str; } #line 30139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 101: /* master_def: MASTER_SSL_CIPHER_SYM '=' TEXT_STRING_sys */ #line 2269 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str; } #line 30147 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 102: /* master_def: MASTER_SSL_KEY_SYM '=' TEXT_STRING_sys */ #line 2273 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_key= (yyvsp[0].lex_str).str; } #line 30155 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 103: /* master_def: MASTER_SSL_VERIFY_SERVER_CERT_SYM '=' ulong_num */ #line 2277 "/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 30164 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 104: /* master_def: MASTER_SSL_CRL_SYM '=' TEXT_STRING_sys */ #line 2282 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_crl= (yyvsp[0].lex_str).str; } #line 30172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 105: /* master_def: MASTER_SSL_CRLPATH_SYM '=' TEXT_STRING_sys */ #line 2286 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.ssl_crlpath= (yyvsp[0].lex_str).str; } #line 30180 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 106: /* master_def: MASTER_HEARTBEAT_PERIOD_SYM '=' NUM_literal */ #line 2291 "/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 30212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 107: /* master_def: IGNORE_SERVER_IDS_SYM '=' '(' ignore_server_id_list ')' */ #line 2319 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } #line 30220 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 108: /* master_def: DO_DOMAIN_IDS_SYM '=' '(' do_domain_id_list ')' */ #line 2323 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.repl_do_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } #line 30228 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 109: /* master_def: IGNORE_DOMAIN_IDS_SYM '=' '(' ignore_domain_id_list ')' */ #line 2327 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.repl_ignore_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } #line 30236 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 114: /* ignore_server_id: ulong_num */ #line 2342 "/home/buildbot/git/sql/sql_yacc.yy" { insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[0].ulong_num))); } #line 30244 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 118: /* do_domain_id: ulong_num */ #line 2355 "/home/buildbot/git/sql/sql_yacc.yy" { insert_dynamic(&Lex->mi.repl_do_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); } #line 30252 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 122: /* ignore_domain_id: ulong_num */ #line 2368 "/home/buildbot/git/sql/sql_yacc.yy" { insert_dynamic(&Lex->mi.repl_ignore_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); } #line 30260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 123: /* master_file_def: MASTER_LOG_FILE_SYM '=' TEXT_STRING_sys */ #line 2375 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } #line 30268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 124: /* master_file_def: MASTER_LOG_POS_SYM '=' ulonglong_num */ #line 2379 "/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 30287 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 125: /* master_file_def: RELAY_LOG_FILE_SYM '=' TEXT_STRING_sys */ #line 2394 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.relay_log_name = (yyvsp[0].lex_str).str; } #line 30295 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 126: /* master_file_def: RELAY_LOG_POS_SYM '=' ulong_num */ #line 2398 "/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 30305 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 127: /* master_file_def: MASTER_USE_GTID_SYM '=' CURRENT_POS_SYM */ #line 2404 "/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 30315 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 128: /* master_file_def: MASTER_USE_GTID_SYM '=' SLAVE_POS_SYM */ #line 2410 "/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 30325 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 129: /* master_file_def: MASTER_USE_GTID_SYM '=' NO_SYM */ #line 2416 "/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 30335 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 130: /* master_file_def: MASTER_DEMOTE_TO_SLAVE_SYM '=' bool */ #line 2422 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.is_demotion_opt= (bool) (yyvsp[0].ulong_num); } #line 30343 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 131: /* optional_connection_name: %empty */ #line 2429 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= thd->lex; lex->mi.connection_name= null_clex_str; } #line 30352 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 133: /* connection_name: TEXT_STRING_sys */ #line 2438 "/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 30364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 134: /* optional_for_channel: %empty */ #line 2449 "/home/buildbot/git/sql/sql_yacc.yy" { /*do nothing */ } #line 30372 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 136: /* for_channel: FOR_SYM CHANNEL_SYM TEXT_STRING_sys */ #line 2458 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->mi.connection_name.str != NULL) { my_yyabort_error((ER_WRONG_ARGUMENTS, MYF(0), "CONNECTION_NAME AND FOR CHANNEL CAN NOT BE SPECIFIED AT THE SAME TIME)")); } else { 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 30392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 137: /* $@8: %empty */ #line 2479 "/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 30408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 138: /* $@9: %empty */ #line 2491 "/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->name= null_clex_str; lex->create_last_non_select_table= lex->last_table(); lex->inc_select_stack_outer_barrier(); } #line 30429 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 139: /* create: create_or_replace opt_temporary TABLE_SYM opt_if_not_exists $@8 table_ident $@9 create_body */ #line 2508 "/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 30439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 140: /* $@10: %empty */ #line 2514 "/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 30473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 141: /* create: create_or_replace opt_temporary SEQUENCE_SYM opt_if_not_exists table_ident $@10 opt_sequence opt_create_table_options */ #line 2544 "/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 30502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 142: /* $@11: %empty */ #line 2569 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; } #line 30511 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 143: /* $@12: %empty */ #line 2576 "/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 30522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 144: /* create: create_or_replace INDEX_SYM opt_if_not_exists $@11 ident opt_key_algorithm_clause ON table_ident $@12 '(' key_list ')' opt_lock_wait_timeout normal_key_options opt_index_lock_algorithm */ #line 2584 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 145: /* $@13: %empty */ #line 2588 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; } #line 30539 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 146: /* $@14: %empty */ #line 2595 "/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 30550 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 147: /* create: create_or_replace UNIQUE_SYM INDEX_SYM opt_if_not_exists $@13 ident opt_key_algorithm_clause ON table_ident $@14 '(' key_list opt_without_overlaps ')' opt_lock_wait_timeout normal_key_options opt_index_lock_algorithm */ #line 2604 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 148: /* $@15: %empty */ #line 2608 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; } #line 30567 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 149: /* $@16: %empty */ #line 2614 "/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 30578 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 150: /* create: create_or_replace fulltext INDEX_SYM $@15 opt_if_not_exists ident ON table_ident $@16 '(' key_list ')' opt_lock_wait_timeout fulltext_key_options opt_index_lock_algorithm */ #line 2622 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 151: /* $@17: %empty */ #line 2626 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; } #line 30595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 152: /* $@18: %empty */ #line 2632 "/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 30606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 153: /* create: create_or_replace spatial INDEX_SYM $@17 opt_if_not_exists ident ON table_ident $@18 '(' key_list ')' opt_lock_wait_timeout spatial_key_options opt_index_lock_algorithm */ #line 2640 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30614 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 154: /* $@19: %empty */ #line 2644 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.init(); } #line 30622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 155: /* create: create_or_replace DATABASE opt_if_not_exists ident $@19 opt_create_database_options */ #line 2648 "/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 30634 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 156: /* $@20: %empty */ #line 2657 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; Lex->inc_select_stack_outer_barrier(); 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 30647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 157: /* create: create_or_replace definer_opt opt_view_suid VIEW_SYM opt_if_not_exists table_ident $@20 view_list_opt AS view_select */ #line 2666 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30655 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 158: /* $@21: %empty */ #line 2671 "/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; Lex->inc_select_stack_outer_barrier(); } #line 30667 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 159: /* create: create_or_replace view_algorithm definer_opt opt_view_suid VIEW_SYM opt_if_not_exists table_ident $@21 view_list_opt AS view_select */ #line 2679 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30675 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 160: /* $@22: %empty */ #line 2683 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; Lex->create_info.set((yyvsp[-2].object_ddl_options)); } #line 30685 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 161: /* create: create_or_replace definer_opt TRIGGER_SYM $@22 trigger_tail */ #line 2689 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30693 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 162: /* $@23: %empty */ #line 2693 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; Lex->create_info.set((yyvsp[-2].object_ddl_options)); } #line 30703 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 163: /* create: create_or_replace definer_opt EVENT_SYM $@23 event_tail */ #line 2699 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 30711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 164: /* create: create_or_replace USER_SYM opt_if_not_exists clear_privileges grant_list opt_require_clause opt_resource_options opt_account_locking_and_opt_password_expiration */ #line 2704 "/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 30721 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 165: /* create: create_or_replace ROLE_SYM opt_if_not_exists clear_privileges role_list opt_with_admin */ #line 2711 "/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 30731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 166: /* $@24: %empty */ #line 2716 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->set_command(SQLCOM_CREATE_SERVER, (yyvsp[0].object_ddl_options)); } #line 30737 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 167: /* create: create_or_replace $@24 server_def */ #line 2718 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 30743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 169: /* opt_sequence: %empty */ #line 2723 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 30749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 173: /* sequence_def: MINVALUE_SYM opt_equal longlong_num */ #line 2734 "/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 30758 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 174: /* sequence_def: NO_SYM MINVALUE_SYM */ #line 2739 "/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 30768 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 175: /* sequence_def: NOMINVALUE_SYM */ #line 2745 "/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 30778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 176: /* sequence_def: MAXVALUE_SYM opt_equal longlong_num */ #line 2751 "/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 30790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 177: /* sequence_def: NO_SYM MAXVALUE_SYM */ #line 2759 "/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 30800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 178: /* sequence_def: NOMAXVALUE_SYM */ #line 2765 "/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 30810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 179: /* sequence_def: START_SYM opt_with longlong_num */ #line 2771 "/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 30822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 180: /* sequence_def: INCREMENT_SYM opt_by longlong_num */ #line 2779 "/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 30834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 181: /* sequence_def: CACHE_SYM opt_equal longlong_num */ #line 2787 "/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 30846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 182: /* sequence_def: NOCACHE_SYM */ #line 2795 "/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 30858 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 183: /* sequence_def: CYCLE_SYM */ #line 2803 "/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 30870 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 184: /* sequence_def: NOCYCLE_SYM */ #line 2811 "/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 30882 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 185: /* sequence_def: RESTART_SYM */ #line 2819 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sql_command != SQLCOM_ALTER_SEQUENCE)) { thd->parse_error(ER_SYNTAX_ERROR, "RESTART"); MYSQL_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 30898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 186: /* sequence_def: RESTART_SYM opt_with longlong_num */ #line 2831 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sql_command != SQLCOM_ALTER_SEQUENCE)) { thd->parse_error(ER_SYNTAX_ERROR, "RESTART"); MYSQL_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 30915 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 187: /* force_lookahead: %empty */ #line 2846 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 30921 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 188: /* force_lookahead: FORCE_LOOKAHEAD */ #line 2846 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 30927 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 189: /* $@25: %empty */ #line 2850 "/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 30937 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 190: /* server_def: SERVER_SYM opt_if_not_exists ident_or_text $@25 FOREIGN DATA_SYM WRAPPER_SYM ident_or_text OPTIONS_SYM '(' server_options_list ')' */ #line 2857 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->server_options.scheme= (yyvsp[-4].lex_str); } #line 30943 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 193: /* server_option: USER_SYM TEXT_STRING_sys */ #line 2867 "/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 30952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 194: /* server_option: HOST_SYM TEXT_STRING_sys */ #line 2872 "/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 30961 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 195: /* server_option: DATABASE TEXT_STRING_sys */ #line 2877 "/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 30970 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 196: /* server_option: OWNER_SYM TEXT_STRING_sys */ #line 2882 "/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 30979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 197: /* server_option: PASSWORD_SYM TEXT_STRING_sys */ #line 2887 "/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 30988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 198: /* server_option: SOCKET_SYM TEXT_STRING_sys */ #line 2892 "/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 30997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 199: /* server_option: PORT_SYM ulong_num */ #line 2897 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->server_options.port= (yyvsp[0].ulong_num); } #line 31005 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 200: /* $@26: %empty */ #line 2904 "/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 31026 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 201: /* event_tail: remember_name opt_if_not_exists sp_name $@26 ON SCHEDULE_SYM ev_schedule_time opt_ev_on_completion opt_ev_status opt_ev_comment DO_SYM ev_sql_stmt */ #line 2925 "/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 31038 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 202: /* $@27: %empty */ #line 2936 "/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 31047 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 204: /* ev_schedule_time: AT_SYM expr */ #line 2943 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->event_parse_data->item_execute_at= (yyvsp[0].item); } #line 31055 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 205: /* opt_ev_status: %empty */ #line 2949 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 31061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 206: /* opt_ev_status: ENABLE_SYM */ #line 2951 "/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 31071 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 207: /* opt_ev_status: DISABLE_SYM ON SLAVE */ #line 2957 "/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 31081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 208: /* opt_ev_status: DISABLE_SYM */ #line 2963 "/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 31091 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 209: /* ev_starts: %empty */ #line 2972 "/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 31102 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 210: /* ev_starts: STARTS_SYM expr */ #line 2979 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->event_parse_data->item_starts= (yyvsp[0].item); } #line 31110 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 212: /* ev_ends: ENDS_SYM expr */ #line 2987 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->event_parse_data->item_ends= (yyvsp[0].item); } #line 31118 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 213: /* opt_ev_on_completion: %empty */ #line 2993 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 31124 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 215: /* ev_on_completion: ON COMPLETION_SYM opt_not PRESERVE_SYM */ #line 2999 "/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 31135 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 216: /* opt_ev_comment: %empty */ #line 3008 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 31141 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 217: /* opt_ev_comment: COMMENT_SYM TEXT_STRING_sys */ #line 3010 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str); (yyval.num)= 1; } #line 31150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 218: /* $@28: %empty */ #line 3017 "/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 31187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 219: /* ev_sql_stmt: $@28 sp_proc_stmt force_lookahead */ #line 3050 "/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 31197 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 220: /* clear_privileges: %empty */ #line 3059 "/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 31208 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 221: /* opt_aggregate: %empty */ #line 3068 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_aggregate_type)= NOT_AGGREGATE; } #line 31214 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 222: /* opt_aggregate: AGGREGATE_SYM */ #line 3069 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_aggregate_type)= GROUP_AGGREGATE; } #line 31220 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 223: /* sp_handler: FUNCTION_SYM */ #line 3074 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_handler)= &sp_handler_function; } #line 31226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 224: /* sp_handler: PROCEDURE_SYM */ #line 3075 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_handler)= &sp_handler_procedure; } #line 31232 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 227: /* sp_handler_package_spec: PACKAGE_ORACLE_SYM */ #line 3081 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_handler)= &sp_handler_package_spec; } #line 31238 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 228: /* sp_handler_package_spec: PACKAGE_MARIADB_SYM */ #line 3082 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_handler)= &sp_handler_package_spec; } #line 31244 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 229: /* sp_handler_package_body: PACKAGE_ORACLE_SYM BODY_ORACLE_SYM */ #line 3086 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_handler)= &sp_handler_package_body; } #line 31250 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 230: /* sp_handler_package_body: PACKAGE_MARIADB_SYM BODY_MARIADB_SYM */ #line 3087 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_handler)= &sp_handler_package_body; } #line 31256 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 231: /* drop_routine: DROP sp_handler opt_if_exists ident '.' ident */ #line 3092 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_drop_routine((yyvsp[-4].sp_handler), (yyvsp[-3].object_ddl_options), (yyvsp[-2].ident_sys), (yyvsp[0].ident_sys))) MYSQL_YYABORT; } #line 31265 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 232: /* drop_routine: DROP sp_handler opt_if_exists ident */ #line 3097 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_drop_routine((yyvsp[-2].sp_handler), (yyvsp[-1].object_ddl_options), Lex_ident_sys(), (yyvsp[0].ident_sys))) MYSQL_YYABORT; } #line 31274 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 233: /* sp_name: ident '.' ident */ #line 3106 "/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 31283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 234: /* sp_name: ident */ #line 3111 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, (yyvsp[0].ident_sys))))) MYSQL_YYABORT; } #line 31292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 235: /* sp_a_chistics: %empty */ #line 3118 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 236: /* sp_a_chistics: sp_a_chistics sp_chistic */ #line 3119 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31304 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 237: /* sp_c_chistics: %empty */ #line 3123 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31310 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 238: /* sp_c_chistics: sp_c_chistics sp_c_chistic */ #line 3124 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 239: /* sp_chistic: COMMENT_SYM TEXT_STRING_sys */ #line 3130 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } #line 31322 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 240: /* sp_chistic: LANGUAGE_SYM SQL_SYM */ #line 3132 "/home/buildbot/git/sql/sql_yacc.yy" { /* Just parse it, we only have one language for now. */ } #line 31328 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 241: /* sp_chistic: NO_SYM SQL_SYM */ #line 3134 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.daccess= SP_NO_SQL; } #line 31334 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 242: /* sp_chistic: CONTAINS_SYM SQL_SYM */ #line 3136 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; } #line 31340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 243: /* sp_chistic: READS_SYM SQL_SYM DATA_SYM */ #line 3138 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; } #line 31346 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 244: /* sp_chistic: MODIFIES_SYM SQL_SYM DATA_SYM */ #line 3140 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; } #line 31352 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 245: /* sp_chistic: sp_suid */ #line 3142 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.suid= (yyvsp[0].sp_suid); } #line 31358 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 246: /* sp_c_chistic: sp_chistic */ #line 3147 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 31364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 247: /* sp_c_chistic: opt_not DETERMINISTIC_SYM */ #line 3148 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.detistic= ! (yyvsp[-1].num); } #line 31370 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 248: /* sp_suid: SQL_SYM SECURITY_SYM DEFINER_SYM */ #line 3152 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_suid)= SP_IS_SUID; } #line 31376 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 249: /* sp_suid: SQL_SYM SECURITY_SYM INVOKER_SYM */ #line 3153 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_suid)= SP_IS_NOT_SUID; } #line 31382 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 250: /* $@29: %empty */ #line 3158 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->call_statement_start(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 31391 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 251: /* call: CALL_SYM ident $@29 opt_sp_cparam_list */ #line 3163 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->check_cte_dependencies_and_resolve_references()) MYSQL_YYABORT; } #line 31400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 252: /* $@30: %empty */ #line 3168 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->call_statement_start(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 31409 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 253: /* call: CALL_SYM ident '.' ident $@30 opt_sp_cparam_list */ #line 3173 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->check_cte_dependencies_and_resolve_references()) MYSQL_YYABORT; } #line 31418 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 254: /* $@31: %empty */ #line 3178 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->call_statement_start(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 31427 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 255: /* call: CALL_SYM ident '.' ident '.' ident $@31 opt_sp_cparam_list */ #line 3183 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->check_cte_dependencies_and_resolve_references()) MYSQL_YYABORT; } #line 31436 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 260: /* sp_cparams: sp_cparams ',' expr */ #line 3202 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); } #line 31444 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 261: /* sp_cparams: expr */ #line 3206 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); } #line 31452 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 262: /* sp_fdparam_list: %empty */ #line 3214 "/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 31461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 263: /* $@32: %empty */ #line 3219 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start(); } #line 31469 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 264: /* sp_fdparam_list: $@32 sp_fdparams */ #line 3223 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } #line 31477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 267: /* sp_param_name: ident */ #line 3235 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.spvar)= Lex->sp_param_init(&(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } #line 31486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 272: /* sp_parameter_type: IN_SYM */ #line 3253 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spvar_mode)= sp_variable::MODE_IN; } #line 31492 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 273: /* sp_parameter_type: OUT_SYM */ #line 3254 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spvar_mode)= sp_variable::MODE_OUT; } #line 31498 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 274: /* sp_parameter_type: INOUT_SYM */ #line 3255 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spvar_mode)= sp_variable::MODE_INOUT; } #line 31504 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 275: /* $@33: %empty */ #line 3260 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start() + 1; } #line 31512 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 276: /* sp_parenthesized_pdparam_list: '(' $@33 sp_pdparam_list ')' */ #line 3265 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } #line 31520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 278: /* sp_proc_stmts: %empty */ #line 3275 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31526 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 280: /* sp_proc_stmts1: sp_proc_stmt ';' */ #line 3280 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31532 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 282: /* optionally_qualified_column_ident: sp_decl_ident */ #line 3287 "/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 31542 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 283: /* optionally_qualified_column_ident: sp_decl_ident '.' ident */ #line 3293 "/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 31552 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 284: /* optionally_qualified_column_ident: sp_decl_ident '.' ident '.' ident */ #line 3299 "/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 31562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 285: /* row_field_definition: row_field_name field_type */ #line 3309 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->set_attributes(thd, (yyvsp[0].Lex_field_type), COLUMN_DEFINITION_ROUTINE_LOCAL); } #line 31571 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 286: /* row_field_definition_list: row_field_definition */ #line 3317 "/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 31580 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 287: /* row_field_definition_list: row_field_definition_list ',' row_field_definition */ #line 3322 "/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 31589 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 288: /* row_type_body: '(' row_field_definition_list ')' */ #line 3329 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spvar_definition_list)= (yyvsp[-1].spvar_definition_list); } #line 31595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 289: /* sp_decl_idents_init_vars: sp_decl_idents */ #line 3334 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_variable_declarations_init(thd, (yyvsp[0].num)); } #line 31603 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 290: /* $@34: %empty */ #line 3342 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->set_attributes(thd, (yyvsp[0].Lex_field_type), COLUMN_DEFINITION_ROUTINE_LOCAL); } #line 31612 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 291: /* sp_decl_variable_list: sp_decl_idents_init_vars field_type $@34 sp_opt_default */ #line 3347 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_variable_declarations_finalize(thd, (yyvsp[-3].num), &Lex->last_field[0], (yyvsp[0].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-3].num)); } #line 31625 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 292: /* sp_decl_variable_list: sp_decl_idents_init_vars ROW_SYM row_type_body sp_opt_default */ #line 3358 "/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].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-3].num)); } #line 31637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 294: /* $@35: %empty */ #line 3370 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_handler_declaration_init(thd, (yyvsp[-2].num)))) MYSQL_YYABORT; } #line 31646 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 295: /* sp_decl_handler: sp_handler_type HANDLER_SYM FOR_SYM $@35 sp_hcond_list sp_proc_stmt */ #line 3375 "/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 31657 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 298: /* sp_cursor_stmt_lex: %empty */ #line 3390 "/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 31668 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 299: /* $@36: %empty */ #line 3400 "/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 31679 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 300: /* sp_cursor_stmt: sp_cursor_stmt_lex $@36 remember_name select remember_end */ #line 3407 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex == (yyvsp[-4].sp_cursor_stmt)); Lex->pop_select(); //main select if (unlikely((yyvsp[-4].sp_cursor_stmt)->stmt_finalize(thd))) MYSQL_YYABORT; if (Lex->is_metadata_used()) { LEX_CSTRING expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; (yyvsp[-4].sp_cursor_stmt)->set_expr_str(expr_str); } if (unlikely((yyvsp[-4].sp_cursor_stmt)->sphead->restore_lex(thd))) MYSQL_YYABORT; (yyval.sp_cursor_stmt)= (yyvsp[-4].sp_cursor_stmt); } #line 31702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 301: /* sp_handler_type: EXIT_MARIADB_SYM */ #line 3428 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= sp_handler::EXIT; } #line 31708 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 302: /* sp_handler_type: CONTINUE_MARIADB_SYM */ #line 3429 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= sp_handler::CONTINUE; } #line 31714 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 303: /* sp_handler_type: EXIT_ORACLE_SYM */ #line 3430 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= sp_handler::EXIT; } #line 31720 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 304: /* sp_handler_type: CONTINUE_ORACLE_SYM */ #line 3431 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= sp_handler::CONTINUE; } #line 31726 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 305: /* sp_hcond_list: sp_hcond_element */ #line 3437 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 31732 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 306: /* sp_hcond_list: sp_hcond_list ',' sp_hcond_element */ #line 3439 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)+= 1; } #line 31738 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 307: /* sp_hcond_element: sp_hcond */ #line 3444 "/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 31754 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 308: /* sp_cond: ulong_num */ #line 3459 "/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 31766 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 310: /* sqlstate: SQLSTATE_SYM opt_value TEXT_STRING_literal */ #line 3471 "/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 31787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 311: /* opt_value: %empty */ #line 3490 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31793 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 312: /* opt_value: VALUE_SYM */ #line 3491 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 31799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 313: /* sp_hcond: sp_cond */ #line 3496 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } #line 31807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 314: /* sp_hcond: ident */ #line 3500 "/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 31817 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 315: /* sp_hcond: SQLWARNING_SYM */ #line 3506 "/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 31827 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 316: /* sp_hcond: not FOUND_SYM */ #line 3512 "/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 31837 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 317: /* sp_hcond: SQLEXCEPTION_SYM */ #line 3518 "/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 31847 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 318: /* sp_hcond: OTHERS_ORACLE_SYM */ #line 3524 "/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 31857 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 319: /* raise_stmt_oracle: RAISE_ORACLE_SYM opt_set_signal_information */ #line 3534 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->add_resignal_statement(thd, NULL))) MYSQL_YYABORT; } #line 31866 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 320: /* raise_stmt_oracle: RAISE_ORACLE_SYM signal_value opt_set_signal_information */ #line 3539 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } #line 31875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 321: /* signal_stmt: SIGNAL_SYM signal_value opt_set_signal_information */ #line 3547 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue))) MYSQL_YYABORT; } #line 31884 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 322: /* signal_value: ident */ #line 3555 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.spcondvalue)= Lex->stmt_signal_value((yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 31893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 323: /* signal_value: sqlstate */ #line 3560 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } #line 31899 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 324: /* opt_signal_value: %empty */ #line 3565 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spcondvalue)= NULL; } #line 31905 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 325: /* opt_signal_value: signal_value */ #line 3567 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } #line 31911 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 326: /* opt_set_signal_information: %empty */ #line 3572 "/home/buildbot/git/sql/sql_yacc.yy" { thd->m_parser_state->m_yacc.m_set_signal_info.clear(); } #line 31919 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 328: /* signal_information_item_list: signal_condition_information_item_name '=' signal_allowed_expr */ #line 3580 "/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 31931 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 329: /* signal_information_item_list: signal_information_item_list ',' signal_condition_information_item_name '=' signal_allowed_expr */ #line 3589 "/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 31945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 330: /* signal_allowed_expr: literal */ #line 3605 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 31951 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 331: /* signal_allowed_expr: variable */ #line 3607 "/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 = @foo := expr */ thd->parse_error(); MYSQL_YYABORT; } } (yyval.item)= (yyvsp[0].item); } #line 31973 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 332: /* signal_allowed_expr: simple_ident */ #line 3625 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 31979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 333: /* signal_condition_information_item_name: CLASS_ORIGIN_SYM */ #line 3631 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; } #line 31985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 334: /* signal_condition_information_item_name: SUBCLASS_ORIGIN_SYM */ #line 3633 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; } #line 31991 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 335: /* signal_condition_information_item_name: CONSTRAINT_CATALOG_SYM */ #line 3635 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; } #line 31997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 336: /* signal_condition_information_item_name: CONSTRAINT_SCHEMA_SYM */ #line 3637 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; } #line 32003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 337: /* signal_condition_information_item_name: CONSTRAINT_NAME_SYM */ #line 3639 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; } #line 32009 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 338: /* signal_condition_information_item_name: CATALOG_NAME_SYM */ #line 3641 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; } #line 32015 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 339: /* signal_condition_information_item_name: SCHEMA_NAME_SYM */ #line 3643 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; } #line 32021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 340: /* signal_condition_information_item_name: TABLE_NAME_SYM */ #line 3645 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; } #line 32027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 341: /* signal_condition_information_item_name: COLUMN_NAME_SYM */ #line 3647 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; } #line 32033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 342: /* signal_condition_information_item_name: CURSOR_NAME_SYM */ #line 3649 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; } #line 32039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 343: /* signal_condition_information_item_name: MESSAGE_TEXT_SYM */ #line 3651 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; } #line 32045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 344: /* signal_condition_information_item_name: MYSQL_ERRNO_SYM */ #line 3653 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; } #line 32051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 345: /* signal_condition_information_item_name: ROW_NUMBER_SYM */ #line 3655 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_condition_item_name)= DIAG_ROW_NUMBER; } #line 32057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 346: /* resignal_stmt: RESIGNAL_SYM opt_signal_value opt_set_signal_information */ #line 3660 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->add_resignal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } #line 32066 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 347: /* get_diagnostics: GET_SYM which_area DIAGNOSTICS_SYM diagnostics_information */ #line 3668 "/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 32082 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 348: /* which_area: %empty */ #line 3683 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } #line 32088 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 349: /* which_area: CURRENT_SYM */ #line 3685 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } #line 32094 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 350: /* diagnostics_information: statement_information */ #line 3690 "/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 32104 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 351: /* diagnostics_information: CONDITION_SYM condition_number condition_information */ #line 3696 "/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 32114 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 352: /* statement_information: statement_information_item */ #line 3705 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.stmt_info_list)= new (thd->mem_root) List; 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 32125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 353: /* statement_information: statement_information ',' statement_information_item */ #line 3712 "/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 32135 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 354: /* statement_information_item: simple_target_specification '=' statement_information_item_name */ #line 3721 "/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 32145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 355: /* simple_target_specification: ident_cli */ #line 3730 "/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 32154 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 356: /* simple_target_specification: '@' ident_or_text */ #line 3735 "/home/buildbot/git/sql/sql_yacc.yy" { if (!(yyvsp[0].lex_str).length) { thd->parse_error(); MYSQL_YYABORT; } (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } #line 32169 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 357: /* statement_information_item_name: NUMBER_MARIADB_SYM */ #line 3749 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } #line 32175 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 358: /* statement_information_item_name: NUMBER_ORACLE_SYM */ #line 3751 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } #line 32181 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 359: /* statement_information_item_name: ROW_COUNT_SYM */ #line 3753 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.stmt_info_item_name)= Statement_information_item::ROW_COUNT; } #line 32187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 360: /* condition_number: signal_allowed_expr */ #line 3762 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 32193 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 361: /* condition_information: condition_information_item */ #line 3767 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_list)= new (thd->mem_root) List; 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 32204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 362: /* condition_information: condition_information ',' condition_information_item */ #line 3774 "/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 32214 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 363: /* condition_information_item: simple_target_specification '=' condition_information_item_name */ #line 3783 "/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 32224 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 364: /* condition_information_item_name: CLASS_ORIGIN_SYM */ #line 3792 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::CLASS_ORIGIN; } #line 32230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 365: /* condition_information_item_name: SUBCLASS_ORIGIN_SYM */ #line 3794 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::SUBCLASS_ORIGIN; } #line 32236 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 366: /* condition_information_item_name: CONSTRAINT_CATALOG_SYM */ #line 3796 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_CATALOG; } #line 32242 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 367: /* condition_information_item_name: CONSTRAINT_SCHEMA_SYM */ #line 3798 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_SCHEMA; } #line 32248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 368: /* condition_information_item_name: CONSTRAINT_NAME_SYM */ #line 3800 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_NAME; } #line 32254 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 369: /* condition_information_item_name: CATALOG_NAME_SYM */ #line 3802 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::CATALOG_NAME; } #line 32260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 370: /* condition_information_item_name: SCHEMA_NAME_SYM */ #line 3804 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::SCHEMA_NAME; } #line 32266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 371: /* condition_information_item_name: TABLE_NAME_SYM */ #line 3806 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::TABLE_NAME; } #line 32272 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 372: /* condition_information_item_name: COLUMN_NAME_SYM */ #line 3808 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::COLUMN_NAME; } #line 32278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 373: /* condition_information_item_name: CURSOR_NAME_SYM */ #line 3810 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::CURSOR_NAME; } #line 32284 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 374: /* condition_information_item_name: MESSAGE_TEXT_SYM */ #line 3812 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::MESSAGE_TEXT; } #line 32290 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 375: /* condition_information_item_name: MYSQL_ERRNO_SYM */ #line 3814 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::MYSQL_ERRNO; } #line 32296 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 376: /* condition_information_item_name: RETURNED_SQLSTATE_SYM */ #line 3816 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::RETURNED_SQLSTATE; } #line 32302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 377: /* condition_information_item_name: ROW_NUMBER_SYM */ #line 3818 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.cond_info_item_name)= Condition_information_item::ROW_NUMBER; } #line 32308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 379: /* sp_decl_ident: keyword_sp_decl */ #line 3824 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_ident_cli(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } #line 32317 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 380: /* sp_decl_idents: sp_decl_ident */ #line 3832 "/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 32333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 381: /* sp_decl_idents: sp_decl_idents ',' ident */ #line 3844 "/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 32349 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 382: /* $@37: %empty */ #line 3859 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->maybe_start_compound_statement(thd))) MYSQL_YYABORT; Lex->sphead->new_cont_backpatch(NULL); } #line 32359 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 383: /* sp_proc_stmt_if: IF_SYM $@37 sp_if END IF_SYM */ #line 3865 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sphead->do_cont_backpatch(); } #line 32365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 384: /* $@38: %empty */ #line 3869 "/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 32382 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 385: /* sp_proc_stmt_statement: $@38 sp_statement */ #line 3882 "/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 32392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 388: /* $@39: %empty */ #line 3897 "/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 32403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 389: /* sp_proc_stmt_return: RETURN_ALLMODES_SYM expr_lex $@39 */ #line 3903 "/home/buildbot/git/sql/sql_yacc.yy" { /* See the comment 'COMMENT_FOR_DESCTRUCTOR' near %destructor */ } #line 32409 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 390: /* sp_proc_stmt_return: RETURN_ORACLE_SYM */ #line 3905 "/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 32421 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 391: /* sp_proc_stmt_exit_oracle: EXIT_ORACLE_SYM */ #line 3916 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_exit_statement(thd, nullptr, empty_clex_str))) MYSQL_YYABORT; } #line 32430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 392: /* sp_proc_stmt_exit_oracle: EXIT_ORACLE_SYM label_ident */ #line 3921 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_exit_statement(thd, &(yyvsp[0].ident_sys), nullptr, empty_clex_str))) MYSQL_YYABORT; } #line 32440 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 393: /* $@40: %empty */ #line 3927 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[0].expr_lex)->sp_exit_statement(thd, (yyvsp[0].expr_lex)->get_item(), (yyvsp[0].expr_lex)->get_expr_str()))) MYSQL_YYABORT; } #line 32450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 394: /* sp_proc_stmt_exit_oracle: EXIT_ORACLE_SYM WHEN_SYM expr_lex $@40 */ #line 3932 "/home/buildbot/git/sql/sql_yacc.yy" { /* See the comment 'COMMENT_FOR_DESCTRUCTOR' near %destructor */ } #line 32456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 395: /* $@41: %empty */ #line 3934 "/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(), (yyvsp[0].expr_lex)->get_expr_str()))) MYSQL_YYABORT; } #line 32466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 396: /* sp_proc_stmt_exit_oracle: EXIT_ORACLE_SYM label_ident WHEN_SYM expr_lex $@41 */ #line 3939 "/home/buildbot/git/sql/sql_yacc.yy" { /* See the comment 'COMMENT_FOR_DESCTRUCTOR' near %destructor */ } #line 32472 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 397: /* sp_proc_stmt_continue_oracle: CONTINUE_ORACLE_SYM */ #line 3944 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_continue_statement(thd))) MYSQL_YYABORT; } #line 32481 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 398: /* sp_proc_stmt_continue_oracle: CONTINUE_ORACLE_SYM label_ident */ #line 3949 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_continue_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 32490 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 399: /* $@42: %empty */ #line 3954 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[0].expr_lex)->sp_continue_when_statement(thd))) MYSQL_YYABORT; } #line 32499 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 400: /* sp_proc_stmt_continue_oracle: CONTINUE_ORACLE_SYM WHEN_SYM expr_lex $@42 */ #line 3958 "/home/buildbot/git/sql/sql_yacc.yy" { /* See the comment 'COMMENT_FOR_DESCTRUCTOR' near %destructor */ } #line 32505 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 401: /* $@43: %empty */ #line 3960 "/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 32514 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 402: /* sp_proc_stmt_continue_oracle: CONTINUE_ORACLE_SYM label_ident WHEN_SYM expr_lex $@43 */ #line 3964 "/home/buildbot/git/sql/sql_yacc.yy" { /* See the comment 'COMMENT_FOR_DESCTRUCTOR' near %destructor */ } #line 32520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 403: /* sp_proc_stmt_leave: LEAVE_SYM label_ident */ #line 3970 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_leave_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 32529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 404: /* sp_proc_stmt_iterate: ITERATE_SYM label_ident */ #line 3978 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_iterate_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 32538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 405: /* sp_proc_stmt_goto_oracle: GOTO_ORACLE_SYM label_ident */ #line 3986 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_goto_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 32547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 406: /* @44: %empty */ #line 3994 "/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 32561 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 407: /* expr_lex: @44 remember_start_opt expr remember_end */ #line 4004 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.expr_lex)= (yyvsp[-3].expr_lex); (yyval.expr_lex)->set_item((yyvsp[-1].item)); if (Lex->is_metadata_used()) { LEX_CSTRING expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; (yyval.expr_lex)->set_expr_str(expr_str); } 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 32585 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 408: /* assignment_source_lex: %empty */ #line 4027 "/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 32596 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 409: /* $@45: %empty */ #line 4037 "/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 32607 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 410: /* assignment_source_expr: assignment_source_lex $@45 remember_cpp_ptr expr remember_end */ #line 4044 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT((yyvsp[-4].assignment_lex) == thd->lex); (yyval.assignment_lex)= (yyvsp[-4].assignment_lex); (yyval.assignment_lex)->set_item_and_free_list((yyvsp[-1].item), thd->free_list); if (Lex->is_metadata_used()) { LEX_CSTRING expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; (yyval.assignment_lex)->set_expr_str(expr_str); } thd->free_list= NULL; Lex->pop_select(); //min select if ((yyval.assignment_lex)->sphead->restore_lex(thd)) MYSQL_YYABORT; } #line 32631 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 411: /* $@46: %empty */ #line 4067 "/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 32642 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 412: /* for_loop_bound_expr: assignment_source_lex $@46 remember_cpp_ptr expr remember_end */ #line 4074 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT((yyvsp[-4].assignment_lex) == thd->lex); (yyval.assignment_lex)= (yyvsp[-4].assignment_lex); (yyval.assignment_lex)->set_item_and_free_list((yyvsp[-1].item), nullptr); if (Lex->is_metadata_used()) { LEX_CSTRING expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; (yyval.assignment_lex)->set_expr_str(expr_str); } Lex->pop_select(); //main select if (unlikely((yyval.assignment_lex)->sphead->restore_lex(thd))) MYSQL_YYABORT; Lex->current_select->parsing_place= NO_MATTER; } #line 32666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 413: /* cursor_actual_parameters: assignment_source_expr */ #line 4097 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.sp_assignment_lex_list)= new (thd->mem_root) List))) MYSQL_YYABORT; (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); } #line 32676 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 414: /* cursor_actual_parameters: cursor_actual_parameters ',' assignment_source_expr */ #line 4103 "/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 32685 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 415: /* opt_parenthesized_cursor_actual_parameters: %empty */ #line 4110 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_assignment_lex_list)= NULL; } #line 32691 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 416: /* opt_parenthesized_cursor_actual_parameters: '(' cursor_actual_parameters ')' */ #line 4111 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.sp_assignment_lex_list)= (yyvsp[-1].sp_assignment_lex_list); } #line 32697 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 420: /* sp_proc_stmt_open: OPEN_SYM ident opt_parenthesized_cursor_actual_parameters */ #line 4122 "/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 32706 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 421: /* sp_proc_stmt_fetch_head: FETCH_SYM ident INTO */ #line 4130 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } #line 32715 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 422: /* sp_proc_stmt_fetch_head: FETCH_SYM FROM ident INTO */ #line 4135 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } #line 32724 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 423: /* sp_proc_stmt_fetch_head: FETCH_SYM NEXT_SYM FROM ident INTO */ #line 4140 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } #line 32733 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 424: /* sp_proc_stmt_fetch: sp_proc_stmt_fetch_head sp_fetch_list */ #line 4147 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 32739 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 425: /* sp_proc_stmt_fetch: FETCH_SYM GROUP_SYM NEXT_SYM ROW_SYM */ #line 4149 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_add_agg_cfetch())) MYSQL_YYABORT; } #line 32748 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 426: /* sp_proc_stmt_close: CLOSE_SYM ident */ #line 4157 "/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 32767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 427: /* sp_fetch_list: ident */ #line 4175 "/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 32787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 428: /* sp_fetch_list: sp_fetch_list ',' ident */ #line 4191 "/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 32807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 429: /* $@47: %empty */ #line 4210 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[-1].expr_lex)->sp_if_expr(thd))) MYSQL_YYABORT; } #line 32816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 430: /* $@48: %empty */ #line 4215 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[-3].expr_lex)->sp_if_after_statements(thd))) MYSQL_YYABORT; } #line 32825 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 431: /* sp_if: expr_lex THEN_SYM $@47 sp_if_then_statements $@48 sp_elseifs */ #line 4220 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sphead->backpatch(lex->spcont->pop_label()); } #line 32835 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 436: /* $@49: %empty */ #line 4236 "/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
            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
            
The actions are used to generate the following code:
            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"
            
*/ 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 32889 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 437: /* case_stmt_specification: CASE_SYM $@49 case_stmt_body else_clause_opt END CASE_SYM */ #line 4289 "/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 32907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 438: /* $@50: %empty */ #line 4306 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[0].expr_lex)->case_stmt_action_expr())) MYSQL_YYABORT; } #line 32916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 439: /* case_stmt_body: expr_lex $@50 simple_when_clause_list */ #line 4311 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 32922 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 440: /* case_stmt_body: searched_when_clause_list */ #line 4313 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 32928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 445: /* $@51: %empty */ #line 4328 "/home/buildbot/git/sql/sql_yacc.yy" { /* Simple case: = */ if (unlikely((yyvsp[0].expr_lex)->case_stmt_action_when(true))) MYSQL_YYABORT; } #line 32938 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 446: /* simple_when_clause: WHEN_SYM expr_lex $@51 THEN_SYM sp_case_then_statements */ #line 4335 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->case_stmt_action_then())) MYSQL_YYABORT; } #line 32947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 447: /* $@52: %empty */ #line 4343 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[0].expr_lex)->case_stmt_action_when(false))) MYSQL_YYABORT; } #line 32956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 448: /* searched_when_clause: WHEN_SYM expr_lex $@52 THEN_SYM sp_case_then_statements */ #line 4349 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->case_stmt_action_then())) MYSQL_YYABORT; } #line 32965 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 449: /* else_clause_opt: %empty */ #line 4357 "/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 32980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 451: /* sp_opt_label: %empty */ #line 4371 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 32986 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 452: /* sp_opt_label: label_ident */ #line 4372 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].ident_sys); } #line 32992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 453: /* opt_sp_for_loop_direction: %empty */ #line 4377 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 32998 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 454: /* opt_sp_for_loop_direction: REVERSE_SYM */ #line 4378 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= -1; } #line 33004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 455: /* sp_for_loop_index_and_bounds: ident_for_loop_index sp_for_loop_bounds */ #line 4383 "/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 33013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 456: /* sp_for_loop_bounds: IN_SYM opt_sp_for_loop_direction for_loop_bound_expr DOT_DOT_SYM for_loop_bound_expr */ #line 4392 "/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 33021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 457: /* sp_for_loop_bounds: IN_SYM opt_sp_for_loop_direction for_loop_bound_expr */ #line 4396 "/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 33032 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 458: /* sp_for_loop_bounds: IN_SYM opt_sp_for_loop_direction '(' sp_cursor_stmt ')' */ #line 4403 "/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 33042 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 459: /* loop_body: sp_proc_stmts1 END LOOP_SYM */ #line 4412 "/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 33057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 460: /* repeat_body: sp_proc_stmts1 UNTIL_SYM expr_lex END REPEAT_SYM */ #line 4426 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyvsp[-2].expr_lex)->sp_repeat_loop_finalize(thd)) MYSQL_YYABORT; } #line 33066 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 461: /* pop_sp_loop_label: sp_opt_label */ #line 4434 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_pop_loop_label(thd, &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } #line 33075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 462: /* $@53: %empty */ #line 4442 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } #line 33084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 463: /* sp_labeled_control: sp_control_label LOOP_SYM $@53 loop_body pop_sp_loop_label */ #line 4447 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 33090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 464: /* $@54: %empty */ #line 4449 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } #line 33099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 465: /* sp_labeled_control: sp_control_label WHILE_SYM $@54 while_body pop_sp_loop_label */ #line 4454 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 33105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 466: /* $@55: %empty */ #line 4456 "/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 33114 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 467: /* $@56: %empty */ #line 4461 "/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 33125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 468: /* $@57: %empty */ #line 4468 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_for_loop_finalize(thd, (yyvsp[-2].for_loop)))) MYSQL_YYABORT; } #line 33134 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 469: /* sp_labeled_control: sp_control_label FOR_SYM $@55 sp_for_loop_index_and_bounds $@56 for_loop_statements $@57 pop_sp_loop_label */ #line 4473 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-4].for_loop)))) MYSQL_YYABORT; } #line 33143 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 470: /* $@58: %empty */ #line 4478 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } #line 33152 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 471: /* sp_labeled_control: sp_control_label REPEAT_SYM $@58 repeat_body pop_sp_loop_label */ #line 4483 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 33158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 472: /* $@59: %empty */ #line 4488 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } #line 33167 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 473: /* sp_unlabeled_control: LOOP_SYM $@59 loop_body */ #line 4493 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_pop_loop_empty_label(thd); } #line 33175 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 474: /* $@60: %empty */ #line 4497 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } #line 33184 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 475: /* sp_unlabeled_control: WHILE_SYM $@60 while_body */ #line 4502 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_pop_loop_empty_label(thd); } #line 33192 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 476: /* $@61: %empty */ #line 4506 "/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 33203 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 477: /* $@62: %empty */ #line 4513 "/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 33214 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 478: /* sp_unlabeled_control: FOR_SYM $@61 sp_for_loop_index_and_bounds $@62 for_loop_statements */ #line 4520 "/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 33226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 479: /* $@63: %empty */ #line 4528 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } #line 33235 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 480: /* sp_unlabeled_control: REPEAT_SYM $@63 repeat_body */ #line 4533 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_pop_loop_empty_label(thd); } #line 33243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 481: /* trg_action_time: BEFORE_SYM */ #line 4540 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; } #line 33249 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 482: /* trg_action_time: AFTER_SYM */ #line 4542 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; } #line 33255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 483: /* trg_event: INSERT */ #line 4547 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->trg_chistics.event= TRG_EVENT_INSERT; } #line 33261 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 484: /* trg_event: UPDATE_SYM */ #line 4549 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->trg_chistics.event= TRG_EVENT_UPDATE; } #line 33267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 485: /* trg_event: DELETE_SYM */ #line 4551 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->trg_chistics.event= TRG_EVENT_DELETE; } #line 33273 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 486: /* $@64: %empty */ #line 4556 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.option_list= NULL; } #line 33279 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 487: /* create_body: create_field_list_parens $@64 opt_create_table_options opt_create_partitioning opt_create_select */ #line 4557 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33285 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 488: /* create_body: opt_create_table_options opt_create_partitioning opt_create_select */ #line 4558 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 489: /* create_body: create_like */ #line 4560 "/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 33306 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 490: /* create_like: LIKE table_ident */ #line 4573 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table)= (yyvsp[0].table); } #line 33312 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 491: /* create_like: LEFT_PAREN_LIKE LIKE table_ident ')' */ #line 4574 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table)= (yyvsp[-1].table); } #line 33318 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 492: /* opt_create_select: %empty */ #line 4578 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33324 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 493: /* opt_create_select: opt_duplicate opt_as create_select_query_expression opt_versioning_option */ #line 4581 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.add(DDL_options_st::OPT_CREATE_SELECT); if (Lex->check_cte_dependencies_and_resolve_references()) MYSQL_YYABORT; } #line 33334 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 494: /* create_select_query_expression: query_expression */ #line 4590 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->parsed_insert_select((yyvsp[0].select_lex_unit)->first_select())) MYSQL_YYABORT; } #line 33343 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 495: /* create_select_query_expression: LEFT_PAREN_WITH with_clause query_expression_no_with_clause ')' */ #line 4595 "/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 33355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 496: /* opt_create_partitioning: opt_partitioning */ #line 4606 "/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 33369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 497: /* opt_partitioning: %empty */ #line 4642 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33375 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 499: /* $@65: %empty */ #line 4648 "/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 33390 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 501: /* have_partitioning: %empty */ #line 4663 "/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 33406 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 502: /* $@66: %empty */ #line 4678 "/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 33424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 503: /* partition_entry: PARTITION_SYM $@66 partition */ #line 4692 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 33432 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 504: /* $@67: %empty */ #line 4699 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->safe_to_cache_query= 1; } #line 33438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 506: /* part_type_def: opt_linear KEY_SYM opt_key_algo '(' part_field_list ')' */ #line 4705 "/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 33449 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 507: /* $@68: %empty */ #line 4712 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->part_type= HASH_PARTITION; } #line 33455 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 508: /* part_type_def: opt_linear HASH_SYM $@68 part_func */ #line 4713 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 509: /* part_type_def: RANGE_SYM part_func */ #line 4715 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->part_type= RANGE_PARTITION; } #line 33467 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 510: /* part_type_def: RANGE_SYM part_column_list */ #line 4717 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->part_type= RANGE_PARTITION; } #line 33473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 511: /* $@69: %empty */ #line 4719 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= IN_PART_FUNC; } #line 33481 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 512: /* part_type_def: LIST_SYM $@69 part_func */ #line 4723 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->part_type= LIST_PARTITION; Select->parsing_place= NO_MATTER; } #line 33490 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 513: /* part_type_def: LIST_SYM part_column_list */ #line 4728 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->part_type= LIST_PARTITION; } #line 33496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 514: /* $@70: %empty */ #line 4730 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->part_info->vers_init_info(thd))) MYSQL_YYABORT; } #line 33505 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 516: /* opt_linear: %empty */ #line 4738 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33511 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 517: /* opt_linear: LINEAR_SYM */ #line 4740 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->linear_hash_ind= TRUE;} #line 33517 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 518: /* opt_key_algo: %empty */ #line 4745 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;} #line 33523 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 519: /* opt_key_algo: ALGORITHM_SYM '=' real_ulong_num */ #line 4747 "/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 33541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 520: /* part_field_list: %empty */ #line 4763 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 521: /* part_field_list: part_field_item_list */ #line 4764 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33553 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 522: /* part_field_item_list: part_field_item */ #line 4768 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33559 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 523: /* part_field_item_list: part_field_item_list ',' part_field_item */ #line 4769 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 524: /* part_field_item: ident */ #line 4774 "/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 33580 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 525: /* part_column_list: COLUMNS '(' part_field_list ')' */ #line 4788 "/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 33590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 526: /* part_func: '(' part_func_expr ')' */ #line 4798 "/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 33602 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 527: /* sub_part_func: '(' part_func_expr ')' */ #line 4809 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->part_info->set_part_expr(thd, (yyvsp[-1].item), TRUE))) MYSQL_YYABORT; } #line 33611 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 528: /* opt_num_parts: %empty */ #line 4817 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 529: /* opt_num_parts: PARTITIONS_SYM real_ulong_num */ #line 4819 "/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 33631 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 530: /* opt_sub_part: %empty */ #line 4831 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 531: /* $@71: %empty */ #line 4833 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->subpart_type= HASH_PARTITION; } #line 33643 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 532: /* opt_sub_part: SUBPARTITION_SYM BY opt_linear HASH_SYM sub_part_func $@71 opt_num_subparts */ #line 4834 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33649 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 533: /* $@72: %empty */ #line 4837 "/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 33659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 534: /* opt_sub_part: SUBPARTITION_SYM BY opt_linear KEY_SYM opt_key_algo '(' sub_part_field_list ')' $@72 opt_num_subparts */ #line 4842 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33665 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 535: /* sub_part_field_list: sub_part_field_item */ #line 4846 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 536: /* sub_part_field_list: sub_part_field_list ',' sub_part_field_item */ #line 4847 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33677 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 537: /* sub_part_field_item: ident */ #line 4852 "/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 33692 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 538: /* part_func_expr: bit_expr */ #line 4866 "/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 33705 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 539: /* opt_num_subparts: %empty */ #line 4877 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 540: /* opt_num_subparts: SUBPARTITIONS_SYM real_ulong_num */ #line 4879 "/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 33724 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 541: /* part_defs: %empty */ #line 4891 "/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 33738 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 542: /* part_defs: '(' part_def_list ')' */ #line 4901 "/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 33761 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 543: /* part_def_list: part_definition */ #line 4922 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 544: /* part_def_list: part_def_list ',' part_definition */ #line 4923 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33773 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 547: /* $@73: %empty */ #line 4933 "/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 33793 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 548: /* part_definition: opt_partition $@73 part_name opt_part_values opt_part_options opt_sub_partition */ #line 4952 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 549: /* part_name: ident */ #line 4957 "/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 33811 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 550: /* opt_part_values: %empty */ #line 4968 "/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 33831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 551: /* $@74: %empty */ #line 4984 "/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 33848 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 552: /* opt_part_values: VALUES_LESS_SYM THAN_SYM $@74 part_func_max */ #line 4996 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33854 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 553: /* $@75: %empty */ #line 4998 "/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 33871 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 554: /* opt_part_values: VALUES_IN_SYM $@75 part_values_in */ #line 5010 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33877 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 555: /* opt_part_values: CURRENT_SYM */ #line 5012 "/home/buildbot/git/sql/sql_yacc.yy" { #ifdef WITH_PARTITION_STORAGE_ENGINE if (Lex->part_values_current(thd)) MYSQL_YYABORT; #endif } #line 33888 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 556: /* opt_part_values: HISTORY_SYM */ #line 5019 "/home/buildbot/git/sql/sql_yacc.yy" { #ifdef WITH_PARTITION_STORAGE_ENGINE if (Lex->part_values_history(thd)) MYSQL_YYABORT; #endif } #line 33899 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 557: /* opt_part_values: DEFAULT */ #line 5026 "/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 33920 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 558: /* part_func_max: MAXVALUE_SYM */ #line 5046 "/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 33942 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 559: /* part_func_max: part_value_item */ #line 5063 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33948 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 560: /* part_values_in: part_value_item */ #line 5068 "/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 33979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 561: /* part_values_in: '(' part_value_list ')' */ #line 5095 "/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 33992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 562: /* part_value_list: part_value_item */ #line 5106 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 33998 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 563: /* part_value_list: part_value_list ',' part_value_item */ #line 5107 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 564: /* $@76: %empty */ #line 5112 "/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 34018 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 565: /* $@77: %empty */ #line 5121 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 566: /* part_value_item: '(' $@76 part_value_item_list $@77 ')' */ #line 5123 "/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 34049 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 567: /* part_value_item_list: part_value_expr_item */ #line 5146 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34055 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 568: /* part_value_item_list: part_value_item_list ',' part_value_expr_item */ #line 5147 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 569: /* part_value_expr_item: MAXVALUE_SYM */ #line 5152 "/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 34076 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 570: /* part_value_expr_item: bit_expr */ #line 5163 "/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 34094 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 571: /* opt_sub_partition: %empty */ #line 5181 "/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 34112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 572: /* opt_sub_partition: '(' sub_part_list ')' */ #line 5195 "/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 34139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 573: /* sub_part_list: sub_part_definition */ #line 5220 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 574: /* sub_part_list: sub_part_list ',' sub_part_definition */ #line 5221 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34151 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 575: /* $@78: %empty */ #line 5226 "/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 34188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 576: /* sub_part_definition: SUBPARTITION_SYM $@78 sub_name opt_subpart_options */ #line 5258 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34194 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 577: /* sub_name: ident_or_text */ #line 5263 "/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 34204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 578: /* opt_part_options: %empty */ #line 5271 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 579: /* opt_part_options: part_option_list */ #line 5272 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34216 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 580: /* part_option_list: part_option_list part_option */ #line 5276 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34222 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 581: /* part_option_list: part_option */ #line 5277 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34228 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 582: /* part_option: server_part_option */ #line 5281 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34234 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 583: /* part_option: engine_defined_option */ #line 5283 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].engine_option_value_ptr)->link(&Lex->part_info->curr_part_elem->option_list, &Lex->option_list_last); } #line 34243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 584: /* opt_subpart_options: %empty */ #line 5290 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34249 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 585: /* opt_subpart_options: subpart_option_list */ #line 5291 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 586: /* subpart_option_list: subpart_option_list server_part_option */ #line 5295 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34261 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 587: /* subpart_option_list: server_part_option */ #line 5296 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 588: /* server_part_option: TABLESPACE opt_equal ident_or_text */ #line 5301 "/home/buildbot/git/sql/sql_yacc.yy" { /* Compatibility with MySQL */ } #line 34273 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 589: /* server_part_option: opt_storage ENGINE_SYM opt_equal storage_engines */ #line 5303 "/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 34283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 590: /* server_part_option: CONNECTION_SYM opt_equal TEXT_STRING_sys */ #line 5309 "/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 34293 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 591: /* server_part_option: NODEGROUP_SYM opt_equal real_ulong_num */ #line 5315 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); } #line 34299 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 592: /* server_part_option: MAX_ROWS opt_equal real_ulonglong_num */ #line 5317 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[0].ulonglong_number); } #line 34305 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 593: /* server_part_option: MIN_ROWS opt_equal real_ulonglong_num */ #line 5319 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[0].ulonglong_number); } #line 34311 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 594: /* server_part_option: DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys */ #line 5321 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[0].lex_str).str; } #line 34317 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 595: /* server_part_option: INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys */ #line 5323 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[0].lex_str).str; } #line 34323 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 596: /* server_part_option: COMMENT_SYM opt_equal TEXT_STRING_sys */ #line 5325 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; } #line 34329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 597: /* opt_versioning_rotation: %empty */ #line 5329 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34335 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 598: /* $@79: %empty */ #line 5330 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= "INTERVAL"; } #line 34341 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 599: /* opt_versioning_rotation: $@79 INTERVAL_SYM expr interval opt_versioning_interval_start opt_vers_auto_part */ #line 5332 "/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[-3].item), (yyvsp[-2].interval), (yyvsp[-1].item), (yyvsp[0].num), table_name))) MYSQL_YYABORT; } #line 34353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 600: /* opt_versioning_rotation: LIMIT ulonglong_num opt_vers_auto_part */ #line 5340 "/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_limit((yyvsp[-1].ulonglong_number), (yyvsp[0].num), table_name))) MYSQL_YYABORT; } #line 34364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 601: /* opt_versioning_interval_start: %empty */ #line 5351 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= NULL; } #line 34372 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 602: /* opt_versioning_interval_start: STARTS_SYM literal */ #line 5355 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 34380 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 603: /* opt_vers_auto_part: %empty */ #line 5362 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 34388 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 604: /* opt_vers_auto_part: AUTO_SYM */ #line 5366 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 34396 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 605: /* opt_as: %empty */ #line 5375 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34402 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 606: /* opt_as: AS */ #line 5376 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 607: /* opt_create_database_options: %empty */ #line 5380 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34414 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 608: /* opt_create_database_options: create_database_options */ #line 5381 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 609: /* create_database_options: create_database_option */ #line 5385 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 610: /* create_database_options: create_database_options create_database_option */ #line 5386 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34432 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 611: /* create_database_option: default_collation */ #line 5390 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 612: /* create_database_option: default_charset */ #line 5391 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 34444 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 613: /* create_database_option: COMMENT_SYM opt_equal TEXT_STRING_sys */ #line 5393 "/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 34453 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 614: /* opt_if_not_exists_table_element: %empty */ #line 5401 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_exists= FALSE; } #line 34461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 615: /* opt_if_not_exists_table_element: IF_SYM not EXISTS */ #line 5405 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_exists= TRUE; } #line 34469 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 616: /* opt_if_not_exists: %empty */ #line 5412 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.object_ddl_options).init(); } #line 34477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 617: /* opt_if_not_exists: IF_SYM not EXISTS */ #line 5416 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_NOT_EXISTS); } #line 34485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 618: /* create_or_replace: CREATE */ #line 5423 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.object_ddl_options).init(); } #line 34493 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 619: /* create_or_replace: CREATE OR_SYM REPLACE */ #line 5427 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.object_ddl_options).set(DDL_options_st::OPT_OR_REPLACE); } #line 34501 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 627: /* create_table_option: ENGINE_SYM opt_equal ident_or_text */ #line 5450 "/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 34520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 628: /* create_table_option: MAX_ROWS opt_equal ulonglong_num */ #line 5465 "/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 34529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 629: /* create_table_option: MIN_ROWS opt_equal ulonglong_num */ #line 5470 "/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 34538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 630: /* create_table_option: AVG_ROW_LENGTH opt_equal ulong_num */ #line 5475 "/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 34547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 631: /* create_table_option: PASSWORD_SYM opt_equal TEXT_STRING_sys */ #line 5480 "/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 34556 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 632: /* create_table_option: COMMENT_SYM opt_equal TEXT_STRING_sys */ #line 5485 "/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 34565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 633: /* create_table_option: AUTO_INC opt_equal ulonglong_num */ #line 5490 "/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 34574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 634: /* create_table_option: PACK_KEYS_SYM opt_equal ulong_num */ #line 5495 "/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 34593 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 635: /* create_table_option: PACK_KEYS_SYM opt_equal DEFAULT */ #line 5510 "/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 34603 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 636: /* create_table_option: STATS_AUTO_RECALC_SYM opt_equal ulong_num */ #line 5516 "/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 34622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 637: /* create_table_option: STATS_AUTO_RECALC_SYM opt_equal DEFAULT */ #line 5531 "/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 34631 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 638: /* create_table_option: STATS_PERSISTENT_SYM opt_equal ulong_num */ #line 5536 "/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 34650 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 639: /* create_table_option: STATS_PERSISTENT_SYM opt_equal DEFAULT */ #line 5551 "/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 34660 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 640: /* create_table_option: STATS_SAMPLE_PAGES_SYM opt_equal ulong_num */ #line 5557 "/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 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 34682 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 641: /* create_table_option: STATS_SAMPLE_PAGES_SYM opt_equal DEFAULT */ #line 5575 "/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 34691 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 642: /* create_table_option: CHECKSUM_SYM opt_equal ulong_num */ #line 5580 "/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 34700 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 643: /* create_table_option: TABLE_CHECKSUM_SYM opt_equal ulong_num */ #line 5585 "/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 34709 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 644: /* create_table_option: PAGE_CHECKSUM_SYM opt_equal choice */ #line 5590 "/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 34718 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 645: /* create_table_option: DELAY_KEY_WRITE_SYM opt_equal ulong_num */ #line 5595 "/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 34727 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 646: /* create_table_option: ROW_FORMAT_SYM opt_equal row_types */ #line 5600 "/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 34736 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 647: /* $@80: %empty */ #line 5605 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->first_select_lex()->table_list.save_and_clear(&Lex->save_list); } #line 34744 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 648: /* create_table_option: UNION_SYM opt_equal $@80 '(' opt_table_list ')' */ #line 5609 "/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 34770 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 651: /* create_table_option: INSERT_METHOD opt_equal merge_insert_types */ #line 5633 "/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 34779 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 652: /* create_table_option: DATA_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys */ #line 5638 "/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 34788 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 653: /* create_table_option: INDEX_SYM DIRECTORY_SYM opt_equal TEXT_STRING_sys */ #line 5643 "/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 34797 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 654: /* create_table_option: TABLESPACE ident */ #line 5648 "/home/buildbot/git/sql/sql_yacc.yy" { /* Compatiblity with MySQL */ } #line 34803 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 655: /* create_table_option: STORAGE_SYM DISK_SYM */ #line 5650 "/home/buildbot/git/sql/sql_yacc.yy" {Lex->create_info.storage_media= HA_SM_DISK;} #line 34809 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 656: /* create_table_option: STORAGE_SYM MEMORY_SYM */ #line 5652 "/home/buildbot/git/sql/sql_yacc.yy" {Lex->create_info.storage_media= HA_SM_MEMORY;} #line 34815 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 657: /* create_table_option: CONNECTION_SYM opt_equal TEXT_STRING_sys */ #line 5654 "/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 34825 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 658: /* create_table_option: KEY_BLOCK_SIZE opt_equal ulong_num */ #line 5660 "/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 34834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 659: /* create_table_option: TRANSACTIONAL_SYM opt_equal choice */ #line 5665 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL; Lex->create_info.transactional= (yyvsp[0].choice); } #line 34843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 660: /* create_table_option: engine_defined_option */ #line 5670 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].engine_option_value_ptr)->link(&Lex->create_info.option_list, &Lex->option_list_last); } #line 34851 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 661: /* create_table_option: SEQUENCE_SYM opt_equal choice */ #line 5674 "/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 34860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 663: /* engine_defined_option: ident_options equal TEXT_STRING_sys */ #line 5683 "/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)); (yyval.engine_option_value_ptr)= new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].lex_str), true); MYSQL_YYABORT_UNLESS((yyval.engine_option_value_ptr)); } #line 34871 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 664: /* engine_defined_option: ident_options equal ident */ #line 5690 "/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)); (yyval.engine_option_value_ptr)= new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), false); MYSQL_YYABORT_UNLESS((yyval.engine_option_value_ptr)); } #line 34882 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 665: /* engine_defined_option: ident_options equal real_ulonglong_num */ #line 5697 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.engine_option_value_ptr)= new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), thd->mem_root); MYSQL_YYABORT_UNLESS((yyval.engine_option_value_ptr)); } #line 34891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 666: /* engine_defined_option: ident_options equal DEFAULT */ #line 5702 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.engine_option_value_ptr)= new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys)); MYSQL_YYABORT_UNLESS((yyval.engine_option_value_ptr)); } #line 34900 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 668: /* ident_options: keyword_options */ #line 5711 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } #line 34909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 673: /* versioning_option: WITH_SYSTEM_SYM VERSIONING_SYM */ #line 5732 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->create_info.options & HA_LEX_CREATE_TMP_TABLE)) { if (!DBUG_IF("sysvers_force")) { 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 34929 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 674: /* default_charset: opt_default charset opt_equal charset_name_or_default */ #line 5751 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->create_info.add_table_option_default_charset( thd, thd->variables.character_set_collations, (yyvsp[0].charset)))) MYSQL_YYABORT; } #line 34939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 675: /* default_collation: opt_default COLLATE_SYM opt_equal collation_name_or_default */ #line 5760 "/home/buildbot/git/sql/sql_yacc.yy" { Table_specification_st *cinfo= &Lex->create_info; if (unlikely(cinfo->add_table_option_default_collation( thd, thd->variables.character_set_collations, (yyvsp[0].Lex_extended_collation)))) MYSQL_YYABORT; } #line 34950 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 676: /* storage_engines: ident_or_text */ #line 5770 "/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 34961 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 677: /* known_storage_engines: ident_or_text */ #line 5780 "/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 34973 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 678: /* row_types: DEFAULT */ #line 5790 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_DEFAULT; } #line 34979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 679: /* row_types: FIXED_SYM */ #line 5791 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_FIXED; } #line 34985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 680: /* row_types: DYNAMIC_SYM */ #line 5792 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_DYNAMIC; } #line 34991 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 681: /* row_types: COMPRESSED_SYM */ #line 5793 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_COMPRESSED; } #line 34997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 682: /* row_types: REDUNDANT_SYM */ #line 5794 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_REDUNDANT; } #line 35003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 683: /* row_types: COMPACT_SYM */ #line 5795 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_COMPACT; } #line 35009 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 684: /* row_types: PAGE_SYM */ #line 5796 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_PAGE; } #line 35015 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 685: /* merge_insert_types: NO_SYM */ #line 5800 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= MERGE_INSERT_DISABLED; } #line 35021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 686: /* merge_insert_types: FIRST_SYM */ #line 5801 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; } #line 35027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 687: /* merge_insert_types: LAST_SYM */ #line 5802 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; } #line 35033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 688: /* udf_type: STRING_SYM */ #line 5806 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.num) = (int) STRING_RESULT; } #line 35039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 689: /* udf_type: REAL */ #line 5807 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.num) = (int) REAL_RESULT; } #line 35045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 690: /* udf_type: DECIMAL_SYM */ #line 5808 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.num) = (int) DECIMAL_RESULT; } #line 35051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 691: /* udf_type: INT_SYM */ #line 5809 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.num) = (int) INT_RESULT; } #line 35057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 692: /* create_field_list: field_list */ #line 5815 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_last_non_select_table= Lex->last_table(); } #line 35065 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 693: /* create_field_list_parens: LEFT_PAREN_ALT field_list ')' */ #line 5822 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_last_non_select_table= Lex->last_table(); } #line 35073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 696: /* field_list_item: column_def */ #line 5833 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35079 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 700: /* field_list_item: PERIOD_SYM period_for_application_time */ #line 5837 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35085 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 701: /* column_def: field_spec */ #line 5842 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.create_field)= (yyvsp[0].create_field); } #line 35091 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 702: /* column_def: field_spec opt_constraint references */ #line 5844 "/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 35102 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 703: /* $@81: %empty */ #line 5854 "/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 35112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 704: /* key_def: key_or_index opt_if_not_exists opt_ident opt_USING_key_algorithm $@81 '(' key_list ')' normal_key_options */ #line 5859 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35118 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 705: /* $@82: %empty */ #line 5861 "/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 35128 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 706: /* key_def: key_or_index opt_if_not_exists ident TYPE_SYM btree_or_rtree $@82 '(' key_list ')' normal_key_options */ #line 5866 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35134 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 707: /* $@83: %empty */ #line 5868 "/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 35144 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 708: /* key_def: fulltext opt_key_or_index opt_if_not_exists opt_ident $@83 '(' key_list ')' fulltext_key_options */ #line 5873 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 709: /* $@84: %empty */ #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 35160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 710: /* key_def: spatial opt_key_or_index opt_if_not_exists opt_ident $@84 '(' key_list ')' spatial_key_options */ #line 5880 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 711: /* $@85: %empty */ #line 5884 "/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 35176 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 712: /* key_def: opt_constraint constraint_key_type opt_if_not_exists opt_ident opt_USING_key_algorithm $@85 '(' key_list opt_without_overlaps ')' normal_key_options */ #line 5889 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35182 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 713: /* $@86: %empty */ #line 5892 "/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 35192 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 714: /* key_def: opt_constraint constraint_key_type opt_if_not_exists ident TYPE_SYM btree_or_rtree $@86 '(' key_list opt_without_overlaps ')' normal_key_options */ #line 5897 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 35198 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 715: /* $@87: %empty */ #line 5899 "/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 35212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 716: /* key_def: opt_constraint FOREIGN KEY_SYM opt_if_not_exists opt_ident $@87 '(' key_list ')' references */ #line 5909 "/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 35222 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 717: /* constraint_def: opt_constraint check_constraint */ #line 5918 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->add_constraint((yyvsp[-1].lex_str), (yyvsp[0].virtual_column), FALSE); } #line 35230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 718: /* period_for_system_time: PERIOD_SYM FOR_SYSTEM_TIME_SYM '(' ident ',' ident ')' */ #line 5926 "/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 35239 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 719: /* period_for_application_time: FOR_SYM ident '(' ident ',' ident ')' */ #line 5934 "/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 35248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 720: /* opt_check_constraint: %empty */ #line 5941 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.virtual_column)= (Virtual_column_info*) 0; } #line 35254 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 721: /* opt_check_constraint: check_constraint */ #line 5942 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.virtual_column)= (yyvsp[0].virtual_column);} #line 35260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 722: /* check_constraint: CHECK_SYM '(' expr ')' */ #line 5947 "/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 35271 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 723: /* opt_constraint_no_id: %empty */ #line 5956 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35277 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 724: /* opt_constraint_no_id: CONSTRAINT */ #line 5957 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 725: /* opt_constraint: %empty */ #line 5961 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 35289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 726: /* opt_constraint: constraint */ #line 5962 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } #line 35295 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 727: /* constraint: CONSTRAINT opt_ident */ #line 5966 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } #line 35301 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 728: /* @88: %empty */ #line 5971 "/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)); (yyval.create_field)= f; lex->parsing_options.lookup_keywords_after_qualifier= true; } #line 35321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 729: /* field_spec: field_ident @88 field_type_or_serial opt_check_constraint */ #line 5987 "/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 35344 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 730: /* $@89: %empty */ #line 6009 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->set_attributes(thd, (yyvsp[0].Lex_field_type), COLUMN_DEFINITION_TABLE_FIELD); } #line 35353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 731: /* field_type_or_serial: qualified_field_type $@89 field_def */ #line 6014 "/home/buildbot/git/sql/sql_yacc.yy" { auto tmp= (yyvsp[-2].Lex_field_type).charset_collation_attrs(); if (tmp.merge_column_charset_clause_and_collate_clause( thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs))) MYSQL_YYABORT; Lex->last_field->set_charset_collation_attrs( thd, thd->variables.character_set_collations, tmp); } #line 35367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 732: /* $@90: %empty */ #line 6024 "/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; Lex->alter_info.flags|= ALTER_ADD_INDEX; } #line 35378 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 734: /* opt_serial_attribute: %empty */ #line 6034 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35384 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 735: /* opt_serial_attribute: opt_serial_attribute_list */ #line 6035 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35390 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 736: /* opt_serial_attribute_list: opt_serial_attribute_list serial_attribute */ #line 6039 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35396 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 738: /* opt_asrow_attribute: %empty */ #line 6044 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35402 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 739: /* opt_asrow_attribute: opt_asrow_attribute_list */ #line 6045 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 740: /* opt_asrow_attribute_list: opt_asrow_attribute_list asrow_attribute */ #line 6049 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35414 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 742: /* field_def: %empty */ #line 6054 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 35420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 744: /* field_def: attribute_list compressed_deprecated_column_attribute */ #line 6056 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs)= (yyvsp[-1].Lex_exact_charset_extended_collation_attrs); } #line 35426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 745: /* field_def: attribute_list compressed_deprecated_column_attribute attribute_list */ #line 6058 "/home/buildbot/git/sql/sql_yacc.yy" { if (((yyval.Lex_exact_charset_extended_collation_attrs)= (yyvsp[-2].Lex_exact_charset_extended_collation_attrs)).merge_column_collate_clause_and_collate_clause( thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs))) MYSQL_YYABORT; } #line 35436 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 746: /* $@91: %empty */ #line 6064 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->vcol_info= (yyvsp[0].virtual_column); } #line 35444 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 747: /* field_def: opt_generated_always AS virtual_column_func $@91 vcol_opt_specifier vcol_opt_attribute */ #line 6068 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 35452 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 748: /* field_def: opt_generated_always AS ROW_SYM START_SYM opt_asrow_attribute */ #line 6072 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->last_field_generated_always_as_row_start()) MYSQL_YYABORT; (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 35462 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 749: /* field_def: opt_generated_always AS ROW_SYM END opt_asrow_attribute */ #line 6078 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->last_field_generated_always_as_row_end()) MYSQL_YYABORT; (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 35472 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 750: /* opt_generated_always: %empty */ #line 6086 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35478 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 751: /* opt_generated_always: GENERATED_SYM ALWAYS_SYM */ #line 6087 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35484 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 752: /* vcol_opt_specifier: %empty */ #line 6092 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->vcol_info->set_vcol_type(VCOL_GENERATED_VIRTUAL); } #line 35492 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 753: /* vcol_opt_specifier: VIRTUAL_SYM */ #line 6096 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->vcol_info->set_vcol_type(VCOL_GENERATED_VIRTUAL); } #line 35500 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 754: /* vcol_opt_specifier: PERSISTENT_SYM */ #line 6100 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->vcol_info->set_vcol_type(VCOL_GENERATED_STORED); } #line 35508 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 755: /* vcol_opt_specifier: STORED_SYM */ #line 6104 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->vcol_info->set_vcol_type(VCOL_GENERATED_STORED); } #line 35516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 756: /* vcol_opt_attribute: %empty */ #line 6110 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 757: /* vcol_opt_attribute: vcol_opt_attribute_list */ #line 6111 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 758: /* vcol_opt_attribute_list: vcol_opt_attribute_list vcol_attribute */ #line 6115 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 35534 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 760: /* vcol_attribute: UNIQUE_SYM */ #line 6121 "/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 35544 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 761: /* vcol_attribute: UNIQUE_SYM KEY_SYM */ #line 6127 "/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 35554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 762: /* vcol_attribute: COMMENT_SYM TEXT_STRING_sys */ #line 6132 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->comment= (yyvsp[0].lex_str); } #line 35560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 763: /* vcol_attribute: INVISIBLE_SYM */ #line 6134 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->invisible= INVISIBLE_USER; } #line 35568 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 764: /* $@92: %empty */ #line 6141 "/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 35583 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 765: /* parse_vcol_expr: PARSE_VCOL_EXPR_SYM $@92 expr */ #line 6152 "/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 35595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 767: /* parenthesized_expr: expr ',' expr_list */ #line 6164 "/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 35606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 768: /* virtual_column_func: '(' parenthesized_expr ')' */ #line 6174 "/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 35618 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 769: /* virtual_column_func: subquery */ #line 6182 "/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 35632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 773: /* column_default_expr: expr_or_literal */ #line 6198 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.virtual_column)= add_virtual_expression(thd, (yyvsp[0].item))))) MYSQL_YYABORT; } #line 35641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 774: /* field_type: field_type_all */ #line 6205 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->map_data_type(Lex_ident_sys(), &((yyval.Lex_field_type)= (yyvsp[0].Lex_field_type))); } #line 35649 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 775: /* qualified_field_type: field_type_all */ #line 6212 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->map_data_type(Lex_ident_sys(), &((yyval.Lex_field_type)= (yyvsp[0].Lex_field_type))); } #line 35657 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 776: /* qualified_field_type: sp_decl_ident '.' field_type_all */ #line 6216 "/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 35666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 777: /* udt_name: IDENT_sys */ #line 6223 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].ident_sys); } #line 35672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 778: /* udt_name: reserved_keyword_udt */ #line 6224 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].kwd); } #line 35678 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 779: /* udt_name: non_reserved_keyword_udt */ #line 6225 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].kwd); } #line 35684 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 785: /* field_type_all: udt_name float_options srid_option */ #line 6235 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->set_field_type_udt(&(yyval.Lex_field_type), (yyvsp[-2].lex_str), (yyvsp[-1].Lex_length_and_dec))) MYSQL_YYABORT; } #line 35693 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 786: /* field_type_numeric: int_type opt_field_length last_field_options */ #line 6243 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set_handler_length_flags((yyvsp[-2].type_handler), (yyvsp[-1].Lex_length_and_dec), (uint32) (yyvsp[0].ulong_num)); } #line 35701 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 787: /* field_type_numeric: real_type opt_precision last_field_options */ #line 6246 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set((yyvsp[-2].type_handler), (yyvsp[-1].Lex_length_and_dec)); } #line 35707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 788: /* field_type_numeric: FLOAT_SYM float_options last_field_options */ #line 6248 "/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).has_explicit_length() && !(yyvsp[-1].Lex_length_and_dec).has_explicit_dec()) { if (unlikely((yyvsp[-1].Lex_length_and_dec).length() > PRECISION_FOR_DOUBLE)) my_yyabort_error((ER_WRONG_FIELD_SPEC, MYF(0), Lex->last_field->field_name.str)); if ((yyvsp[-1].Lex_length_and_dec).length() > PRECISION_FOR_FLOAT) (yyval.Lex_field_type).set(&type_handler_double); else (yyval.Lex_field_type).set(&type_handler_float); } } #line 35725 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 789: /* field_type_numeric: BIT_SYM opt_field_length */ #line 6262 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_bit, (yyvsp[0].Lex_length_and_dec)); } #line 35733 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 790: /* field_type_numeric: BOOL_SYM */ #line 6266 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set_handler_length(&type_handler_stiny, 1); } #line 35741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 791: /* field_type_numeric: BOOLEAN_SYM */ #line 6270 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set_handler_length(&type_handler_stiny, 1); } #line 35749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 792: /* field_type_numeric: DECIMAL_SYM float_options last_field_options */ #line 6274 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} #line 35755 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 793: /* field_type_numeric: NUMBER_ORACLE_SYM float_options last_field_options */ #line 6276 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyvsp[-1].Lex_length_and_dec).has_explicit_length()) (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec)); else (yyval.Lex_field_type).set(&type_handler_double); } #line 35766 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 794: /* field_type_numeric: NUMERIC_SYM float_options last_field_options */ #line 6283 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} #line 35772 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 795: /* field_type_numeric: FIXED_SYM float_options last_field_options */ #line 6285 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} #line 35778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 796: /* opt_binary_and_compression: %empty */ #line 6290 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 35784 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 797: /* opt_binary_and_compression: binary */ #line 6291 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs)= (yyvsp[0].Lex_exact_charset_extended_collation_attrs); } #line 35790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 798: /* opt_binary_and_compression: binary compressed_deprecated_data_type_attribute */ #line 6292 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs)= (yyvsp[-1].Lex_exact_charset_extended_collation_attrs); } #line 35796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 799: /* opt_binary_and_compression: compressed opt_binary */ #line 6293 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs)= (yyvsp[0].Lex_exact_charset_extended_collation_attrs); } #line 35802 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 800: /* field_type_string: char opt_field_length opt_binary */ #line 6298 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].Lex_length_and_dec), (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 35810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 801: /* field_type_string: nchar opt_field_length opt_bin_mod */ #line 6302 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].Lex_length_and_dec), Lex_exact_charset_extended_collation_attrs::national((yyvsp[0].num))); } #line 35819 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 802: /* field_type_string: BINARY opt_field_length */ #line 6307 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[0].Lex_length_and_dec), &my_charset_bin); } #line 35827 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 803: /* field_type_string: varchar opt_field_length opt_binary_and_compression */ #line 6311 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec), (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 35835 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 804: /* field_type_string: VARCHAR2_ORACLE_SYM opt_field_length opt_binary_and_compression */ #line 6315 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec), (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 35843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 805: /* field_type_string: nvarchar opt_field_length opt_compressed opt_bin_mod */ #line 6319 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-2].Lex_length_and_dec), Lex_exact_charset_extended_collation_attrs::national((yyvsp[0].num))); } #line 35852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 806: /* field_type_string: VARBINARY opt_field_length opt_compressed */ #line 6324 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec), &my_charset_bin); } #line 35860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 807: /* field_type_string: RAW_ORACLE_SYM opt_field_length opt_compressed */ #line 6328 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec), &my_charset_bin); } #line 35868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 808: /* field_type_temporal: YEAR_SYM opt_field_length last_field_options */ #line 6335 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyvsp[-1].Lex_length_and_dec).has_explicit_length()) { if ((yyvsp[-1].Lex_length_and_dec).length() != 4) { char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1]; my_snprintf(buff, sizeof(buff), "YEAR(%u)", (uint) (yyvsp[-1].Lex_length_and_dec).length()); warn_deprecated<1007>(thd, buff, "YEAR(4)"); } } (yyval.Lex_field_type).set(&type_handler_year, (yyvsp[-1].Lex_length_and_dec)); } #line 35885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 809: /* field_type_temporal: DATE_SYM */ #line 6347 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_newdate); } #line 35891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 810: /* field_type_temporal: TIME_SYM opt_field_length */ #line 6349 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? static_cast(&type_handler_time2) : static_cast(&type_handler_time), (yyvsp[0].Lex_length_and_dec)); } #line 35902 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 811: /* field_type_temporal: TIMESTAMP opt_field_length */ #line 6356 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? static_cast(&type_handler_timestamp2): static_cast(&type_handler_timestamp), (yyvsp[0].Lex_length_and_dec)); } #line 35913 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 812: /* field_type_temporal: DATETIME opt_field_length */ #line 6363 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(thd->type_handler_for_datetime(), (yyvsp[0].Lex_length_and_dec)); } #line 35921 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 813: /* field_type_lob: TINYBLOB opt_compressed */ #line 6371 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_tiny_blob, &my_charset_bin); } #line 35929 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 814: /* field_type_lob: BLOB_MARIADB_SYM opt_field_length opt_compressed */ #line 6375 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].Lex_length_and_dec), &my_charset_bin); } #line 35937 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 815: /* field_type_lob: BLOB_ORACLE_SYM field_length opt_compressed */ #line 6379 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].Lex_length_and_dec), &my_charset_bin); } #line 35945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 816: /* field_type_lob: BLOB_ORACLE_SYM opt_compressed */ #line 6383 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_long_blob, &my_charset_bin); } #line 35953 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 817: /* field_type_lob: MEDIUMBLOB opt_compressed */ #line 6387 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_medium_blob, &my_charset_bin); } #line 35961 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 818: /* field_type_lob: LONGBLOB opt_compressed */ #line 6391 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_long_blob, &my_charset_bin); } #line 35969 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 819: /* field_type_lob: LONG_SYM VARBINARY opt_compressed */ #line 6395 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_medium_blob, &my_charset_bin); } #line 35977 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 820: /* field_type_lob: LONG_SYM varchar opt_binary_and_compression */ #line 6399 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_medium_blob, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 35983 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 821: /* field_type_lob: TINYTEXT opt_binary_and_compression */ #line 6401 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_tiny_blob, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 35989 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 822: /* field_type_lob: TEXT_SYM opt_field_length opt_binary_and_compression */ #line 6403 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].Lex_length_and_dec), (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 35995 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 823: /* field_type_lob: MEDIUMTEXT opt_binary_and_compression */ #line 6405 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_medium_blob, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 36001 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 824: /* field_type_lob: LONGTEXT opt_binary_and_compression */ #line 6407 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_long_blob, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 36007 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 825: /* field_type_lob: CLOB_ORACLE_SYM opt_binary_and_compression */ #line 6409 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_long_blob, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 36013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 826: /* field_type_lob: LONG_SYM opt_binary_and_compression */ #line 6411 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_medium_blob, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 36019 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 827: /* field_type_lob: JSON_SYM opt_compressed */ #line 6413 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_long_blob_json, &my_charset_utf8mb4_bin); } #line 36027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 828: /* field_type_misc: ENUM '(' string_list ')' opt_binary */ #line 6420 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_enum, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 36033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 829: /* field_type_misc: SET '(' string_list ')' opt_binary */ #line 6422 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_field_type).set(&type_handler_set, (yyvsp[0].Lex_exact_charset_extended_collation_attrs)); } #line 36039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 830: /* char: CHAR_SYM */ #line 6426 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 831: /* nchar: NCHAR_SYM */ #line 6430 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 832: /* nchar: NATIONAL_SYM CHAR_SYM */ #line 6431 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 833: /* varchar: char VARYING */ #line 6435 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 834: /* varchar: VARCHAR */ #line 6436 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 835: /* nvarchar: NATIONAL_SYM VARCHAR */ #line 6440 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 836: /* nvarchar: NVARCHAR_SYM */ #line 6441 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 837: /* nvarchar: NCHAR_SYM VARCHAR */ #line 6442 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 838: /* nvarchar: NATIONAL_SYM CHAR_SYM VARYING */ #line 6443 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 839: /* nvarchar: NCHAR_SYM VARYING */ #line 6444 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 840: /* int_type: INT_SYM */ #line 6448 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_slong; } #line 36105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 841: /* int_type: TINYINT */ #line 6449 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_stiny; } #line 36111 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 842: /* int_type: SMALLINT */ #line 6450 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_sshort; } #line 36117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 843: /* int_type: MEDIUMINT */ #line 6451 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_sint24; } #line 36123 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 844: /* int_type: BIGINT */ #line 6452 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_slonglong; } #line 36129 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 845: /* real_type: REAL */ #line 6457 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? static_cast(&type_handler_float) : static_cast(&type_handler_double); } #line 36139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 846: /* real_type: DOUBLE_SYM */ #line 6462 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_double; } #line 36145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 847: /* real_type: DOUBLE_SYM PRECISION */ #line 6463 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.type_handler)= &type_handler_double; } #line 36151 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 848: /* srid_option: %empty */ #line 6468 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->srid= 0; } #line 36157 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 849: /* srid_option: REF_SYSTEM_ID_SYM '=' NUM */ #line 6471 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->srid=atoi((yyvsp[0].lex_str).str); } #line 36165 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 850: /* float_options: %empty */ #line 6477 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).reset(); } #line 36171 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 853: /* precision: '(' NUM ',' NUM ')' */ #line 6483 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).set((yyvsp[-3].lex_str).str, (yyvsp[-1].lex_str).str); } #line 36177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 854: /* field_options: %empty */ #line 6487 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 0; } #line 36183 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 855: /* field_options: SIGNED_SYM */ #line 6488 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 0; } #line 36189 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 856: /* field_options: UNSIGNED */ #line 6489 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= UNSIGNED_FLAG; } #line 36195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 857: /* field_options: ZEROFILL */ #line 6490 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= UNSIGNED_FLAG | ZEROFILL_FLAG; } #line 36201 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 858: /* field_options: UNSIGNED ZEROFILL */ #line 6491 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= UNSIGNED_FLAG | ZEROFILL_FLAG; } #line 36207 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 859: /* field_options: ZEROFILL UNSIGNED */ #line 6492 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= UNSIGNED_FLAG | ZEROFILL_FLAG; } #line 36213 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 860: /* last_field_options: field_options */ #line 6496 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->flags|= ((yyval.ulong_num)= (yyvsp[0].ulong_num)); } #line 36219 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 861: /* field_length_str: '(' LONG_NUM ')' */ #line 6500 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } #line 36225 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 862: /* field_length_str: '(' ULONGLONG_NUM ')' */ #line 6501 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } #line 36231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 863: /* field_length_str: '(' DECIMAL_NUM ')' */ #line 6502 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } #line 36237 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 864: /* field_length_str: '(' NUM ')' */ #line 6503 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } #line 36243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 865: /* field_length: field_length_str */ #line 6506 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), NULL); } #line 36249 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 866: /* field_scale: field_length_str */ #line 6510 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).set(NULL, (yyvsp[0].const_simple_string)); } #line 36255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 867: /* opt_field_length: %empty */ #line 6515 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).reset(); /* use default length */ } #line 36261 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 869: /* opt_field_scale: %empty */ #line 6520 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).reset(); } #line 36267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 871: /* opt_precision: %empty */ #line 6525 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec).reset(); } #line 36273 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 872: /* opt_precision: precision */ #line 6526 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } #line 36279 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 873: /* attribute_list: attribute_list attribute */ #line 6532 "/home/buildbot/git/sql/sql_yacc.yy" { if (((yyval.Lex_exact_charset_extended_collation_attrs)= (yyvsp[-1].Lex_exact_charset_extended_collation_attrs)).merge_column_collate_clause_and_collate_clause( thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs))) MYSQL_YYABORT; } #line 36289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 875: /* attribute: NULL_SYM */ #line 6542 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->flags&= ~NOT_NULL_FLAG; Lex->last_field->explicitly_nullable= true; (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36299 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 876: /* attribute: DEFAULT column_default_expr */ #line 6548 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->default_value= (yyvsp[0].virtual_column); (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 877: /* attribute: ON UPDATE_SYM NOW_SYM opt_default_time_precision */ #line 6553 "/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; (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36320 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 878: /* attribute: AUTO_INC */ #line 6560 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36326 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 879: /* attribute: SERIAL_SYM DEFAULT VALUE_SYM */ #line 6562 "/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; (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36337 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 880: /* attribute: COLLATE_SYM collation_name */ #line 6569 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs)= Lex_exact_charset_extended_collation_attrs((yyvsp[0].Lex_extended_collation)); } #line 36345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 881: /* attribute: serial_attribute */ #line 6572 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36351 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 882: /* opt_compression_method: %empty */ #line 6576 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.const_simple_string)= NULL; } #line 36357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 883: /* opt_compression_method: equal ident */ #line 6577 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.const_simple_string)= (yyvsp[0].ident_sys).str; } #line 36363 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 884: /* opt_compressed: %empty */ #line 6581 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36369 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 885: /* opt_compressed: compressed */ #line 6582 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 36375 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 886: /* opt_enable: %empty */ #line 6586 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 887: /* opt_enable: ENABLE_SYM */ #line 6587 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 36387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 888: /* compressed: COMPRESSED_SYM opt_compression_method */ #line 6592 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->last_field->set_compressed((yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } #line 36396 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 889: /* compressed_deprecated_data_type_attribute: COMPRESSED_SYM opt_compression_method */ #line 6600 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->last_field->set_compressed_deprecated(thd, (yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } #line 36405 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 890: /* compressed_deprecated_column_attribute: COMPRESSED_SYM opt_compression_method */ #line 6608 "/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 36415 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 891: /* asrow_attribute: not NULL_SYM opt_enable */ #line 6617 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->flags|= NOT_NULL_FLAG; } #line 36423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 892: /* asrow_attribute: opt_primary KEY_SYM */ #line 6621 "/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 36433 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 895: /* serial_attribute: engine_defined_option */ #line 6632 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].engine_option_value_ptr)->link(&Lex->last_field->option_list, &Lex->option_list_last); } #line 36441 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 896: /* serial_attribute: with_or_without_system VERSIONING_SYM */ #line 6636 "/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 36455 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 897: /* with_or_without_system: WITH_SYSTEM_SYM */ #line 6649 "/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 36465 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 898: /* with_or_without_system: WITHOUT SYSTEM */ #line 6655 "/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 36475 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 899: /* charset: CHAR_SYM SET */ #line 6664 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.kwd)= (yyvsp[-1].kwd); } #line 36481 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 900: /* charset: CHARSET */ #line 6665 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.kwd)= (yyvsp[0].kwd); } #line 36487 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 901: /* charset_name: ident_or_text */ #line 6670 "/home/buildbot/git/sql/sql_yacc.yy" { myf utf8_flag= thd->get_utf8_flag(); if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str, MY_CS_PRIMARY, MYF(utf8_flag))))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); } #line 36498 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 902: /* charset_name: BINARY */ #line 6676 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)= &my_charset_bin; } #line 36504 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 903: /* charset_name_or_default: charset_name */ #line 6680 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)=(yyvsp[0].charset); } #line 36510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 904: /* charset_name_or_default: DEFAULT */ #line 6681 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)=NULL; } #line 36516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 905: /* opt_load_data_charset: %empty */ #line 6685 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)= NULL; } #line 36522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 906: /* opt_load_data_charset: charset charset_name_or_default */ #line 6686 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)= (yyvsp[0].charset); } #line 36528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 907: /* old_or_new_charset_name: ident_or_text */ #line 6691 "/home/buildbot/git/sql/sql_yacc.yy" { myf utf8_flag= thd->get_utf8_flag(); if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str, MY_CS_PRIMARY, MYF(utf8_flag))) && !((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 36541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 908: /* old_or_new_charset_name: BINARY */ #line 6699 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)= &my_charset_bin; } #line 36547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 909: /* old_or_new_charset_name_or_default: old_or_new_charset_name */ #line 6703 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)=(yyvsp[0].charset); } #line 36553 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 910: /* old_or_new_charset_name_or_default: DEFAULT */ #line 6704 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)=NULL; } #line 36559 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 911: /* collation_name: ident_or_text */ #line 6709 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_extended_collation).set_by_name((yyvsp[0].lex_str).str, thd->get_utf8_flag())) MYSQL_YYABORT; } #line 36568 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 912: /* collation_name_or_default: collation_name */ #line 6716 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_extended_collation)=(yyvsp[0].Lex_extended_collation); } #line 36574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 913: /* collation_name_or_default: DEFAULT */ #line 6717 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_extended_collation).set_collate_default(); } #line 36580 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 914: /* opt_default: %empty */ #line 6721 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 915: /* opt_default: DEFAULT */ #line 6722 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36592 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 916: /* charset_or_alias: charset charset_name */ #line 6726 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)= (yyvsp[0].charset); } #line 36598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 917: /* charset_or_alias: ASCII_SYM */ #line 6727 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.charset)= &my_charset_latin1; } #line 36604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 918: /* charset_or_alias: UNICODE_SYM */ #line 6729 "/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 36613 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 919: /* opt_binary: %empty */ #line 6736 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).init(); } #line 36619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 921: /* binary: BYTE_SYM */ #line 6742 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).set_charset(Lex_exact_charset(&my_charset_bin)); } #line 36627 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 922: /* binary: charset_or_alias */ #line 6746 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).set_charset(Lex_exact_charset((yyvsp[0].charset))); } #line 36635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 923: /* binary: charset_or_alias BINARY */ #line 6750 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_exact_charset_extended_collation_attrs).set_charset_collate_binary(Lex_exact_charset((yyvsp[-1].charset)))) MYSQL_YYABORT; } #line 36644 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 924: /* binary: BINARY */ #line 6754 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).set_contextually_typed_binary_style(); } #line 36650 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 925: /* binary: BINARY charset_or_alias */ #line 6756 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_exact_charset_extended_collation_attrs).set_charset_collate_binary(Lex_exact_charset((yyvsp[0].charset)))) MYSQL_YYABORT; } #line 36659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 926: /* binary: charset_or_alias COLLATE_SYM DEFAULT */ #line 6761 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).set_charset_collate_default( thd, thd->variables.character_set_collations, Lex_exact_charset((yyvsp[-2].charset))); } #line 36670 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 927: /* binary: charset_or_alias COLLATE_SYM collation_name */ #line 6768 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyvsp[0].Lex_extended_collation).merge_exact_charset( thd, thd->variables.character_set_collations, Lex_exact_charset((yyvsp[-2].charset)))) MYSQL_YYABORT; (yyval.Lex_exact_charset_extended_collation_attrs)= Lex_exact_charset_extended_collation_attrs((yyvsp[0].Lex_extended_collation)); } #line 36683 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 928: /* binary: COLLATE_SYM collation_name */ #line 6777 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs)= Lex_exact_charset_extended_collation_attrs((yyvsp[0].Lex_extended_collation)); } #line 36691 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 929: /* binary: COLLATE_SYM DEFAULT */ #line 6781 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_exact_charset_extended_collation_attrs).set_collate_default(); } #line 36699 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 930: /* opt_bin_mod: %empty */ #line 6787 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= false; } #line 36705 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 931: /* opt_bin_mod: BINARY */ #line 6788 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= true; } #line 36711 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 932: /* $@93: %empty */ #line 6793 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[0].ulong_num) == 0)) { thd->parse_error(); MYSQL_YYABORT; } } #line 36723 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 933: /* ws_nweights: '(' real_ulong_num $@93 ')' */ #line 6801 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[-2].ulong_num); } #line 36729 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 934: /* ws_level_flag_desc: ASC */ #line 6805 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 0; } #line 36735 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 935: /* ws_level_flag_desc: DESC */ #line 6806 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 1 << MY_STRXFRM_DESC_SHIFT; } #line 36741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 936: /* ws_level_flag_reverse: REVERSE_SYM */ #line 6810 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 1 << MY_STRXFRM_REVERSE_SHIFT; } #line 36747 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 937: /* ws_level_flags: %empty */ #line 6813 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 0; } #line 36753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 938: /* ws_level_flags: ws_level_flag_desc */ #line 6814 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num); } #line 36759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 939: /* ws_level_flags: ws_level_flag_desc ws_level_flag_reverse */ #line 6815 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[-1].ulong_num) | (yyvsp[0].ulong_num); } #line 36765 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 940: /* ws_level_flags: ws_level_flag_reverse */ #line 6816 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num) ; } #line 36771 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 941: /* ws_level_number: real_ulong_num */ #line 6821 "/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 36780 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 942: /* ws_level_list_item: ws_level_number ws_level_flags */ #line 6829 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (1 | (yyvsp[0].ulong_num)) << (yyvsp[-1].ulong_num); } #line 36788 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 943: /* ws_level_list: ws_level_list_item */ #line 6835 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num); } #line 36794 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 944: /* ws_level_list: ws_level_list ',' ws_level_list_item */ #line 6836 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)|= (yyvsp[0].ulong_num); } #line 36800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 945: /* ws_level_range: ws_level_number '-' ws_level_number */ #line 6841 "/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 36811 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 946: /* ws_level_list_or_range: ws_level_list */ #line 6850 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num); } #line 36817 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 947: /* ws_level_list_or_range: ws_level_range */ #line 6851 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num); } #line 36823 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 948: /* opt_ws_levels: %empty */ #line 6855 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 0; } #line 36829 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 949: /* opt_ws_levels: LEVEL_SYM ws_level_list_or_range */ #line 6856 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num); } #line 36835 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 952: /* references: REFERENCES table_ident opt_ref_list opt_match_clause opt_on_update_delete */ #line 6870 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table)=(yyvsp[-3].table); } #line 36843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 953: /* opt_ref_list: %empty */ #line 6877 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ref_list.empty(); } #line 36849 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 955: /* ref_list: ref_list ',' ident */ #line 6883 "/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 36860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 956: /* ref_list: ident */ #line 6890 "/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 36873 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 957: /* opt_match_clause: %empty */ #line 6902 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; } #line 36879 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 958: /* opt_match_clause: MATCH FULL */ #line 6904 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; } #line 36885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 959: /* opt_match_clause: MATCH PARTIAL */ #line 6906 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; } #line 36891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 960: /* opt_match_clause: MATCH SIMPLE_SYM */ #line 6908 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; } #line 36897 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 961: /* opt_on_update_delete: %empty */ #line 6913 "/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 36907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 962: /* opt_on_update_delete: ON UPDATE_SYM delete_option */ #line 6919 "/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 36917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 963: /* opt_on_update_delete: ON DELETE_SYM delete_option */ #line 6925 "/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 36927 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 964: /* opt_on_update_delete: ON UPDATE_SYM delete_option ON DELETE_SYM delete_option */ #line 6932 "/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 36937 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 965: /* opt_on_update_delete: ON DELETE_SYM delete_option ON UPDATE_SYM delete_option */ #line 6939 "/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 36947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 966: /* delete_option: RESTRICT */ #line 6947 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_fk_option)= FK_OPTION_RESTRICT; } #line 36953 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 967: /* delete_option: CASCADE */ #line 6948 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_fk_option)= FK_OPTION_CASCADE; } #line 36959 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 968: /* delete_option: SET NULL_SYM */ #line 6949 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_fk_option)= FK_OPTION_SET_NULL; } #line 36965 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 969: /* delete_option: NO_SYM ACTION */ #line 6950 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_fk_option)= FK_OPTION_NO_ACTION; } #line 36971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 970: /* delete_option: SET DEFAULT */ #line 6951 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_fk_option)= FK_OPTION_SET_DEFAULT; } #line 36977 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 971: /* constraint_key_type: PRIMARY_SYM KEY_SYM */ #line 6955 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_type)= Key::PRIMARY; } #line 36983 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 972: /* constraint_key_type: UNIQUE_SYM opt_key_or_index */ #line 6956 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_type)= Key::UNIQUE; } #line 36989 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 973: /* key_or_index: KEY_SYM */ #line 6960 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 36995 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 974: /* key_or_index: INDEX_SYM */ #line 6961 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37001 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 975: /* opt_key_or_index: %empty */ #line 6965 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37007 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 977: /* keys_or_index: KEYS */ #line 6970 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 978: /* keys_or_index: INDEX_SYM */ #line 6971 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37019 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 979: /* keys_or_index: INDEXES */ #line 6972 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37025 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 980: /* fulltext: FULLTEXT_SYM */ #line 6976 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_type)= Key::FULLTEXT;} #line 37031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 981: /* spatial: SPATIAL_SYM */ #line 6981 "/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 37044 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 982: /* normal_key_options: %empty */ #line 6992 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37050 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 983: /* normal_key_options: normal_key_opts */ #line 6993 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->option_list= Lex->option_list; } #line 37056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 984: /* fulltext_key_options: %empty */ #line 6997 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37062 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 985: /* fulltext_key_options: fulltext_key_opts */ #line 6998 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->option_list= Lex->option_list; } #line 37068 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 986: /* spatial_key_options: %empty */ #line 7002 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37074 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 987: /* spatial_key_options: spatial_key_opts */ #line 7003 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->option_list= Lex->option_list; } #line 37080 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 994: /* opt_USING_key_algorithm: %empty */ #line 7022 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } #line 37086 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 995: /* opt_USING_key_algorithm: USING btree_or_rtree */ #line 7023 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= (yyvsp[0].key_alg); } #line 37092 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 996: /* opt_key_algorithm_clause: %empty */ #line 7028 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } #line 37098 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 997: /* opt_key_algorithm_clause: USING btree_or_rtree */ #line 7029 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= (yyvsp[0].key_alg); } #line 37104 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 998: /* opt_key_algorithm_clause: TYPE_SYM btree_or_rtree */ #line 7030 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= (yyvsp[0].key_alg); } #line 37110 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 999: /* key_using_alg: USING btree_or_rtree */ #line 7035 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } #line 37116 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1000: /* key_using_alg: TYPE_SYM btree_or_rtree */ #line 7037 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } #line 37122 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1001: /* all_key_opt: KEY_BLOCK_SIZE opt_equal ulong_num */ #line 7042 "/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 37131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1002: /* all_key_opt: COMMENT_SYM TEXT_STRING_sys */ #line 7047 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->key_create_info.comment= (yyvsp[0].lex_str); } #line 37137 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1003: /* all_key_opt: VISIBLE_SYM */ #line 7049 "/home/buildbot/git/sql/sql_yacc.yy" { /* This is mainly for MySQL 8.0 compatibility */ } #line 37145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1004: /* all_key_opt: ignorability */ #line 7053 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->key_create_info.is_ignored= (yyvsp[0].num); } #line 37153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1005: /* all_key_opt: engine_defined_option */ #line 7057 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].engine_option_value_ptr)->link(&Lex->option_list, &Lex->option_list_last); } #line 37161 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1010: /* fulltext_key_opt: WITH PARSER_SYM IDENT_sys */ #line 7074 "/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 37172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1011: /* btree_or_rtree: BTREE_SYM */ #line 7083 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_BTREE; } #line 37178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1012: /* btree_or_rtree: RTREE_SYM */ #line 7084 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_RTREE; } #line 37184 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1013: /* btree_or_rtree: HASH_SYM */ #line 7085 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_HASH; } #line 37190 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1014: /* ignorability: IGNORED_SYM */ #line 7089 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= true; } #line 37196 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1015: /* ignorability: NOT_SYM IGNORED_SYM */ #line 7090 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= false; } #line 37202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1016: /* key_list: key_list ',' key_part order_dir */ #line 7095 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[-1].key_part)->asc= (yyvsp[0].num); Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); } #line 37211 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1017: /* key_list: key_part order_dir */ #line 7100 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[-1].key_part)->asc= (yyvsp[0].num); Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); } #line 37220 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1018: /* opt_without_overlaps: %empty */ #line 7107 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37226 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1019: /* opt_without_overlaps: ',' ident WITHOUT OVERLAPS_SYM */ #line 7109 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_key->without_overlaps= true; Lex->last_key->period= (yyvsp[-2].ident_sys); } #line 37235 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1020: /* key_part: ident */ #line 7117 "/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 37245 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1021: /* key_part: ident '(' NUM ')' */ #line 7123 "/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 37258 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1022: /* opt_ident: %empty */ #line 7134 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 37264 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1023: /* opt_ident: field_ident */ #line 7135 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } #line 37270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1024: /* string_list: text_string */ #line 7140 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } #line 37276 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1025: /* string_list: string_list ',' text_string */ #line 7142 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } #line 37282 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1026: /* $@94: %empty */ #line 7151 "/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 37302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1027: /* $@95: %empty */ #line 7167 "/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 37318 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1028: /* alter: ALTER $@94 alter_options TABLE_SYM opt_if_exists table_ident opt_lock_wait_timeout $@95 alter_commands */ #line 7179 "/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 37333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1029: /* $@96: %empty */ #line 7190 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.init(); if (Lex->main_select_push(true)) MYSQL_YYABORT; } #line 37343 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1030: /* alter: ALTER DATABASE ident_or_empty $@96 create_database_options */ #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 37357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1031: /* $@97: %empty */ #line 7206 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.init(); Lex->create_info.schema_comment= thd->make_clex_string((yyvsp[0].lex_str)); Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; } #line 37367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1032: /* alter: ALTER DATABASE COMMENT_SYM opt_equal TEXT_STRING_sys $@97 opt_create_database_options */ #line 7212 "/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 37380 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1033: /* alter: ALTER DATABASE ident UPGRADE_SYM DATA_SYM DIRECTORY_SYM NAME_SYM */ #line 7221 "/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 37392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1034: /* $@98: %empty */ #line 7229 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_alter_procedure_start((yyvsp[0].spname))) MYSQL_YYABORT; } #line 37401 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1035: /* alter: ALTER PROCEDURE_SYM sp_name $@98 sp_a_chistics stmt_end */ #line 7234 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37407 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1036: /* $@99: %empty */ #line 7236 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_alter_function_start((yyvsp[0].spname))) MYSQL_YYABORT; } #line 37416 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1037: /* alter: ALTER FUNCTION_SYM sp_name $@99 sp_a_chistics stmt_end */ #line 7241 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37422 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1038: /* $@100: %empty */ #line 7243 "/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 37433 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1039: /* alter: ALTER view_algorithm definer_opt opt_view_suid VIEW_SYM table_ident $@100 view_list_opt AS view_select stmt_end */ #line 7249 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1040: /* $@101: %empty */ #line 7256 "/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 37450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1041: /* alter: ALTER definer_opt opt_view_suid VIEW_SYM table_ident $@101 view_list_opt AS view_select stmt_end */ #line 7262 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1042: /* $@102: %empty */ #line 7264 "/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 37479 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1043: /* alter: ALTER definer_opt remember_name EVENT_SYM sp_name $@102 ev_alter_on_schedule_completion opt_ev_rename_to opt_ev_status opt_ev_comment opt_ev_sql_stmt */ #line 7287 "/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 37499 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1044: /* $@103: %empty */ #line 7303 "/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 37509 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1045: /* alter: ALTER SERVER_SYM ident_or_text $@103 OPTIONS_SYM '(' server_options_list ')' */ #line 7307 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 37515 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1046: /* alter: ALTER USER_SYM opt_if_exists clear_privileges grant_list opt_require_clause opt_resource_options opt_account_locking_and_opt_password_expiration */ #line 7311 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.set((yyvsp[-5].object_ddl_options)); Lex->sql_command= SQLCOM_ALTER_USER; } #line 37524 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1047: /* $@104: %empty */ #line 7316 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_ALTER_SEQUENCE; DBUG_ASSERT(!lex->m_sql_cmd); if (Lex->main_select_push()) MYSQL_YYABORT; } #line 37536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1048: /* $@105: %empty */ #line 7324 "/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 37550 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1049: /* $@106: %empty */ #line 7334 "/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 37561 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1050: /* alter: ALTER SEQUENCE_SYM opt_if_exists $@104 table_ident $@105 sequence_defs $@106 stmt_end */ #line 7339 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37567 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1051: /* account_locking_option: LOCK_SYM */ #line 7344 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.account_locked= ACCOUNTLOCK_LOCKED; } #line 37575 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1052: /* account_locking_option: UNLOCK_SYM */ #line 7348 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.account_locked= ACCOUNTLOCK_UNLOCKED; } #line 37583 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1053: /* opt_password_expire_option: %empty */ #line 7355 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.password_expire= PASSWORD_EXPIRE_NOW; } #line 37591 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1054: /* opt_password_expire_option: NEVER_SYM */ #line 7359 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.password_expire= PASSWORD_EXPIRE_NEVER; } #line 37599 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1055: /* opt_password_expire_option: DEFAULT */ #line 7363 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.password_expire= PASSWORD_EXPIRE_DEFAULT; } #line 37607 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1056: /* opt_password_expire_option: INTERVAL_SYM NUM DAY_SYM */ #line 7367 "/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 37617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1062: /* ev_alter_on_schedule_completion: %empty */ #line 7383 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0;} #line 37623 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1063: /* ev_alter_on_schedule_completion: ON SCHEDULE_SYM ev_schedule_time */ #line 7384 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 37629 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1064: /* ev_alter_on_schedule_completion: ev_on_completion */ #line 7385 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 37635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1065: /* ev_alter_on_schedule_completion: ON SCHEDULE_SYM ev_schedule_time ev_on_completion */ #line 7386 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 37641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1066: /* opt_ev_rename_to: %empty */ #line 7390 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0;} #line 37647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1067: /* opt_ev_rename_to: RENAME TO_SYM sp_name */ #line 7392 "/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 37660 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1068: /* opt_ev_sql_stmt: %empty */ #line 7403 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0;} #line 37666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1069: /* opt_ev_sql_stmt: DO_SYM ev_sql_stmt */ #line 7404 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 37672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1070: /* ident_or_empty: %empty */ #line 7409 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_sys)= Lex_ident_sys(); } #line 37678 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1073: /* alter_commands: DISCARD TABLESPACE */ #line 7416 "/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 37690 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1074: /* alter_commands: IMPORT TABLESPACE */ #line 7424 "/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); Lex->create_info.add(DDL_options_st::OPT_IMPORT_TABLESPACE); if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } #line 37703 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1080: /* alter_commands: DROP PARTITION_SYM opt_if_exists alt_part_name_list */ #line 7447 "/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 37713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1081: /* alter_commands: REBUILD_SYM PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list */ #line 7454 "/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 37723 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1082: /* $@107: %empty */ #line 7461 "/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 37738 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1084: /* alter_commands: ANALYZE_SYM PARTITION_SYM opt_no_write_to_binlog all_or_alt_part_name_list */ #line 7474 "/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 37753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1085: /* $@108: %empty */ #line 7485 "/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 37767 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1087: /* $@109: %empty */ #line 7497 "/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 37782 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1089: /* alter_commands: COALESCE PARTITION_SYM opt_no_write_to_binlog real_ulong_num */ #line 7509 "/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 37793 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1090: /* alter_commands: TRUNCATE_SYM PARTITION_SYM all_or_alt_part_name_list */ #line 7516 "/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 37807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1092: /* alter_commands: EXCHANGE_SYM PARTITION_SYM alt_part_name_item WITH TABLE_SYM table_ident opt_without_validation have_partitioning */ #line 7528 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_alter_table_exchange_partition((yyvsp[-2].table))) MYSQL_YYABORT; } #line 37816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1093: /* alter_commands: CONVERT_SYM PARTITION_SYM alt_part_name_item TO_SYM TABLE_SYM table_ident opt_without_validation have_partitioning */ #line 7534 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; if (Lex->stmt_alter_table((yyvsp[-2].table))) MYSQL_YYABORT; lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_table(); if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; lex->alter_info.partition_flags|= ALTER_PARTITION_CONVERT_OUT; } #line 37830 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1094: /* $@110: %empty */ #line 7544 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; if (!lex->first_select_lex()->add_table_to_list(thd, (yyvsp[0].table), nullptr, 0, TL_READ_NO_INSERT, MDL_SHARED_NO_WRITE)) MYSQL_YYABORT; /* This will appear as (new_db, new_name) in alter_ctx. new_db will be IX-locked and new_name X-locked. */ lex->first_select_lex()->db= (yyvsp[0].table)->db; lex->name= (yyvsp[0].table)->table; if (lex->first_select_lex()->db.str == NULL && lex->copy_db_to(&lex->first_select_lex()->db)) MYSQL_YYABORT; lex->part_info= new (thd->mem_root) partition_info(); if (unlikely(!lex->part_info)) MYSQL_YYABORT; lex->part_info->num_parts= 1; /* OR-ed with ALTER_PARTITION_ADD because too many checks of ALTER_PARTITION_ADD required. */ lex->alter_info.partition_flags|= ALTER_PARTITION_ADD | ALTER_PARTITION_CONVERT_IN; } #line 37864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1095: /* alter_commands: CONVERT_SYM TABLE_SYM table_ident $@110 TO_SYM PARTITION_SYM part_definition opt_without_validation have_partitioning */ #line 7574 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_table(); if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } #line 37875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1096: /* remove_partitioning: REMOVE_SYM PARTITIONING_SYM */ #line 7584 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.partition_flags|= ALTER_PARTITION_REMOVE; } #line 37883 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1097: /* all_or_alt_part_name_list: ALL */ #line 7591 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.partition_flags|= ALTER_PARTITION_ALL; } #line 37891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1099: /* $@111: %empty */ #line 7600 "/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 37907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1100: /* add_partition_rule: ADD PARTITION_SYM opt_if_not_exists opt_no_write_to_binlog $@111 add_part_extra */ #line 7612 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37913 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1102: /* add_part_extra: '(' part_def_list ')' */ #line 7618 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->part_info->num_parts= lex->part_info->partitions.elements; } #line 37922 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1103: /* add_part_extra: PARTITIONS_SYM real_ulong_num */ #line 7623 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->part_info->num_parts= (yyvsp[0].ulong_num); } #line 37930 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1104: /* $@112: %empty */ #line 7630 "/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 37943 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1106: /* reorg_parts_rule: %empty */ #line 7643 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.partition_flags|= ALTER_PARTITION_TABLE_REORG; } #line 37951 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1107: /* $@113: %empty */ #line 7647 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.partition_flags|= ALTER_PARTITION_REORGANIZE; } #line 37959 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1108: /* reorg_parts_rule: alt_part_name_list $@113 INTO '(' part_def_list ')' */ #line 7651 "/home/buildbot/git/sql/sql_yacc.yy" { partition_info *part_info= Lex->part_info; part_info->num_parts= part_info->partitions.elements; } #line 37968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1109: /* alt_part_name_list: alt_part_name_item */ #line 7658 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1110: /* alt_part_name_list: alt_part_name_list ',' alt_part_name_item */ #line 7659 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 37980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1111: /* alt_part_name_item: ident */ #line 7664 "/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 37990 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1115: /* alter_list_item: add_column column_def opt_place */ #line 7686 "/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 38001 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1116: /* alter_list_item: ADD key_def */ #line 7693 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_last_non_select_table= Lex->last_table(); Lex->alter_info.flags|= ALTER_ADD_INDEX; } #line 38010 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1117: /* alter_list_item: ADD period_for_system_time */ #line 7698 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.flags|= ALTER_ADD_PERIOD; } #line 38018 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1118: /* alter_list_item: ADD PERIOD_SYM opt_if_not_exists_table_element period_for_application_time */ #line 7703 "/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 38028 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1119: /* alter_list_item: add_column '(' create_field_list ')' */ #line 7709 "/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 38039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1120: /* alter_list_item: ADD constraint_def */ #line 7716 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; } #line 38047 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1121: /* alter_list_item: ADD CONSTRAINT IF_SYM not EXISTS field_ident check_constraint */ #line 7720 "/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 38056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1122: /* alter_list_item: CHANGE opt_column opt_if_exists_table_element field_ident field_spec opt_place */ #line 7726 "/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 38067 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1123: /* alter_list_item: MODIFY_SYM opt_column opt_if_exists_table_element field_spec opt_place */ #line 7734 "/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 38078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1124: /* alter_list_item: DROP opt_column opt_if_exists_table_element field_ident opt_restrict */ #line 7741 "/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 38092 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1125: /* alter_list_item: DROP CONSTRAINT opt_if_exists_table_element field_ident */ #line 7751 "/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 38107 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1126: /* alter_list_item: DROP FOREIGN KEY_SYM opt_if_exists_table_element field_ident */ #line 7762 "/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 38121 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1127: /* alter_list_item: DROP opt_constraint_no_id PRIMARY_SYM KEY_SYM */ #line 7772 "/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.str, 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 38136 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1128: /* alter_list_item: DROP key_or_index opt_if_exists_table_element field_ident */ #line 7783 "/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 38150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1129: /* alter_list_item: DISABLE_SYM KEYS */ #line 7793 "/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 38160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1130: /* alter_list_item: ENABLE_SYM KEYS */ #line 7799 "/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 38170 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1131: /* alter_list_item: ALTER opt_column opt_if_exists_table_element field_ident SET DEFAULT column_default_expr */ #line 7805 "/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 38181 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1132: /* alter_list_item: ALTER key_or_index opt_if_exists_table_element ident ignorability */ #line 7812 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; Alter_index_ignorability *ac= new (thd->mem_root) Alter_index_ignorability((yyvsp[-1].ident_sys).str, (yyvsp[0].num), (yyvsp[-2].num)); if (ac == NULL) MYSQL_YYABORT; lex->alter_info.alter_index_ignorability_list.push_back(ac); lex->alter_info.flags|= ALTER_INDEX_IGNORABILITY; } #line 38195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1133: /* alter_list_item: ALTER opt_column opt_if_exists_table_element field_ident DROP DEFAULT */ #line 7822 "/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 38204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1134: /* alter_list_item: RENAME opt_to table_ident */ #line 7827 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_alter_table((yyvsp[0].table))) MYSQL_YYABORT; Lex->alter_info.flags|= ALTER_RENAME; } #line 38214 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1135: /* alter_list_item: RENAME COLUMN_SYM opt_if_exists_table_element ident TO_SYM ident */ #line 7833 "/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 38223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1136: /* alter_list_item: RENAME key_or_index opt_if_exists_table_element field_ident TO_SYM field_ident */ #line 7838 "/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 38237 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1137: /* alter_list_item: CONVERT_SYM TO_SYM charset charset_name_or_default */ #line 7848 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->add_alter_list_item_convert_to_charset( thd, thd->variables.character_set_collations, (yyvsp[0].charset))) MYSQL_YYABORT; } #line 38247 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1138: /* alter_list_item: CONVERT_SYM TO_SYM charset charset_name_or_default COLLATE_SYM collation_name_or_default */ #line 7855 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->add_alter_list_item_convert_to_charset( thd, thd->variables.character_set_collations, (yyvsp[-2].charset), (yyvsp[0].Lex_extended_collation))) MYSQL_YYABORT; } #line 38257 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1139: /* alter_list_item: create_table_options_space_separated */ #line 7861 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.flags|= ALTER_OPTIONS; } #line 38266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1140: /* alter_list_item: FORCE_SYM */ #line 7866 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.flags|= ALTER_RECREATE; } #line 38274 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1141: /* alter_list_item: alter_order_clause */ #line 7870 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.flags|= ALTER_ORDER; } #line 38283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1144: /* alter_list_item: ADD SYSTEM VERSIONING_SYM */ #line 7877 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.flags|= ALTER_ADD_SYSTEM_VERSIONING; Lex->create_info.options|= HA_VERSIONED_TABLE; } #line 38292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1145: /* alter_list_item: DROP SYSTEM VERSIONING_SYM */ #line 7882 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.flags|= ALTER_DROP_SYSTEM_VERSIONING; Lex->create_info.options&= ~HA_VERSIONED_TABLE; } #line 38301 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1146: /* alter_list_item: DROP PERIOD_SYM FOR_SYSTEM_TIME_SYM */ #line 7887 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.flags|= ALTER_DROP_PERIOD; } #line 38309 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1147: /* alter_list_item: DROP PERIOD_SYM opt_if_exists_table_element FOR_SYM ident */ #line 7891 "/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 38321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1149: /* opt_without_validation: WITH VALIDATION_SYM */ #line 7903 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->without_validation= 0; } #line 38329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1150: /* opt_without_validation: WITHOUT VALIDATION_SYM */ #line 7907 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->without_validation= 1; } #line 38337 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1156: /* alter_algorithm_option: ALGORITHM_SYM opt_equal DEFAULT */ #line 7922 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.set_requested_algorithm( Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT); } #line 38346 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1157: /* alter_algorithm_option: ALGORITHM_SYM opt_equal ident */ #line 7927 "/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 38355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1158: /* alter_lock_option: LOCK_SYM opt_equal DEFAULT */ #line 7935 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_DEFAULT; } #line 38364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1159: /* alter_lock_option: LOCK_SYM opt_equal ident */ #line 7940 "/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 38373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1160: /* opt_column: %empty */ #line 7947 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38379 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1161: /* opt_column: COLUMN_SYM */ #line 7948 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38385 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1162: /* opt_ignore: %empty */ #line 7952 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ignore= 0;} #line 38391 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1163: /* opt_ignore: IGNORE_SYM */ #line 7953 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ignore= 1;} #line 38397 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1164: /* $@114: %empty */ #line 7957 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ignore= 0;} #line 38403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1170: /* alter_option: IGNORE_SYM */ #line 7971 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ignore= 1;} #line 38409 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1171: /* alter_option: ONLINE_SYM */ #line 7973 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_NONE; } #line 38418 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1172: /* opt_restrict: %empty */ #line 7980 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->drop_mode= DROP_DEFAULT; } #line 38424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1173: /* opt_restrict: RESTRICT */ #line 7981 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->drop_mode= DROP_RESTRICT; } #line 38430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1174: /* opt_restrict: CASCADE */ #line 7982 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->drop_mode= DROP_CASCADE; } #line 38436 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1175: /* opt_place: %empty */ #line 7986 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 38442 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1176: /* opt_place: AFTER_SYM ident */ #line 7988 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].ident_sys); Lex->alter_info.flags |= ALTER_COLUMN_ORDER; } #line 38451 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1177: /* opt_place: FIRST_SYM */ #line 7993 "/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 38461 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1178: /* opt_to: %empty */ #line 8001 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38467 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1179: /* opt_to: TO_SYM */ #line 8002 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38473 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1180: /* opt_to: '=' */ #line 8003 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38479 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1181: /* opt_to: AS */ #line 8004 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1182: /* $@115: %empty */ #line 8009 "/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 38496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1183: /* slave: START_SYM SLAVE optional_connection_name slave_thread_opts optional_for_channel $@115 slave_until */ #line 8016 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1184: /* $@116: %empty */ #line 8018 "/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 38513 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1185: /* slave: START_SYM ALL SLAVES slave_thread_opts $@116 */ #line 8024 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38519 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1186: /* slave: STOP_SYM SLAVE optional_connection_name slave_thread_opts optional_for_channel */ #line 8026 "/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 38530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1187: /* slave: STOP_SYM ALL SLAVES slave_thread_opts */ #line 8033 "/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 38541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1188: /* start: START_SYM TRANSACTION_SYM opt_start_transaction_option_list */ #line 8043 "/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 38558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1189: /* opt_start_transaction_option_list: %empty */ #line 8059 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 38566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1190: /* opt_start_transaction_option_list: start_transaction_option_list */ #line 8063 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (yyvsp[0].num); } #line 38574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1191: /* start_transaction_option_list: start_transaction_option */ #line 8070 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (yyvsp[0].num); } #line 38582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1192: /* start_transaction_option_list: start_transaction_option_list ',' start_transaction_option */ #line 8074 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (yyvsp[-2].num) | (yyvsp[0].num); } #line 38590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1193: /* start_transaction_option: WITH CONSISTENT_SYM SNAPSHOT_SYM */ #line 8081 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT; } #line 38598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1194: /* start_transaction_option: READ_SYM ONLY_SYM */ #line 8085 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= MYSQL_START_TRANS_OPT_READ_ONLY; } #line 38606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1195: /* start_transaction_option: READ_SYM WRITE_SYM */ #line 8089 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= MYSQL_START_TRANS_OPT_READ_WRITE; } #line 38614 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1196: /* $@117: %empty */ #line 8095 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->slave_thd_opt= 0; } #line 38620 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1197: /* slave_thread_opts: $@117 slave_thread_opt_list */ #line 8097 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38626 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1200: /* slave_thread_opt: %empty */ #line 8106 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1201: /* slave_thread_opt: SQL_THREAD */ #line 8107 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->slave_thd_opt|=SLAVE_SQL; } #line 38638 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1202: /* slave_thread_opt: RELAY_THREAD */ #line 8108 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->slave_thd_opt|=SLAVE_IO; } #line 38644 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1203: /* slave_until: %empty */ #line 8112 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38650 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1204: /* slave_until: UNTIL_SYM slave_until_opts */ #line 8114 "/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 38663 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1205: /* slave_until: UNTIL_SYM MASTER_GTID_POS_SYM '=' TEXT_STRING_sys */ #line 8123 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.gtid_pos_str = (yyvsp[0].lex_str); Lex->mi.is_until_before_gtids= false; } #line 38672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1206: /* slave_until: UNTIL_SYM SQL_AFTER_GTIDS_SYM '=' TEXT_STRING_sys */ #line 8128 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.gtid_pos_str = (yyvsp[0].lex_str); Lex->mi.is_until_before_gtids= false; } #line 38681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1207: /* slave_until: UNTIL_SYM SQL_BEFORE_GTIDS_SYM '=' TEXT_STRING_sys */ #line 8133 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.gtid_pos_str = (yyvsp[0].lex_str); Lex->mi.is_until_before_gtids= true; } #line 38690 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1210: /* $@118: %empty */ #line 8146 "/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 38701 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1211: /* checksum: CHECKSUM_SYM table_or_tables $@118 table_list opt_checksum_type */ #line 8153 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1212: /* opt_checksum_type: %empty */ #line 8157 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags= 0; } #line 38713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1213: /* opt_checksum_type: QUICK */ #line 8158 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags= T_QUICK; } #line 38719 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1214: /* opt_checksum_type: EXTENDED_SYM */ #line 8159 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags= T_EXTEND; } #line 38725 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1216: /* $@119: %empty */ #line 8165 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->table_type= TABLE_TYPE_VIEW; } #line 38731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1218: /* $@120: %empty */ #line 8171 "/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 38745 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1219: /* repair: REPAIR opt_no_write_to_binlog $@120 repair_table_or_view */ #line 8181 "/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 38757 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1220: /* opt_mi_repair_type: %empty */ #line 8191 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags = T_MEDIUM; } #line 38763 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1221: /* opt_mi_repair_type: mi_repair_types */ #line 8192 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38769 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1222: /* mi_repair_types: mi_repair_type */ #line 8196 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38775 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1223: /* mi_repair_types: mi_repair_type mi_repair_types */ #line 8197 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1224: /* mi_repair_type: QUICK */ #line 8201 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_QUICK; } #line 38787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1225: /* mi_repair_type: EXTENDED_SYM */ #line 8202 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_EXTEND; } #line 38793 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1226: /* mi_repair_type: USE_FRM */ #line 8203 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_USEFRM; } #line 38799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1227: /* opt_view_repair_type: %empty */ #line 8207 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 38805 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1228: /* opt_view_repair_type: FOR_SYM UPGRADE_SYM */ #line 8208 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } #line 38811 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1229: /* opt_view_repair_type: FROM MYSQL_SYM */ #line 8209 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } #line 38817 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1230: /* $@121: %empty */ #line 8214 "/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 38831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1231: /* analyze: ANALYZE_SYM opt_no_write_to_binlog table_or_tables $@121 analyze_table_list */ #line 8224 "/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 38843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1235: /* opt_persistent_stat_clause: %empty */ #line 8244 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38849 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1236: /* opt_persistent_stat_clause: PERSISTENT_SYM FOR_SYM persistent_stat_spec */ #line 8246 "/home/buildbot/git/sql/sql_yacc.yy" { thd->lex->with_persistent_for_clause= TRUE; } #line 38857 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1237: /* persistent_stat_spec: ALL */ #line 8253 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38863 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1238: /* persistent_stat_spec: COLUMNS persistent_column_stat_spec INDEXES persistent_index_stat_spec */ #line 8255 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38869 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1239: /* persistent_column_stat_spec: ALL */ #line 8259 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1240: /* $@122: %empty */ #line 8261 "/home/buildbot/git/sql/sql_yacc.yy" { LEX* lex= thd->lex; lex->column_list= new (thd->mem_root) List; if (unlikely(lex->column_list == NULL)) MYSQL_YYABORT; } #line 38886 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1241: /* persistent_column_stat_spec: '(' $@122 table_column_list ')' */ #line 8269 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 38892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1242: /* persistent_index_stat_spec: ALL */ #line 8273 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1243: /* $@123: %empty */ #line 8275 "/home/buildbot/git/sql/sql_yacc.yy" { LEX* lex= thd->lex; lex->index_list= new (thd->mem_root) List; if (unlikely(lex->index_list == NULL)) MYSQL_YYABORT; } #line 38909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1244: /* persistent_index_stat_spec: '(' $@123 table_index_list ')' */ #line 8283 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 38915 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1245: /* table_column_list: %empty */ #line 8288 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38921 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1246: /* table_column_list: ident */ #line 8290 "/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 38930 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1247: /* table_column_list: table_column_list ',' ident */ #line 8295 "/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 38939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1248: /* table_index_list: %empty */ #line 8303 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 38945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1251: /* table_index_name: ident */ #line 8310 "/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 38955 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1252: /* table_index_name: PRIMARY_SYM */ #line 8317 "/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 38966 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1253: /* binlog_base64_event: BINLOG_SYM TEXT_STRING_sys */ #line 8327 "/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 38977 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1254: /* binlog_base64_event: BINLOG_SYM '@' ident_or_text ',' '@' ident_or_text */ #line 8335 "/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 38987 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1256: /* $@124: %empty */ #line 8345 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->table_type= TABLE_TYPE_VIEW; } #line 38993 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1258: /* $@125: %empty */ #line 8350 "/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 39007 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1259: /* check: CHECK_SYM $@125 check_view_or_table */ #line 8360 "/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 39021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1260: /* opt_mi_check_type: %empty */ #line 8372 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags = T_MEDIUM; } #line 39027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1261: /* opt_mi_check_type: mi_check_types */ #line 8373 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 39033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1262: /* mi_check_types: mi_check_type */ #line 8377 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 39039 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1263: /* mi_check_types: mi_check_type mi_check_types */ #line 8378 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 39045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1264: /* mi_check_type: QUICK */ #line 8382 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_QUICK; } #line 39051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1265: /* mi_check_type: FAST_SYM */ #line 8383 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_FAST; } #line 39057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1266: /* mi_check_type: MEDIUM_SYM */ #line 8384 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_MEDIUM; } #line 39063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1267: /* mi_check_type: EXTENDED_SYM */ #line 8385 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_EXTEND; } #line 39069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1268: /* mi_check_type: CHANGED */ #line 8386 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } #line 39075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1269: /* mi_check_type: FOR_SYM UPGRADE_SYM */ #line 8387 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } #line 39081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1270: /* opt_view_check_type: %empty */ #line 8391 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 39087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1271: /* opt_view_check_type: FOR_SYM UPGRADE_SYM */ #line 8392 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } #line 39093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1272: /* $@126: %empty */ #line 8397 "/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 39107 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1273: /* optimize: OPTIMIZE opt_no_write_to_binlog table_or_tables $@126 table_list opt_lock_wait_timeout */ #line 8407 "/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 39119 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1274: /* opt_no_write_to_binlog: %empty */ #line 8417 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 39125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1275: /* opt_no_write_to_binlog: NO_WRITE_TO_BINLOG */ #line 8418 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 39131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1276: /* opt_no_write_to_binlog: LOCAL_SYM */ #line 8419 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 39137 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1277: /* $@127: %empty */ #line 8424 "/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 39148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1278: /* rename: RENAME table_or_tables opt_if_exists $@127 table_to_table_list */ #line 8431 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 39156 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1279: /* rename: RENAME USER_SYM clear_privileges rename_list */ #line 8435 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_RENAME_USER; } #line 39164 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1280: /* rename_list: user TO_SYM user */ #line 8442 "/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 39174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1281: /* rename_list: rename_list ',' user TO_SYM user */ #line 8448 "/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 39184 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1284: /* table_to_table: table_ident opt_lock_wait_timeout TO_SYM table_ident */ #line 8462 "/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 39200 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1285: /* $@128: %empty */ #line 8477 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.reset(); } #line 39208 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1286: /* keycache: CACHE_SYM INDEX_SYM $@128 keycache_list_or_parts IN_SYM key_cache_name */ #line 8481 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE; lex->ident= (yyvsp[0].lex_str); } #line 39218 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1291: /* assign_to_keycache: table_ident cache_keys_spec */ #line 8500 "/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 39230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1292: /* assign_to_keycache_parts: table_ident adm_partition cache_keys_spec */ #line 8511 "/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 39242 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1293: /* key_cache_name: ident */ #line 8521 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].ident_sys); } #line 39248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1294: /* key_cache_name: DEFAULT */ #line 8522 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str) = default_base; } #line 39254 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1295: /* $@129: %empty */ #line 8527 "/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 39266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1296: /* preload: LOAD INDEX_SYM INTO CACHE_SYM $@129 preload_list_or_parts */ #line 8535 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 39274 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1301: /* preload_keys: table_ident cache_keys_spec opt_ignore_leaves */ #line 8552 "/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 39286 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1302: /* preload_keys_parts: table_ident adm_partition cache_keys_spec opt_ignore_leaves */ #line 8563 "/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 39298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1303: /* $@130: %empty */ #line 8574 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->alter_info.partition_flags|= ALTER_PARTITION_ADMIN; } #line 39306 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1305: /* $@131: %empty */ #line 8581 "/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 39316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1307: /* cache_key_list_or_empty: %empty */ #line 8590 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 39322 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1309: /* opt_ignore_leaves: %empty */ #line 8596 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 39328 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1310: /* opt_ignore_leaves: IGNORE_SYM LEAVES */ #line 8597 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= TL_OPTION_IGNORE_LEAVES; } #line 39334 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1311: /* $@132: %empty */ #line 8607 "/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 39345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1312: /* select: query_expression_no_with_clause $@132 opt_procedure_or_into */ #line 8614 "/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 39356 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1313: /* $@133: %empty */ #line 8621 "/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 39367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1314: /* select: with_clause query_expression_no_with_clause $@133 opt_procedure_or_into */ #line 8628 "/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 39379 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1315: /* $@134: %empty */ #line 8639 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->push_select((yyvsp[0].select_lex))) MYSQL_YYABORT; } #line 39388 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1316: /* select_into: select_into_query_specification $@134 opt_order_limit_lock */ #line 8644 "/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 39402 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1317: /* $@135: %empty */ #line 8655 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->push_select((yyvsp[0].select_lex))) MYSQL_YYABORT; } #line 39411 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1318: /* select_into: with_clause select_into_query_specification $@135 opt_order_limit_lock */ #line 8660 "/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 39427 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1319: /* simple_table: query_specification */ #line 8674 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= (yyvsp[0].select_lex); } #line 39433 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1320: /* simple_table: table_value_constructor */ #line 8675 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= (yyvsp[0].select_lex); } #line 39439 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1321: /* $@136: %empty */ #line 8680 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->parsed_TVC_start()) MYSQL_YYABORT; } #line 39448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1322: /* table_value_constructor: VALUES $@136 values_list */ #line 8685 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.select_lex)= Lex->parsed_TVC_end())) MYSQL_YYABORT; } #line 39457 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1323: /* $@137: %empty */ #line 8693 "/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 39470 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1324: /* $@138: %empty */ #line 8702 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= SELECT_LIST; } #line 39478 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1325: /* query_specification_start: SELECT_SYM $@137 select_options $@138 select_item_list */ #line 8706 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= NO_MATTER; } #line 39486 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1326: /* query_specification: query_specification_start opt_from_clause opt_where_clause opt_group_clause opt_having_clause opt_window_clause */ #line 8718 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= Lex->pop_select(); } #line 39494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1327: /* select_into_query_specification: query_specification_start into opt_from_clause opt_where_clause opt_group_clause opt_having_clause opt_window_clause */ #line 8731 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= Lex->pop_select(); } #line 39502 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1328: /* query_expression: query_expression_no_with_clause */ #line 8789 "/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 39511 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1329: /* query_expression: with_clause query_expression_no_with_clause */ #line 8795 "/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 39521 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1330: /* query_expression_no_with_clause: query_expression_body_ext */ #line 8808 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex_unit)= (yyvsp[0].select_lex_unit); } #line 39527 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1331: /* query_expression_no_with_clause: query_expression_body_ext_parens */ #line 8809 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex_unit)= (yyvsp[0].select_lex_unit); } #line 39533 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1332: /* $@139: %empty */ #line 8824 "/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 39545 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1333: /* query_expression_body_ext: query_expression_body $@139 opt_query_expression_tail */ #line 8832 "/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 39556 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1334: /* $@140: %empty */ #line 8839 "/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 39565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1335: /* query_expression_body_ext: query_expression_body_ext_parens $@140 query_expression_tail */ #line 8844 "/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 39574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1336: /* query_expression_body_ext_parens: '(' query_expression_body_ext_parens ')' */ #line 8852 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex_unit)= (yyvsp[-1].select_lex_unit); } #line 39580 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1337: /* query_expression_body_ext_parens: '(' query_expression_body_ext ')' */ #line 8854 "/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 39591 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1338: /* query_expression_body: query_simple */ #line 8869 "/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 39601 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1339: /* $@141: %empty */ #line 8876 "/home/buildbot/git/sql/sql_yacc.yy" { if (!(yyvsp[-1].select_lex_unit)->first_select()->next_select()) { Lex->pop_select(); } } #line 39612 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1340: /* query_expression_body: query_expression_body unit_type_decl $@141 query_primary */ #line 8883 "/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 39623 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1341: /* query_expression_body: query_expression_body_ext_parens unit_type_decl query_primary */ #line 8892 "/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 39635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1342: /* query_primary: query_simple */ #line 8908 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= (yyvsp[0].select_lex); } #line 39641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1343: /* query_primary: query_expression_body_ext_parens */ #line 8910 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= (yyvsp[0].select_lex_unit)->first_select(); } #line 39647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1344: /* query_simple: simple_table */ #line 8919 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lex)= (yyvsp[0].select_lex);} #line 39653 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1345: /* subselect: query_expression */ #line 8924 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.select_lex)= Lex->parsed_subselect((yyvsp[0].select_lex_unit)))) MYSQL_YYABORT; } #line 39662 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1346: /* subquery: query_expression_body_ext_parens */ #line 8965 "/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)))) MYSQL_YYABORT; } #line 39675 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1347: /* subquery: '(' with_clause query_expression_no_with_clause ')' */ #line 8974 "/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)))) MYSQL_YYABORT; } #line 39686 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1351: /* table_reference_list: join_table_list */ #line 8993 "/home/buildbot/git/sql/sql_yacc.yy" { Select->context.table_list= Select->context.first_name_resolution_table= Select->table_list.first; } #line 39696 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1354: /* select_options: select_option_list */ #line 9008 "/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 39706 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1355: /* opt_history_unit: %empty */ #line 9017 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.vers_range_unit)= VERS_TIMESTAMP; } #line 39714 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1356: /* opt_history_unit: TRANSACTION_SYM */ #line 9021 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.vers_range_unit)= VERS_TRX_ID; } #line 39722 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1357: /* opt_history_unit: TIMESTAMP */ #line 9025 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.vers_range_unit)= VERS_TIMESTAMP; } #line 39730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1358: /* history_point: TIMESTAMP TEXT_STRING */ #line 9032 "/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 39743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1359: /* history_point: function_call_keyword_timestamp */ #line 9041 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, (yyvsp[0].item)); } #line 39751 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1360: /* history_point: opt_history_unit bit_expr */ #line 9045 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.vers_history_point)= Vers_history_point((yyvsp[-1].vers_range_unit), (yyvsp[0].item)); } #line 39759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1361: /* for_portion_of_time_clause: FOR_SYM PORTION_SYM OF_SYM remember_tok_start ident FROM bit_expr TO_SYM bit_expr */ #line 9053 "/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 39775 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1362: /* opt_for_portion_of_time_clause: %empty */ #line 9068 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= false; } #line 39783 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1363: /* opt_for_portion_of_time_clause: for_portion_of_time_clause */ #line 9072 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= true; } #line 39791 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1364: /* opt_for_system_time_clause: %empty */ #line 9079 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= false; } #line 39799 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1365: /* opt_for_system_time_clause: FOR_SYSTEM_TIME_SYM system_time_expr */ #line 9083 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= true; } #line 39807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1366: /* system_time_expr: AS OF_SYM history_point */ #line 9090 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->vers_conditions.init(SYSTEM_TIME_AS_OF, (yyvsp[0].vers_history_point)); } #line 39815 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1367: /* system_time_expr: ALL */ #line 9094 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->vers_conditions.init(SYSTEM_TIME_ALL); } #line 39823 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1368: /* system_time_expr: FROM history_point TO_SYM history_point */ #line 9098 "/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 39831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1369: /* system_time_expr: BETWEEN_SYM history_point AND_SYM history_point */ #line 9102 "/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 39839 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1373: /* select_option: SQL_NO_CACHE_SYM */ #line 9115 "/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 39852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1374: /* select_option: SQL_CACHE_SYM */ #line 9124 "/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 39865 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1375: /* select_lock_type: FOR_SYM UPDATE_SYM opt_lock_wait_timeout_new */ #line 9137 "/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 39875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1376: /* select_lock_type: LOCK_SYM IN_SYM SHARE_SYM MODE_SYM opt_lock_wait_timeout_new */ #line 9143 "/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 39885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1377: /* opt_select_lock_type: %empty */ #line 9153 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock).empty(); } #line 39893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1378: /* opt_select_lock_type: select_lock_type */ #line 9157 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock)= (yyvsp[0].select_lock); } #line 39901 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1379: /* opt_lock_wait_timeout_new: %empty */ #line 9164 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock).empty(); } #line 39909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1380: /* opt_lock_wait_timeout_new: WAIT_SYM ulong_num */ #line 9168 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock).empty(); (yyval.select_lock).defined_timeout= TRUE; (yyval.select_lock).timeout= (yyvsp[0].ulong_num); } #line 39919 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1381: /* opt_lock_wait_timeout_new: NOWAIT_SYM */ #line 9174 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock).empty(); (yyval.select_lock).defined_timeout= TRUE; (yyval.select_lock).timeout= 0; } #line 39929 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1382: /* opt_lock_wait_timeout_new: SKIP_SYM LOCKED_SYM */ #line 9180 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock).empty(); (yyval.select_lock).skip_locked= 1; Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SKIP_LOCKED); } #line 39939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1385: /* select_item_list: '*' */ #line 9191 "/home/buildbot/git/sql/sql_yacc.yy" { bool is_parsing_returning= thd->lex->current_select->parsing_place == IN_RETURNING; SELECT_LEX *correct_select= is_parsing_returning ? thd->lex->returning() : thd->lex->current_select; Item *item= new (thd->mem_root) Item_field(thd, &correct_select->context, star_clex_str); if (unlikely(item == NULL)) MYSQL_YYABORT; if (unlikely(add_item_to_list(thd, item))) MYSQL_YYABORT; correct_select->with_wild++; } #line 39960 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1386: /* select_item: remember_name select_sublist_qualified_asterisk remember_end */ #line 9211 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(add_item_to_list(thd, (yyvsp[-1].item)))) MYSQL_YYABORT; } #line 39969 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1387: /* select_item: remember_name expr remember_end select_alias */ #line 9216 "/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)->base_flags|= item_base_t::IS_EXPLICIT_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 39992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1388: /* remember_tok_start: %empty */ #line 9237 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.simple_string)= (char*) YYLIP->get_tok_start(); } #line 40000 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1389: /* remember_name: %empty */ #line 9243 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start(); } #line 40008 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1390: /* remember_end: %empty */ #line 9249 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end_rtrim(); } #line 40016 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1391: /* remember_cpp_ptr: %empty */ #line 9255 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.simple_string)= (char*) YYLIP->get_cpp_ptr(); } #line 40024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1392: /* remember_start_opt: %empty */ #line 9261 "/home/buildbot/git/sql/sql_yacc.yy" { if (yychar == YYEMPTY) (yyval.simple_string)= (char*) YYLIP->get_cpp_ptr(); else (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start(); } #line 40035 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1393: /* remember_end_opt: %empty */ #line 9270 "/home/buildbot/git/sql/sql_yacc.yy" { if (yychar == YYEMPTY) (yyval.simple_string)= (char*) YYLIP->get_cpp_ptr_rtrim(); else (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end_rtrim(); } #line 40046 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1394: /* remember_lex: %empty */ #line 9279 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex)= thd->lex; } #line 40054 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1395: /* select_alias: %empty */ #line 9285 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=null_clex_str;} #line 40060 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1396: /* select_alias: AS ident */ #line 9286 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].ident_sys); } #line 40066 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1397: /* select_alias: AS TEXT_STRING_sys */ #line 9287 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } #line 40072 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1398: /* select_alias: ident */ #line 9288 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].ident_sys); } #line 40078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1399: /* select_alias: TEXT_STRING_sys */ #line 9289 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } #line 40084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1400: /* opt_default_time_precision: %empty */ #line 9293 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= NOT_FIXED_DEC; } #line 40090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1401: /* opt_default_time_precision: '(' ')' */ #line 9294 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= NOT_FIXED_DEC; } #line 40096 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1402: /* opt_default_time_precision: '(' real_ulong_num ')' */ #line 9295 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (yyvsp[-1].ulong_num); } #line 40102 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1403: /* opt_time_precision: %empty */ #line 9299 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 40108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1404: /* opt_time_precision: '(' ')' */ #line 9300 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 40114 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1405: /* opt_time_precision: '(' real_ulong_num ')' */ #line 9301 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (yyvsp[-1].ulong_num); } #line 40120 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1406: /* optional_braces: %empty */ #line 9305 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 40126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1407: /* optional_braces: '(' ')' */ #line 9306 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 40132 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1408: /* expr: expr or expr */ #line 9312 "/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 40187 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1409: /* expr: expr XOR expr */ #line 9363 "/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 40198 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1410: /* expr: expr and expr */ #line 9370 "/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 40245 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1411: /* expr: NOT_SYM expr */ #line 9413 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= negate_expression(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } #line 40255 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1413: /* boolean_test: boolean_test IS TRUE_SYM */ #line 9423 "/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 40265 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1414: /* boolean_test: boolean_test IS not TRUE_SYM */ #line 9429 "/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 40275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1415: /* boolean_test: boolean_test IS FALSE_SYM */ #line 9435 "/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 40285 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1416: /* boolean_test: boolean_test IS not FALSE_SYM */ #line 9441 "/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 40295 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1417: /* boolean_test: boolean_test IS UNKNOWN_SYM */ #line 9447 "/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 40305 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1418: /* boolean_test: boolean_test IS not UNKNOWN_SYM */ #line 9453 "/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 40315 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1419: /* boolean_test: boolean_test IS NULL_SYM */ #line 9459 "/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 40325 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1420: /* boolean_test: boolean_test IS not NULL_SYM */ #line 9465 "/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 40335 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1421: /* boolean_test: boolean_test EQUAL_SYM predicate */ #line 9471 "/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 40345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1422: /* boolean_test: boolean_test comp_op predicate */ #line 9477 "/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 40355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1423: /* boolean_test: boolean_test comp_op all_or_any '(' subselect ')' */ #line 9483 "/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 40365 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1425: /* predicate: predicate IN_SYM subquery */ #line 9493 "/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 40375 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1426: /* predicate: predicate not IN_SYM subquery */ #line 9499 "/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 40388 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1427: /* predicate: predicate IN_SYM '(' expr ')' */ #line 9508 "/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 40398 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1428: /* predicate: predicate IN_SYM '(' expr ',' expr_list ')' */ #line 9514 "/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 40410 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1429: /* predicate: predicate not IN_SYM '(' expr ')' */ #line 9522 "/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 40420 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1430: /* predicate: predicate not IN_SYM '(' expr ',' expr_list ')' */ #line 9528 "/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 40433 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1431: /* predicate: predicate BETWEEN_SYM predicate AND_SYM predicate */ #line 9537 "/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 40443 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1432: /* predicate: predicate not BETWEEN_SYM predicate AND_SYM predicate */ #line 9543 "/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 40455 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1433: /* predicate: predicate SOUNDS_SYM LIKE predicate */ #line 9551 "/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 40469 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1434: /* predicate: predicate LIKE predicate */ #line 9561 "/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 40479 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1435: /* predicate: predicate LIKE predicate ESCAPE_SYM predicate */ #line 9567 "/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 40490 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1436: /* predicate: predicate not LIKE predicate */ #line 9574 "/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 40501 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1437: /* predicate: predicate not LIKE predicate ESCAPE_SYM predicate */ #line 9581 "/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 40513 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1438: /* predicate: predicate REGEXP predicate */ #line 9589 "/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 40523 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1439: /* predicate: predicate not REGEXP predicate */ #line 9595 "/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 40536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1441: /* bit_expr: bit_expr '|' bit_expr */ #line 9608 "/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 40546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1442: /* bit_expr: bit_expr '&' bit_expr */ #line 9614 "/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 40556 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1443: /* bit_expr: bit_expr SHIFT_LEFT bit_expr */ #line 9620 "/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 40566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1444: /* bit_expr: bit_expr SHIFT_RIGHT bit_expr */ #line 9626 "/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 40576 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1445: /* bit_expr: bit_expr ORACLE_CONCAT_SYM bit_expr */ #line 9632 "/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 40587 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1446: /* bit_expr: bit_expr '+' bit_expr */ #line 9639 "/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 40597 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1447: /* bit_expr: bit_expr '-' bit_expr */ #line 9645 "/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 40607 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1448: /* bit_expr: bit_expr '+' INTERVAL_SYM expr interval */ #line 9651 "/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 40617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1449: /* bit_expr: bit_expr '-' INTERVAL_SYM expr interval */ #line 9657 "/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 40627 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1450: /* bit_expr: INTERVAL_SYM expr interval '+' expr */ #line 9664 "/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 40637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1451: /* bit_expr: '+' INTERVAL_SYM expr interval '+' expr */ #line 9670 "/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 40647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1452: /* bit_expr: '-' INTERVAL_SYM expr interval '+' expr */ #line 9676 "/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 40657 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1453: /* bit_expr: bit_expr '*' bit_expr */ #line 9682 "/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 40667 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1454: /* bit_expr: bit_expr '/' bit_expr */ #line 9688 "/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 40677 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1455: /* bit_expr: bit_expr '%' bit_expr */ #line 9694 "/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 40687 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1456: /* bit_expr: bit_expr DIV_SYM bit_expr */ #line 9700 "/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 40697 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1457: /* bit_expr: bit_expr MOD_SYM bit_expr */ #line 9706 "/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 40707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1458: /* bit_expr: bit_expr '^' bit_expr */ #line 9712 "/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 40717 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1468: /* comp_op: '=' */ #line 9741 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_eq_creator; } #line 40723 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1469: /* comp_op: GE */ #line 9742 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_ge_creator; } #line 40729 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1470: /* comp_op: '>' */ #line 9743 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_gt_creator; } #line 40735 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1471: /* comp_op: LE */ #line 9744 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_le_creator; } #line 40741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1472: /* comp_op: '<' */ #line 9745 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_lt_creator; } #line 40747 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1473: /* comp_op: NE */ #line 9746 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_ne_creator; } #line 40753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1474: /* all_or_any: ALL */ #line 9750 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 1; } #line 40759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1475: /* all_or_any: ANY_SYM */ #line 9751 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 0; } #line 40765 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1476: /* opt_dyncol_type: %empty */ #line 9756 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_NULL); /* automatic type */ } #line 40773 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1477: /* opt_dyncol_type: AS dyncol_type */ #line 9759 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } #line 40779 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1481: /* numeric_dyncol_type: INT_SYM */ #line 9769 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_INT); } #line 40785 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1482: /* numeric_dyncol_type: UNSIGNED INT_SYM */ #line 9770 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_UINT); } #line 40791 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1483: /* numeric_dyncol_type: DOUBLE_SYM */ #line 9771 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } #line 40797 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1484: /* numeric_dyncol_type: REAL */ #line 9772 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } #line 40803 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1485: /* numeric_dyncol_type: FLOAT_SYM */ #line 9773 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } #line 40809 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1486: /* numeric_dyncol_type: DECIMAL_SYM float_options */ #line 9774 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_DECIMAL, (yyvsp[0].Lex_length_and_dec)); } #line 40815 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1487: /* temporal_dyncol_type: DATE_SYM */ #line 9778 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_DATE); } #line 40821 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1488: /* temporal_dyncol_type: TIME_SYM opt_field_scale */ #line 9779 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_TIME, (yyvsp[0].Lex_length_and_dec)); } #line 40827 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1489: /* temporal_dyncol_type: DATETIME opt_field_scale */ #line 9780 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_DATETIME, (yyvsp[0].Lex_length_and_dec)); } #line 40833 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1490: /* string_dyncol_type: char opt_binary */ #line 9785 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_dyncol_type).set(DYN_COL_STRING, thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs), thd->variables.collation_connection)) MYSQL_YYABORT; } #line 40844 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1491: /* string_dyncol_type: nchar */ #line 9792 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_dyncol_type).set(DYN_COL_STRING, national_charset_info); } #line 40852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1492: /* dyncall_create_element: expr ',' expr opt_dyncol_type */ #line 9799 "/home/buildbot/git/sql/sql_yacc.yy" { (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= (yyvsp[0].Lex_dyncol_type).charset_collation(); if ((yyvsp[0].Lex_dyncol_type).has_explicit_length()) (yyval.dyncol_def)->len= (yyvsp[0].Lex_dyncol_type).length(); else (yyval.dyncol_def)->len= 0; if ((yyvsp[0].Lex_dyncol_type).has_explicit_dec()) (yyval.dyncol_def)->frac= (yyvsp[0].Lex_dyncol_type).dec(); else (yyval.dyncol_def)->len= 0; } #line 40875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1493: /* dyncall_create_list: dyncall_create_element */ #line 9821 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.dyncol_def_list)= new (thd->mem_root) List; if (unlikely((yyval.dyncol_def_list) == NULL)) MYSQL_YYABORT; (yyval.dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); } #line 40886 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1494: /* dyncall_create_list: dyncall_create_list ',' dyncall_create_element */ #line 9828 "/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 40895 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1495: /* plsql_cursor_attr: ISOPEN_SYM */ #line 9836 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ISOPEN; } #line 40901 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1496: /* plsql_cursor_attr: FOUND_SYM */ #line 9837 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_FOUND; } #line 40907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1497: /* plsql_cursor_attr: NOTFOUND_SYM */ #line 9838 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_NOTFOUND; } #line 40913 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1498: /* plsql_cursor_attr: ROWCOUNT_SYM */ #line 9839 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ROWCOUNT; } #line 40919 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1499: /* explicit_cursor_attr: ident PERCENT_ORACLE_SYM plsql_cursor_attr */ #line 9844 "/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 40928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1502: /* trim_operands_regular: expr */ #line 9857 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } #line 40934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1503: /* trim_operands_special: LEADING expr FROM expr */ #line 9861 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_LEADING, (yyvsp[-2].item), (yyvsp[0].item)); } #line 40940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1504: /* trim_operands_special: TRAILING expr FROM expr */ #line 9862 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_TRAILING, (yyvsp[-2].item), (yyvsp[0].item)); } #line 40946 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1505: /* trim_operands_special: BOTH expr FROM expr */ #line 9863 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } #line 40952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1506: /* trim_operands_special: LEADING FROM expr */ #line 9864 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_LEADING, (yyvsp[0].item)); } #line 40958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1507: /* trim_operands_special: TRAILING FROM expr */ #line 9865 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_TRAILING, (yyvsp[0].item)); } #line 40964 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1508: /* trim_operands_special: BOTH FROM expr */ #line 9866 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } #line 40970 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1509: /* trim_operands_special: expr FROM expr */ #line 9867 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } #line 40976 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1516: /* column_default_non_parenthesized_expr: param_marker */ #line 9905 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item_param); } #line 40982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1518: /* column_default_non_parenthesized_expr: sum_expr */ #line 9908 "/home/buildbot/git/sql/sql_yacc.yy" { if (!Lex->select_stack_top || Lex->json_table) { my_error(ER_INVALID_GROUP_FUNC_USE, MYF(0)); MYSQL_YYABORT; } } #line 40994 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1519: /* column_default_non_parenthesized_expr: window_func_expr */ #line 9916 "/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 41006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1521: /* column_default_non_parenthesized_expr: ROW_SYM '(' expr ',' expr_list ')' */ #line 9925 "/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 41017 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1522: /* column_default_non_parenthesized_expr: EXISTS '(' subselect ')' */ #line 9932 "/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 41027 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1523: /* column_default_non_parenthesized_expr: '{' ident expr '}' */ #line 9938 "/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 41036 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1524: /* column_default_non_parenthesized_expr: MATCH ident_list_arg AGAINST '(' bit_expr fulltext_options ')' */ #line 9943 "/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 41050 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1525: /* column_default_non_parenthesized_expr: CAST_SYM '(' expr AS cast_type ')' */ #line 9953 "/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))))) MYSQL_YYABORT; } #line 41059 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1526: /* column_default_non_parenthesized_expr: CASE_SYM when_list_opt_else END */ #line 9958 "/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 41068 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1527: /* column_default_non_parenthesized_expr: CASE_SYM expr when_list_opt_else END */ #line 9963 "/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 41078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1528: /* column_default_non_parenthesized_expr: CONVERT_SYM '(' expr ',' cast_type ')' */ #line 9969 "/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))))) MYSQL_YYABORT; } #line 41087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1529: /* column_default_non_parenthesized_expr: CONVERT_SYM '(' expr USING charset_name ')' */ #line 9974 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[-1].charset)= thd->variables.character_set_collations. get_collation_for_charset(thd, (yyvsp[-1].charset)); (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 41099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1530: /* column_default_non_parenthesized_expr: DEFAULT '(' simple_ident ')' */ #line 9982 "/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 41114 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1531: /* column_default_non_parenthesized_expr: VALUE_SYM '(' simple_ident_nospvar ')' */ #line 9993 "/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 41125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1532: /* column_default_non_parenthesized_expr: NEXT_SYM VALUE_SYM FOR_SYM table_ident */ #line 10000 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[0].table))))) MYSQL_YYABORT; } #line 41134 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1533: /* column_default_non_parenthesized_expr: NEXTVAL_SYM '(' table_ident ')' */ #line 10005 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[-1].table))))) MYSQL_YYABORT; } #line 41143 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1534: /* column_default_non_parenthesized_expr: PREVIOUS_SYM VALUE_SYM FOR_SYM table_ident */ #line 10010 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[0].table))))) MYSQL_YYABORT; } #line 41152 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1535: /* column_default_non_parenthesized_expr: LASTVAL_SYM '(' table_ident ')' */ #line 10015 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[-1].table))))) MYSQL_YYABORT; } #line 41161 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1536: /* column_default_non_parenthesized_expr: SETVAL_SYM '(' table_ident ',' longlong_num ')' */ #line 10020 "/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 41170 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1537: /* column_default_non_parenthesized_expr: SETVAL_SYM '(' table_ident ',' longlong_num ',' bool ')' */ #line 10025 "/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 41179 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1538: /* column_default_non_parenthesized_expr: SETVAL_SYM '(' table_ident ',' longlong_num ',' bool ',' ulonglong_num ')' */ #line 10030 "/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 41188 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1541: /* primary_expr: '(' parenthesized_expr ')' */ #line 10039 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[-1].item); } #line 41194 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1542: /* primary_expr: subquery */ #line 10041 "/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 41203 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1544: /* string_factor_expr: string_factor_expr COLLATE_SYM collation_name */ #line 10050 "/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].Lex_extended_collation))))) MYSQL_YYABORT; } #line 41213 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1546: /* simple_expr: BINARY simple_expr */ #line 10060 "/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 41223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1547: /* simple_expr: '+' simple_expr */ #line 10066 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 41231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1548: /* simple_expr: '-' simple_expr */ #line 10070 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item)->neg(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } #line 41241 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1549: /* simple_expr: '~' simple_expr */ #line 10076 "/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 41251 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1550: /* simple_expr: not2 simple_expr */ #line 10082 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= negate_expression(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } #line 41261 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1552: /* mysql_concatenation_expr: mysql_concatenation_expr MYSQL_CONCAT_SYM simple_expr */ #line 10092 "/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 41271 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1553: /* function_call_keyword_timestamp: TIMESTAMP '(' expr ')' */ #line 10101 "/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 41282 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1554: /* function_call_keyword_timestamp: TIMESTAMP '(' expr ',' expr ')' */ #line 10108 "/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 41292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1555: /* function_call_keyword: CHAR_SYM '(' expr_list ')' */ #line 10122 "/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 41302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1556: /* function_call_keyword: CHAR_SYM '(' expr_list USING charset_name ')' */ #line 10128 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[-1].charset)= thd->variables.character_set_collations. get_collation_for_charset(thd, (yyvsp[-1].charset)); (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 41314 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1557: /* function_call_keyword: CURRENT_USER optional_braces */ #line 10136 "/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 41327 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1558: /* function_call_keyword: CURRENT_ROLE optional_braces */ #line 10145 "/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 41340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1559: /* function_call_keyword: DATE_SYM '(' expr ')' */ #line 10154 "/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; Lex->set_date_funcs_used_flag(); } #line 41351 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1560: /* function_call_keyword: DAY_SYM '(' expr ')' */ #line 10161 "/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 41361 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1561: /* function_call_keyword: HOUR_SYM '(' expr ')' */ #line 10167 "/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 41371 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1562: /* function_call_keyword: INSERT '(' expr ',' expr ',' expr ',' expr ')' */ #line 10173 "/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 41381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1563: /* function_call_keyword: INTERVAL_SYM '(' expr ',' expr ')' */ #line 10179 "/home/buildbot/git/sql/sql_yacc.yy" { List *list= new (thd->mem_root) List; 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 41400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1564: /* function_call_keyword: INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' */ #line 10194 "/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 41415 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1565: /* function_call_keyword: LEFT '(' expr ',' expr ')' */ #line 10205 "/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 41425 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1566: /* function_call_keyword: MINUTE_SYM '(' expr ')' */ #line 10211 "/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 41435 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1567: /* function_call_keyword: MONTH_SYM '(' expr ')' */ #line 10217 "/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; Lex->set_date_funcs_used_flag(); } #line 41446 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1568: /* function_call_keyword: RIGHT '(' expr ',' expr ')' */ #line 10224 "/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 41456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1569: /* function_call_keyword: SECOND_SYM '(' expr ')' */ #line 10230 "/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 41466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1570: /* function_call_keyword: SQL_SYM PERCENT_ORACLE_SYM ROWCOUNT_SYM */ #line 10236 "/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 41478 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1571: /* function_call_keyword: TIME_SYM '(' expr ')' */ #line 10244 "/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 41489 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1572: /* function_call_keyword: function_call_keyword_timestamp */ #line 10251 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 41497 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1573: /* function_call_keyword: TRIM '(' trim_operands ')' */ #line 10255 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Schema::find_implied(thd)-> make_item_func_trim(thd, (yyvsp[-1].trim))))) MYSQL_YYABORT; } #line 41507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1574: /* function_call_keyword: USER_SYM '(' ')' */ #line 10261 "/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 41519 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1575: /* function_call_keyword: YEAR_SYM '(' expr ')' */ #line 10269 "/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; Lex->set_date_funcs_used_flag(); } #line 41530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1578: /* substring_operands_regular: expr ',' expr ',' expr */ #line 10284 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.substring_spec)= Lex_substring_spec_st::init((yyvsp[-4].item), (yyvsp[-2].item), (yyvsp[0].item)); } #line 41538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1579: /* substring_operands_regular: expr ',' expr */ #line 10288 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.substring_spec)= Lex_substring_spec_st::init((yyvsp[-2].item), (yyvsp[0].item)); } #line 41546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1580: /* substring_operands_special: expr FROM expr FOR_SYM expr */ #line 10295 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.substring_spec)= Lex_substring_spec_st::init((yyvsp[-4].item), (yyvsp[-2].item), (yyvsp[0].item)); } #line 41554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1581: /* substring_operands_special: expr FROM expr */ #line 10299 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.substring_spec)= Lex_substring_spec_st::init((yyvsp[-2].item), (yyvsp[0].item)); } #line 41562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1582: /* function_call_nonkeyword: ADDDATE_SYM '(' expr ',' expr ')' */ #line 10319 "/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 41573 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1583: /* function_call_nonkeyword: ADDDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' */ #line 10326 "/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 41583 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1584: /* function_call_nonkeyword: CURDATE optional_braces */ #line 10332 "/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 41594 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1585: /* function_call_nonkeyword: CURTIME opt_time_precision */ #line 10339 "/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 41605 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1586: /* function_call_nonkeyword: DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' */ #line 10346 "/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 41615 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1587: /* function_call_nonkeyword: DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' */ #line 10352 "/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 41625 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1588: /* function_call_nonkeyword: EXTRACT_SYM '(' interval FROM expr ')' */ #line 10358 "/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 41635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1589: /* function_call_nonkeyword: GET_FORMAT '(' date_time_type ',' expr ')' */ #line 10364 "/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 41645 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1590: /* function_call_nonkeyword: NOW_SYM opt_time_precision */ #line 10370 "/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 41656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1591: /* function_call_nonkeyword: POSITION_SYM '(' bit_expr IN_SYM expr ')' */ #line 10377 "/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 41666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1592: /* function_call_nonkeyword: ROWNUM_SYM '(' ')' */ #line 10388 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= new (thd->mem_root) Item_func_rownum(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } #line 41676 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1593: /* function_call_nonkeyword: SUBDATE_SYM '(' expr ',' expr ')' */ #line 10394 "/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 41687 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1594: /* function_call_nonkeyword: SUBDATE_SYM '(' expr ',' INTERVAL_SYM expr interval ')' */ #line 10401 "/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 41697 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1595: /* function_call_nonkeyword: SUBSTRING '(' substring_operands ')' */ #line 10407 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Schema::find_implied(thd)-> make_item_func_substr(thd, (yyvsp[-1].substring_spec))))) MYSQL_YYABORT; } #line 41707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1596: /* function_call_nonkeyword: SYSDATE '(' ')' */ #line 10420 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_sysdate(thd, 0)))) MYSQL_YYABORT; } #line 41716 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1597: /* function_call_nonkeyword: SYSDATE '(' real_ulong_num ')' */ #line 10425 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_sysdate(thd, (uint) (yyvsp[-1].ulong_num))))) MYSQL_YYABORT; } #line 41725 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1598: /* function_call_nonkeyword: TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')' */ #line 10430 "/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 41735 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1599: /* function_call_nonkeyword: TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')' */ #line 10436 "/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 41745 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1600: /* function_call_nonkeyword: TRIM_ORACLE '(' trim_operands ')' */ #line 10442 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim_oracle(thd)))) MYSQL_YYABORT; } #line 41754 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1601: /* function_call_nonkeyword: UTC_DATE_SYM optional_braces */ #line 10447 "/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 41765 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1602: /* function_call_nonkeyword: UTC_TIME_SYM opt_time_precision */ #line 10454 "/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 41776 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1603: /* function_call_nonkeyword: UTC_TIMESTAMP_SYM opt_time_precision */ #line 10461 "/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 41787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1604: /* function_call_nonkeyword: COLUMN_ADD_SYM '(' expr ',' dyncall_create_list ')' */ #line 10469 "/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 41797 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1605: /* function_call_nonkeyword: COLUMN_DELETE_SYM '(' expr ',' expr_list ')' */ #line 10476 "/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 41807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1606: /* function_call_nonkeyword: COLUMN_CREATE_SYM '(' dyncall_create_list ')' */ #line 10483 "/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 41817 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1607: /* function_call_nonkeyword: COLUMN_GET_SYM '(' expr ',' expr AS cast_type ')' */ #line 10490 "/home/buildbot/git/sql/sql_yacc.yy" { (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), (yyvsp[-1].Lex_cast_type).charset()); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } #line 41828 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1608: /* function_call_conflict: ASCII_SYM '(' expr ')' */ #line 10505 "/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 41838 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1609: /* function_call_conflict: CHARSET '(' expr ')' */ #line 10511 "/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 41848 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1610: /* function_call_conflict: IF_SYM '(' expr ',' expr ',' expr ')' */ #line 10517 "/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 41858 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1611: /* function_call_conflict: LAST_VALUE '(' expr ')' */ #line 10526 "/home/buildbot/git/sql/sql_yacc.yy" { List *list= new (thd->mem_root) List; 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 41873 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1612: /* function_call_conflict: LAST_VALUE '(' expr_list ',' expr ')' */ #line 10537 "/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 41884 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1613: /* function_call_conflict: MOD_SYM '(' expr ',' expr ')' */ #line 10544 "/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 41894 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1614: /* function_call_conflict: PASSWORD_SYM '(' expr ')' */ #line 10550 "/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 41906 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1615: /* function_call_conflict: REPEAT_SYM '(' expr ',' expr ')' */ #line 10558 "/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 41916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1616: /* function_call_conflict: REPLACE '(' expr ',' expr ',' expr ')' */ #line 10564 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Schema::find_implied(thd)-> make_item_func_replace(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } #line 41926 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1617: /* function_call_conflict: TRUNCATE_SYM '(' expr ',' expr ')' */ #line 10570 "/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 41936 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1618: /* function_call_conflict: WEIGHT_STRING_SYM '(' expr opt_ws_levels ')' */ #line 10576 "/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 41946 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1619: /* function_call_conflict: WEIGHT_STRING_SYM '(' expr AS CHAR_SYM ws_nweights opt_ws_levels ')' */ #line 10582 "/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 41958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1620: /* function_call_conflict: WEIGHT_STRING_SYM '(' expr AS BINARY ws_nweights ')' */ #line 10590 "/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 41974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1621: /* function_call_conflict: WEIGHT_STRING_SYM '(' expr ',' ulong_num ',' ulong_num ',' ulong_num ')' */ #line 10602 "/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 41985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1622: /* @142: %empty */ #line 10621 "/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 42008 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1623: /* function_call_generic: ident_func '(' @142 opt_udf_expr_list ')' */ #line 10640 "/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 database) This will be revised with WL#2128 (SQL PATH) */ builder= Schema::find_implied(thd)-> find_native_function_builder(thd, (yyvsp[-4].ident_sys)); if (builder) { 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 42069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1624: /* function_call_generic: CONTAINS_SYM '(' opt_expr_list ')' */ #line 10697 "/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 42079 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1625: /* function_call_generic: OVERLAPS_SYM '(' opt_expr_list ')' */ #line 10703 "/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 42089 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1626: /* function_call_generic: WITHIN '(' opt_expr_list ')' */ #line 10709 "/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 42099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1627: /* function_call_generic: ident_cli '.' ident_cli '(' opt_expr_list ')' */ #line 10715 "/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 42108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1628: /* function_call_generic: ident_cli '.' ident_cli '.' ident_cli '(' opt_expr_list ')' */ #line 10720 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_call_generic(thd, &(yyvsp[-7].ident_cli), &(yyvsp[-5].ident_cli), &(yyvsp[-3].ident_cli), (yyvsp[-1].item_list))))) MYSQL_YYABORT; } #line 42117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1629: /* function_call_generic: ident_cli '.' REPLACE '(' opt_expr_list ')' */ #line 10725 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_replace(thd, (yyvsp[-5].ident_cli), (yyvsp[-3].kwd), (yyvsp[-1].item_list))))) MYSQL_YYABORT; } #line 42126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1630: /* function_call_generic: ident_cli '.' SUBSTRING '(' opt_expr_list ')' */ #line 10730 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].ident_cli), (yyvsp[-3].kwd), (yyvsp[-1].item_list))))) MYSQL_YYABORT; } #line 42135 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1631: /* function_call_generic: ident_cli '.' SUBSTRING '(' substring_operands_special ')' */ #line 10735 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].ident_cli), (yyvsp[-3].kwd), (yyvsp[-1].substring_spec))))) MYSQL_YYABORT; } #line 42144 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1632: /* function_call_generic: ident_cli '.' TRIM '(' opt_expr_list ')' */ #line 10740 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_trim(thd, (yyvsp[-5].ident_cli), (yyvsp[-3].kwd), (yyvsp[-1].item_list))))) MYSQL_YYABORT; } #line 42153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1633: /* function_call_generic: ident_cli '.' TRIM '(' trim_operands_special ')' */ #line 10745 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->make_item_func_trim(thd, (yyvsp[-5].ident_cli), (yyvsp[-3].kwd), (yyvsp[-1].trim))))) MYSQL_YYABORT; } #line 42162 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1634: /* fulltext_options: opt_natural_language_mode opt_query_expansion */ #line 10765 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } #line 42168 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1635: /* fulltext_options: IN_SYM BOOLEAN_SYM MODE_SYM */ #line 10767 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= FT_BOOL; } #line 42174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1636: /* opt_natural_language_mode: %empty */ #line 10771 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= FT_NL; } #line 42180 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1637: /* opt_natural_language_mode: IN_SYM NATURAL LANGUAGE_SYM MODE_SYM */ #line 10772 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= FT_NL; } #line 42186 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1638: /* opt_query_expansion: %empty */ #line 10776 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 42192 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1639: /* opt_query_expansion: WITH QUERY_SYM EXPANSION_SYM */ #line 10777 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= FT_EXPAND; } #line 42198 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1640: /* opt_udf_expr_list: %empty */ #line 10781 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= NULL; } #line 42204 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1641: /* opt_udf_expr_list: udf_expr_list */ #line 10782 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list); } #line 42210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1642: /* udf_expr_list: udf_expr */ #line 10787 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL)) MYSQL_YYABORT; (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root); } #line 42221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1643: /* udf_expr_list: udf_expr_list ',' udf_expr */ #line 10794 "/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 42230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1644: /* udf_expr: remember_name expr remember_end select_alias */ #line 10802 "/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)->base_flags|= item_base_t::IS_EXPLICIT_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 42258 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1645: /* sum_expr: AVG_SYM '(' in_sum_expr ')' */ #line 10829 "/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 42268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1646: /* sum_expr: AVG_SYM '(' DISTINCT in_sum_expr ')' */ #line 10835 "/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 42278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1647: /* sum_expr: BIT_AND '(' in_sum_expr ')' */ #line 10841 "/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 42288 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1648: /* sum_expr: BIT_OR '(' in_sum_expr ')' */ #line 10847 "/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 42298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1649: /* sum_expr: BIT_XOR '(' in_sum_expr ')' */ #line 10853 "/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 42308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1650: /* sum_expr: COUNT_SYM '(' opt_all '*' ')' */ #line 10859 "/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 42321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1651: /* sum_expr: COUNT_SYM '(' in_sum_expr ')' */ #line 10868 "/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 42331 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1652: /* $@143: %empty */ #line 10874 "/home/buildbot/git/sql/sql_yacc.yy" { Select->in_sum_expr++; } #line 42337 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1653: /* $@144: %empty */ #line 10876 "/home/buildbot/git/sql/sql_yacc.yy" { Select->in_sum_expr--; } #line 42343 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1654: /* sum_expr: COUNT_SYM '(' DISTINCT $@143 expr_list $@144 ')' */ #line 10878 "/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 42353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1655: /* sum_expr: MIN_SYM '(' in_sum_expr ')' */ #line 10884 "/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 42363 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1656: /* sum_expr: MIN_SYM '(' DISTINCT in_sum_expr ')' */ #line 10895 "/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 42373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1657: /* sum_expr: MAX_SYM '(' in_sum_expr ')' */ #line 10901 "/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 42383 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1658: /* sum_expr: MAX_SYM '(' DISTINCT in_sum_expr ')' */ #line 10907 "/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 42393 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1659: /* sum_expr: STD_SYM '(' in_sum_expr ')' */ #line 10913 "/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 42403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1660: /* sum_expr: VARIANCE_SYM '(' in_sum_expr ')' */ #line 10919 "/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 42413 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1661: /* sum_expr: STDDEV_SAMP_SYM '(' in_sum_expr ')' */ #line 10925 "/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 42423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1662: /* sum_expr: VAR_SAMP_SYM '(' in_sum_expr ')' */ #line 10931 "/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 42433 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1663: /* sum_expr: SUM_SYM '(' in_sum_expr ')' */ #line 10937 "/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 42443 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1664: /* sum_expr: SUM_SYM '(' DISTINCT in_sum_expr ')' */ #line 10943 "/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 42453 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1665: /* $@145: %empty */ #line 10949 "/home/buildbot/git/sql/sql_yacc.yy" { Select->in_sum_expr++; } #line 42459 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1666: /* sum_expr: GROUP_CONCAT_SYM '(' opt_distinct $@145 expr_list opt_gorder_clause opt_gconcat_separator opt_glimit_clause ')' */ #line 10953 "/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->limit_params.select_limit, sel->limit_params.offset_limit); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; sel->limit_params.clear(); (yyvsp[-4].item_list)->empty(); sel->gorder_list.empty(); } #line 42479 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1667: /* $@146: %empty */ #line 10969 "/home/buildbot/git/sql/sql_yacc.yy" { Select->in_sum_expr++; } #line 42485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1668: /* sum_expr: JSON_ARRAYAGG_SYM '(' opt_distinct $@146 expr_list opt_gorder_clause opt_glimit_clause ')' */ #line 10972 "/home/buildbot/git/sql/sql_yacc.yy" { SELECT_LEX *sel= Select; List *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->limit_params.select_limit, sel->limit_params.offset_limit); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; sel->limit_params.clear(); (yyvsp[-3].item_list)->empty(); sel->gorder_list.empty(); } #line 42516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1669: /* $@147: %empty */ #line 10999 "/home/buildbot/git/sql/sql_yacc.yy" { Select->in_sum_expr++; } #line 42522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1670: /* sum_expr: JSON_OBJECTAGG_SYM '(' $@147 expr ',' expr ')' */ #line 11001 "/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 42535 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1671: /* window_func_expr: window_func OVER_SYM window_name */ #line 11013 "/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 42547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1672: /* window_func_expr: window_func OVER_SYM window_spec */ #line 11022 "/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 42566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1675: /* window_func: function_call_generic */ #line 11044 "/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; } } #line 42582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1676: /* simple_window_func: ROW_NUMBER_SYM '(' ')' */ #line 11059 "/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 42592 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1677: /* simple_window_func: RANK_SYM '(' ')' */ #line 11066 "/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 42602 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1678: /* simple_window_func: DENSE_RANK_SYM '(' ')' */ #line 11073 "/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 42612 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1679: /* simple_window_func: PERCENT_RANK_SYM '(' ')' */ #line 11080 "/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 42622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1680: /* simple_window_func: CUME_DIST_SYM '(' ')' */ #line 11087 "/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 42632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1681: /* simple_window_func: NTILE_SYM '(' expr ')' */ #line 11094 "/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 42642 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1682: /* simple_window_func: FIRST_VALUE_SYM '(' expr ')' */ #line 11101 "/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 42652 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1683: /* simple_window_func: LAST_VALUE '(' expr ')' */ #line 11108 "/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 42662 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1684: /* simple_window_func: NTH_VALUE_SYM '(' expr ',' expr ')' */ #line 11115 "/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 42672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1685: /* simple_window_func: LEAD_SYM '(' expr ')' */ #line 11122 "/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 42686 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1686: /* simple_window_func: LEAD_SYM '(' expr ',' expr ')' */ #line 11133 "/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 42696 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1687: /* simple_window_func: LAG_SYM '(' expr ')' */ #line 11140 "/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 42710 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1688: /* simple_window_func: LAG_SYM '(' expr ',' expr ')' */ #line 11151 "/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 42720 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1689: /* inverse_distribution_function: percentile_function OVER_SYM '(' opt_window_partition_clause ')' */ #line 11163 "/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 42739 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1690: /* $@148: %empty */ #line 11181 "/home/buildbot/git/sql/sql_yacc.yy" { Select->prepare_add_window_spec(thd); } #line 42745 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1691: /* percentile_function: inverse_distribution_function_def WITHIN GROUP_SYM '(' $@148 order_by_single_element_list ')' */ #line 11183 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[-6].item); } #line 42753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1692: /* percentile_function: MEDIAN_SYM '(' expr ')' */ #line 11187 "/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 42771 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1693: /* inverse_distribution_function_def: PERCENTILE_CONT_SYM '(' expr ')' */ #line 11204 "/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 42781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1694: /* inverse_distribution_function_def: PERCENTILE_DISC_SYM '(' expr ')' */ #line 11210 "/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 42791 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1695: /* order_by_single_element_list: ORDER_SYM BY order_ident order_dir */ #line 11219 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } #line 42800 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1696: /* window_name: ident */ #line 11228 "/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 42810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1697: /* $@149: %empty */ #line 11237 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(! Lex->parsing_options.allows_variable)) my_yyabort_error((ER_VIEW_SELECT_VARIABLE, MYF(0))); } #line 42819 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1698: /* variable: '@' $@149 variable_aux */ #line 11242 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 42827 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1699: /* variable_aux: ident_or_text SET_VAR expr */ #line 11249 "/home/buildbot/git/sql/sql_yacc.yy" { Item_func_set_user_var *item; if (!(yyvsp[-2].lex_str).length) { thd->parse_error(); MYSQL_YYABORT; } (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 42846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1700: /* variable_aux: ident_or_text */ #line 11264 "/home/buildbot/git/sql/sql_yacc.yy" { if (!(yyvsp[0].lex_str).length) { thd->parse_error(); MYSQL_YYABORT; } (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 42863 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1701: /* variable_aux: '@' opt_var_ident_type ident_sysvar_name */ #line 11277 "/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 42872 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1702: /* variable_aux: '@' opt_var_ident_type ident_sysvar_name '.' ident */ #line 11282 "/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 42881 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1703: /* opt_distinct: %empty */ #line 11289 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 0; } #line 42887 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1704: /* opt_distinct: DISTINCT */ #line 11290 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 1; } #line 42893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1705: /* opt_gconcat_separator: %empty */ #line 11295 "/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 42903 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1706: /* opt_gconcat_separator: SEPARATOR_SYM text_string */ #line 11300 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.string) = (yyvsp[0].string); } #line 42909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1709: /* gorder_list: gorder_list ',' order_ident order_dir */ #line 11310 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } #line 42918 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1710: /* gorder_list: order_ident order_dir */ #line 11315 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } #line 42927 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1711: /* opt_glimit_clause: %empty */ #line 11322 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 0; } #line 42933 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1712: /* opt_glimit_clause: glimit_clause */ #line 11323 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 1; } #line 42939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1713: /* glimit_clause: LIMIT glimit_options */ #line 11329 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } #line 42947 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1714: /* glimit_options: limit_options */ #line 11336 "/home/buildbot/git/sql/sql_yacc.yy" { Select->limit_params= (yyvsp[0].select_limit); } #line 42955 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1715: /* $@150: %empty */ #line 11345 "/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 42968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1716: /* in_sum_expr: opt_all $@150 expr */ #line 11354 "/home/buildbot/git/sql/sql_yacc.yy" { Select->in_sum_expr--; (yyval.item)= (yyvsp[0].item); } #line 42977 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1717: /* cast_type: BINARY opt_field_length */ #line 11362 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].Lex_length_and_dec), &my_charset_bin); } #line 42983 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1718: /* cast_type: CHAR_SYM opt_field_length opt_binary */ #line 11364 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-1].Lex_length_and_dec), thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs), thd->variables.collation_connection)) MYSQL_YYABORT; } #line 42994 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1719: /* cast_type: VARCHAR field_length opt_binary */ #line 11371 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-1].Lex_length_and_dec), thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs), thd->variables.collation_connection)) MYSQL_YYABORT; } #line 43005 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1720: /* cast_type: VARCHAR2_ORACLE_SYM field_length opt_binary */ #line 11378 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-1].Lex_length_and_dec), thd, thd->variables.character_set_collations, (yyvsp[0].Lex_exact_charset_extended_collation_attrs), thd->variables.collation_connection)) MYSQL_YYABORT; } #line 43016 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1721: /* cast_type: NCHAR_SYM opt_field_length */ #line 11385 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].Lex_length_and_dec), national_charset_info); } #line 43024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1722: /* cast_type: cast_type_numeric */ #line 11388 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); } #line 43030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1723: /* cast_type: cast_type_temporal */ #line 11389 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); } #line 43036 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1724: /* cast_type: udt_name */ #line 11391 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->set_cast_type_udt(&(yyval.Lex_cast_type), (yyvsp[0].lex_str))) MYSQL_YYABORT; } #line 43045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1725: /* cast_type_numeric: INT_SYM */ #line 11398 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_slonglong); } #line 43051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1726: /* cast_type_numeric: SIGNED_SYM */ #line 11399 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_slonglong); } #line 43057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1727: /* cast_type_numeric: SIGNED_SYM INT_SYM */ #line 11400 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_slonglong); } #line 43063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1728: /* cast_type_numeric: UNSIGNED */ #line 11401 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } #line 43069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1729: /* cast_type_numeric: UNSIGNED INT_SYM */ #line 11402 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } #line 43075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1730: /* cast_type_numeric: DECIMAL_SYM float_options */ #line 11403 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_newdecimal, (yyvsp[0].Lex_length_and_dec)); } #line 43081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1731: /* cast_type_numeric: FLOAT_SYM */ #line 11404 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_float); } #line 43087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1732: /* cast_type_numeric: DOUBLE_SYM opt_precision */ #line 11405 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_double, (yyvsp[0].Lex_length_and_dec)); } #line 43093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1733: /* cast_type_temporal: DATE_SYM */ #line 11409 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_newdate); } #line 43099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1734: /* cast_type_temporal: TIME_SYM opt_field_scale */ #line 11410 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_time2, (yyvsp[0].Lex_length_and_dec)); } #line 43105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1735: /* cast_type_temporal: DATETIME opt_field_scale */ #line 11411 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_datetime2, (yyvsp[0].Lex_length_and_dec)); } #line 43111 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1736: /* cast_type_temporal: INTERVAL_SYM DAY_SECOND_SYM field_scale */ #line 11413 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.Lex_cast_type).set(&type_handler_interval_DDhhmmssff, (yyvsp[0].Lex_length_and_dec)); } #line 43119 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1737: /* opt_expr_list: %empty */ #line 11419 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= NULL; } #line 43125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1738: /* opt_expr_list: expr_list */ #line 11420 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list);} #line 43131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1739: /* expr_list: expr */ #line 11425 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item_list)= List::make(thd->mem_root, (yyvsp[0].item))))) MYSQL_YYABORT; } #line 43140 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1740: /* expr_list: expr_list ',' expr */ #line 11430 "/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 43149 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1741: /* ident_list_arg: ident_list */ #line 11437 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list); } #line 43155 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1742: /* ident_list_arg: '(' ident_list ')' */ #line 11438 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= (yyvsp[-1].item_list); } #line 43161 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1743: /* ident_list: simple_ident */ #line 11443 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } #line 43172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1744: /* ident_list: ident_list ',' simple_ident */ #line 11450 "/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 43181 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1745: /* when_list: WHEN_SYM expr THEN_SYM expr */ #line 11458 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item_list)= new (thd->mem_root) List; 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 43194 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1746: /* when_list: when_list WHEN_SYM expr THEN_SYM expr */ #line 11467 "/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 43205 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1748: /* when_list_opt_else: when_list ELSE expr */ #line 11478 "/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 43215 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1749: /* table_ref: table_factor */ #line 11488 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1750: /* table_ref: join_table */ #line 11490 "/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 43234 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1751: /* json_text_literal: TEXT_STRING */ #line 11502 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= NULL; } #line 43242 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1752: /* json_text_literal: NCHAR_STRING */ #line 11506 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= national_charset_info; } #line 43250 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1753: /* json_text_literal: UNDERSCORE_CHARSET TEXT_STRING */ #line 11510 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= (yyvsp[-1].charset); (yyval.lex_string_with_metadata)= (yyvsp[0].lex_string_with_metadata); } #line 43259 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1755: /* json_text_literal_or_num: NUM */ #line 11519 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= NULL; } #line 43267 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1756: /* json_text_literal_or_num: LONG_NUM */ #line 11523 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= NULL; } #line 43275 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1757: /* json_text_literal_or_num: DECIMAL_NUM */ #line 11527 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= NULL; } #line 43283 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1758: /* json_text_literal_or_num: FLOAT_NUM */ #line 11531 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_text_literal_cs= NULL; } #line 43291 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1759: /* join_table_list: derived_table_list */ #line 11537 "/home/buildbot/git/sql/sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); } #line 43297 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1760: /* json_table_columns_clause: COLUMNS '(' json_table_columns_list ')' */ #line 11542 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 43303 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1762: /* json_table_columns_list: json_table_columns_list ',' json_table_column */ #line 11548 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 43309 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1763: /* $@151: %empty */ #line 11553 "/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].ident_sys), 0, NAME_CHAR_LEN, system_charset_info, 1))) my_yyabort_error((ER_TOO_LONG_IDENT, MYF(0), (yyvsp[0].ident_sys).str)); lex->json_table->m_cur_json_table_column= new (thd->mem_root) Json_table_column(f, lex->json_table->get_cur_nested_path()); if (unlikely(!f || !lex->json_table->m_cur_json_table_column)) MYSQL_YYABORT; lex->init_last_field(f, &(yyvsp[0].ident_sys)); } #line 43332 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1764: /* json_table_column: ident $@151 json_table_column_type */ #line 11572 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; if (unlikely(lex->json_table-> m_cur_json_table_column->m_field->check(thd))) MYSQL_YYABORT; lex->json_table->m_columns.push_back( lex->json_table->m_cur_json_table_column, thd->mem_root); } #line 43345 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1765: /* $@152: %empty */ #line 11581 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; Json_table_nested_path *np= new (thd->mem_root) Json_table_nested_path(); np->set_path(thd, (yyvsp[0].lex_string_with_metadata)); lex->json_table->start_nested_path(np); } #line 43357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1766: /* json_table_column: NESTED_SYM PATH_SYM json_text_literal $@152 json_table_columns_clause */ #line 11589 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->json_table->end_nested_path(); } #line 43366 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1767: /* json_table_column_type: FOR_SYM ORDINALITY_SYM */ #line 11597 "/home/buildbot/git/sql/sql_yacc.yy" { Lex_field_type_st type; type.set(&type_handler_slong); Lex->last_field->set_attributes(thd, type, COLUMN_DEFINITION_TABLE_FIELD); Lex->json_table->m_cur_json_table_column-> set(Json_table_column::FOR_ORDINALITY); } #line 43379 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1768: /* json_table_column_type: json_table_field_type PATH_SYM json_text_literal json_opt_on_empty_or_error */ #line 11607 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->set_attributes(thd, (yyvsp[-3].Lex_field_type), COLUMN_DEFINITION_TABLE_FIELD); if (Lex->json_table->m_cur_json_table_column-> set(thd, Json_table_column::PATH, (yyvsp[-1].lex_string_with_metadata), (yyvsp[-3].Lex_field_type).charset_collation_attrs())) { MYSQL_YYABORT; } } #line 43394 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1769: /* json_table_column_type: json_table_field_type EXISTS PATH_SYM json_text_literal */ #line 11618 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->last_field->set_attributes(thd, (yyvsp[-3].Lex_field_type), COLUMN_DEFINITION_TABLE_FIELD); if (Lex->json_table->m_cur_json_table_column-> set(thd, Json_table_column::EXISTS_PATH, (yyvsp[0].lex_string_with_metadata), (yyvsp[-3].Lex_field_type).charset_collation_attrs())) MYSQL_YYABORT; } #line 43407 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1774: /* json_opt_on_empty_or_error: %empty */ #line 11637 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 43413 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1779: /* json_on_response: ERROR_SYM */ #line 11646 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.json_on_response).m_response= Json_table_column::RESPONSE_ERROR; } #line 43421 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1780: /* json_on_response: NULL_SYM */ #line 11650 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.json_on_response).m_response= Json_table_column::RESPONSE_NULL; } #line 43429 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1781: /* json_on_response: DEFAULT json_text_literal_or_num */ #line 11654 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.json_on_response).m_response= Json_table_column::RESPONSE_DEFAULT; (yyval.json_on_response).m_default= (yyvsp[0].lex_string_with_metadata); Lex->json_table->m_cur_json_table_column->m_defaults_cs= thd->variables.collation_connection; } #line 43440 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1782: /* json_on_error_response: json_on_response ON ERROR_SYM */ #line 11664 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_cur_json_table_column->m_on_error= (yyvsp[-2].json_on_response); } #line 43448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1783: /* json_on_empty_response: json_on_response ON EMPTY_SYM */ #line 11671 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->json_table->m_cur_json_table_column->m_on_empty= (yyvsp[-2].json_on_response); } #line 43456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1784: /* $@153: %empty */ #line 11678 "/home/buildbot/git/sql/sql_yacc.yy" { push_table_function_arg_context(Lex, thd->mem_root); //TODO: introduce IN_TABLE_FUNC_ARGUMENT? Select->parsing_place= IN_ON; } #line 43466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1785: /* $@154: %empty */ #line 11684 "/home/buildbot/git/sql/sql_yacc.yy" { Table_function_json_table *jt= new (thd->mem_root) Table_function_json_table((yyvsp[-1].item)); if (unlikely(!jt)) MYSQL_YYABORT; /* See comment for class Table_function_json_table: */ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->json_table= jt; Select->parsing_place= NO_MATTER; jt->set_name_resolution_context(Lex->pop_context()); } #line 43483 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1786: /* table_function: JSON_TABLE_SYM '(' $@153 expr ',' $@154 json_text_literal json_table_columns_clause ')' opt_table_alias_clause */ #line 11697 "/home/buildbot/git/sql/sql_yacc.yy" { SELECT_LEX *sel= Select; if (unlikely((yyvsp[0].lex_str_ptr) == NULL)) { /* Alias is not optional. */ my_error(ER_JSON_TABLE_ALIAS_REQUIRED, MYF(0)); MYSQL_YYABORT; } if (unlikely(Lex->json_table->m_nested_path.set_path(thd, (yyvsp[-3].lex_string_with_metadata)))) MYSQL_YYABORT; if (!((yyval.table_list)= sel->add_table_to_list(thd, new (thd->mem_root) Table_ident(thd, &any_db, (yyvsp[0].lex_str_ptr), TRUE), NULL, TL_OPTION_TABLE_FUNCTION, YYPS->m_lock_type, YYPS->m_mdl_type, 0,0,0))) MYSQL_YYABORT; (yyval.table_list)->table_function= Lex->json_table; Lex->json_table= 0; status_var_increment(thd->status_var.feature_json); } #line 43511 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1787: /* esc_table_ref: table_ref */ #line 11730 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)=(yyvsp[0].table_list); } #line 43517 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1788: /* esc_table_ref: '{' ident table_ref '}' */ #line 11731 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)=(yyvsp[-1].table_list); } #line 43523 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1789: /* derived_table_list: esc_table_ref */ #line 11738 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)=(yyvsp[0].table_list); Select->add_joined_table((yyvsp[0].table_list)); } #line 43532 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1790: /* derived_table_list: derived_table_list ',' esc_table_ref */ #line 11743 "/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 43541 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1791: /* join_table: table_ref normal_join table_ref */ #line 11757 "/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 43551 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1792: /* $@155: %empty */ #line 11764 "/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 43565 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1793: /* join_table: table_ref normal_join table_ref ON $@155 expr */ #line 11774 "/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 43576 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1794: /* $@156: %empty */ #line 11782 "/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 43586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1795: /* join_table: table_ref normal_join table_ref USING $@156 '(' using_list ')' */ #line 11788 "/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 43596 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1796: /* join_table: table_ref NATURAL inner_join table_factor */ #line 11794 "/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 43608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1797: /* $@157: %empty */ #line 11805 "/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 43622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1798: /* join_table: table_ref LEFT opt_outer JOIN_SYM table_ref ON $@157 expr */ #line 11815 "/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 43634 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1799: /* $@158: %empty */ #line 11823 "/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 43644 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1800: /* join_table: table_ref LEFT opt_outer JOIN_SYM table_factor $@158 USING '(' using_list ')' */ #line 11829 "/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 43654 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1801: /* join_table: table_ref NATURAL LEFT opt_outer JOIN_SYM table_factor */ #line 11835 "/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 43667 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1802: /* $@159: %empty */ #line 11847 "/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 43681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1803: /* join_table: table_ref RIGHT opt_outer JOIN_SYM table_ref ON $@159 expr */ #line 11857 "/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 43694 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1804: /* $@160: %empty */ #line 11866 "/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 43704 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1805: /* join_table: table_ref RIGHT opt_outer JOIN_SYM table_factor $@160 USING '(' using_list ')' */ #line 11872 "/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 43715 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1806: /* join_table: table_ref NATURAL RIGHT opt_outer JOIN_SYM table_factor */ #line 11879 "/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 43729 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1807: /* inner_join: JOIN_SYM */ #line 11892 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 0; } #line 43735 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1808: /* inner_join: INNER_SYM JOIN_SYM */ #line 11893 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 0; } #line 43741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1809: /* inner_join: STRAIGHT_JOIN */ #line 11894 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 1; } #line 43747 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1810: /* normal_join: inner_join */ #line 11898 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = (yyvsp[0].num); } #line 43753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1811: /* normal_join: CROSS JOIN_SYM */ #line 11899 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num) = 0; } #line 43759 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1812: /* opt_use_partition: %empty */ #line 11907 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.string_list)= 0;} #line 43765 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1814: /* use_partition: PARTITION_SYM '(' using_list ')' have_partitioning */ #line 11913 "/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 43775 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1815: /* table_factor: table_primary_ident_opt_parens */ #line 11921 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1816: /* table_factor: table_primary_derived_opt_parens */ #line 11922 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1817: /* table_factor: join_table_parens */ #line 11924 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].table_list)->nested_join->nest_type= 0; (yyval.table_list)= (yyvsp[0].table_list); } #line 43796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1818: /* table_factor: table_reference_list_parens */ #line 11928 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43802 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1819: /* table_factor: table_function */ #line 11929 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43808 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1820: /* table_primary_ident_opt_parens: table_primary_ident */ #line 11933 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43814 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1821: /* table_primary_ident_opt_parens: '(' table_primary_ident_opt_parens ')' */ #line 11934 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[-1].table_list); } #line 43820 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1822: /* table_primary_derived_opt_parens: table_primary_derived */ #line 11938 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 43826 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1823: /* table_primary_derived_opt_parens: '(' table_primary_derived_opt_parens ')' */ #line 11939 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[-1].table_list); } #line 43832 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1824: /* table_reference_list_parens: '(' table_reference_list_parens ')' */ #line 11943 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[-1].table_list); } #line 43838 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1825: /* table_reference_list_parens: '(' nested_table_reference_list ')' */ #line 11945 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.table_list)= Select->end_nested_join(thd))) MYSQL_YYABORT; } #line 43847 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1826: /* nested_table_reference_list: table_ref ',' table_ref */ #line 11953 "/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 43859 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1827: /* nested_table_reference_list: nested_table_reference_list ',' table_ref */ #line 11961 "/home/buildbot/git/sql/sql_yacc.yy" { Select->add_joined_table((yyvsp[0].table_list)); (yyval.table_list)= (yyvsp[-2].table_list); } #line 43868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1828: /* join_table_parens: '(' join_table_parens ')' */ #line 11968 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[-1].table_list); } #line 43874 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1829: /* join_table_parens: '(' join_table ')' */ #line 11970 "/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 43887 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1830: /* table_primary_ident: table_ident opt_use_partition opt_for_system_time_clause opt_table_alias_clause opt_key_definition */ #line 11984 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-4].table), (yyvsp[-1].lex_str_ptr), 0, 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 43903 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1831: /* table_primary_derived: subquery opt_for_system_time_clause table_alias_clause */ #line 12000 "/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 43912 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1832: /* opt_outer: %empty */ #line 12017 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 43918 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1833: /* opt_outer: OUTER */ #line 12018 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 43924 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1834: /* index_hint_clause: %empty */ #line 12023 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (thd->variables.old_behavior & OLD_MODE_IGNORE_INDEX_ONLY_FOR_JOIN) ? INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; } #line 43933 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1835: /* index_hint_clause: FOR_SYM JOIN_SYM */ #line 12027 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= INDEX_HINT_MASK_JOIN; } #line 43939 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1836: /* index_hint_clause: FOR_SYM ORDER_SYM BY */ #line 12028 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= INDEX_HINT_MASK_ORDER; } #line 43945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1837: /* index_hint_clause: FOR_SYM GROUP_SYM BY */ #line 12029 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= INDEX_HINT_MASK_GROUP; } #line 43951 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1838: /* index_hint_type: FORCE_SYM */ #line 12033 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.index_hint)= INDEX_HINT_FORCE; } #line 43957 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1839: /* index_hint_type: IGNORE_SYM */ #line 12034 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.index_hint)= INDEX_HINT_IGNORE; } #line 43963 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1840: /* $@161: %empty */ #line 12039 "/home/buildbot/git/sql/sql_yacc.yy" { Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num)); } #line 43971 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1842: /* $@162: %empty */ #line 12044 "/home/buildbot/git/sql/sql_yacc.yy" { Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num)); } #line 43979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1847: /* $@163: %empty */ #line 12057 "/home/buildbot/git/sql/sql_yacc.yy" { Select->alloc_index_hints(thd); } #line 43985 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1849: /* $@164: %empty */ #line 12061 "/home/buildbot/git/sql/sql_yacc.yy" { Select->clear_index_hints(); } #line 43991 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1851: /* opt_key_usage_list: %empty */ #line 12066 "/home/buildbot/git/sql/sql_yacc.yy" { Select->add_index_hint(thd, NULL, 0); } #line 43997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1852: /* opt_key_usage_list: key_usage_list */ #line 12067 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1853: /* key_usage_element: ident */ #line 12072 "/home/buildbot/git/sql/sql_yacc.yy" { Select->add_index_hint(thd, (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length); } #line 44009 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1854: /* key_usage_element: PRIMARY_SYM */ #line 12074 "/home/buildbot/git/sql/sql_yacc.yy" { Select->add_index_hint(thd, "PRIMARY", 7); } #line 44015 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1857: /* using_list: ident */ #line 12084 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.string_list)= new (thd->mem_root) List))) 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 44030 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1858: /* using_list: using_list ',' ident */ #line 12095 "/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 44045 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1859: /* interval: interval_time_stamp */ #line 12108 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1860: /* interval: DAY_HOUR_SYM */ #line 12109 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_HOUR; } #line 44057 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1861: /* interval: DAY_MICROSECOND_SYM */ #line 12110 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_MICROSECOND; } #line 44063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1862: /* interval: DAY_MINUTE_SYM */ #line 12111 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_MINUTE; } #line 44069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1863: /* interval: DAY_SECOND_SYM */ #line 12112 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_SECOND; } #line 44075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1864: /* interval: HOUR_MICROSECOND_SYM */ #line 12113 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; } #line 44081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1865: /* interval: HOUR_MINUTE_SYM */ #line 12114 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_HOUR_MINUTE; } #line 44087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1866: /* interval: HOUR_SECOND_SYM */ #line 12115 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_HOUR_SECOND; } #line 44093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1867: /* interval: MINUTE_MICROSECOND_SYM */ #line 12116 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; } #line 44099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1868: /* interval: MINUTE_SECOND_SYM */ #line 12117 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_MINUTE_SECOND; } #line 44105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1869: /* interval: SECOND_MICROSECOND_SYM */ #line 12118 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; } #line 44111 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1870: /* interval: YEAR_MONTH_SYM */ #line 12119 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval)=INTERVAL_YEAR_MONTH; } #line 44117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1871: /* interval_time_stamp: DAY_SYM */ #line 12123 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_DAY; } #line 44123 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1872: /* interval_time_stamp: WEEK_SYM */ #line 12124 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_WEEK; } #line 44129 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1873: /* interval_time_stamp: HOUR_SYM */ #line 12125 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_HOUR; } #line 44135 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1874: /* interval_time_stamp: MINUTE_SYM */ #line 12126 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_MINUTE; } #line 44141 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1875: /* interval_time_stamp: MONTH_SYM */ #line 12127 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_MONTH; } #line 44147 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1876: /* interval_time_stamp: QUARTER_SYM */ #line 12128 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_QUARTER; } #line 44153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1877: /* interval_time_stamp: SECOND_SYM */ #line 12129 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_SECOND; } #line 44159 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1878: /* interval_time_stamp: MICROSECOND_SYM */ #line 12130 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_MICROSECOND; } #line 44165 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1879: /* interval_time_stamp: YEAR_SYM */ #line 12131 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_YEAR; } #line 44171 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1880: /* date_time_type: DATE_SYM */ #line 12135 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;} #line 44177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1881: /* date_time_type: TIME_SYM */ #line 12136 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;} #line 44183 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1882: /* date_time_type: DATETIME */ #line 12137 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} #line 44189 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1883: /* date_time_type: TIMESTAMP */ #line 12138 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} #line 44195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1887: /* opt_table_alias_clause: %empty */ #line 12148 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str_ptr)=0; } #line 44201 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1888: /* opt_table_alias_clause: table_alias_clause */ #line 12149 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str_ptr)= (yyvsp[0].lex_str_ptr); } #line 44207 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1889: /* table_alias_clause: table_alias ident_table_alias */ #line 12154 "/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 44217 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1892: /* opt_where_clause: %empty */ #line 12167 "/home/buildbot/git/sql/sql_yacc.yy" { Select->where= 0; } #line 44223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1893: /* $@165: %empty */ #line 12169 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= IN_WHERE; } #line 44231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1894: /* opt_where_clause: WHERE $@165 expr */ #line 12173 "/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 44243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1896: /* $@166: %empty */ #line 12185 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= IN_HAVING; } #line 44251 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1897: /* opt_having_clause: HAVING $@166 expr */ #line 12189 "/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 44263 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1900: /* group_list: group_list ',' order_ident order_dir */ #line 12209 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } #line 44272 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1901: /* group_list: order_ident order_dir */ #line 12214 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } #line 44281 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1902: /* olap_opt: %empty */ #line 12221 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44287 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1903: /* olap_opt: WITH_CUBE_SYM */ #line 12223 "/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 44308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1904: /* olap_opt: WITH_ROLLUP_SYM */ #line 12240 "/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 44327 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1905: /* opt_window_clause: %empty */ #line 12262 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44333 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1906: /* opt_window_clause: WINDOW_SYM window_def_list */ #line 12265 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44339 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1909: /* window_def: window_name AS window_spec */ #line 12275 "/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 44352 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1910: /* $@167: %empty */ #line 12287 "/home/buildbot/git/sql/sql_yacc.yy" { Select->prepare_add_window_spec(thd); } #line 44358 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1911: /* window_spec: '(' $@167 opt_window_ref opt_window_partition_clause opt_window_order_clause opt_window_frame_clause ')' */ #line 12291 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 44364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1912: /* opt_window_ref: %empty */ #line 12295 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44370 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1913: /* opt_window_ref: ident */ #line 12297 "/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 44380 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1914: /* opt_window_partition_clause: %empty */ #line 12305 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 44386 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1916: /* opt_window_order_clause: %empty */ #line 12310 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 44392 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1917: /* opt_window_order_clause: ORDER_SYM BY order_list */ #line 12311 "/home/buildbot/git/sql/sql_yacc.yy" { Select->order_list= *((yyvsp[0].select_order)); } #line 44398 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1918: /* opt_window_frame_clause: %empty */ #line 12315 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 44404 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1919: /* opt_window_frame_clause: window_frame_units window_frame_extent opt_window_frame_exclusion */ #line 12317 "/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 44419 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1920: /* window_frame_units: ROWS_SYM */ #line 12330 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_units)= Window_frame::UNITS_ROWS; } #line 44425 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1921: /* window_frame_units: RANGE_SYM */ #line 12331 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_units)= Window_frame::UNITS_RANGE; } #line 44431 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1922: /* window_frame_extent: window_frame_start */ #line 12336 "/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 44445 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1923: /* window_frame_extent: BETWEEN_SYM window_frame_bound AND_SYM window_frame_bound */ #line 12346 "/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 44455 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1924: /* window_frame_start: UNBOUNDED_SYM PRECEDING_SYM */ #line 12355 "/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 44466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1925: /* window_frame_start: CURRENT_SYM ROW_SYM */ #line 12362 "/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 44477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1926: /* window_frame_start: literal PRECEDING_SYM */ #line 12369 "/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 44488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1927: /* window_frame_bound: window_frame_start */ #line 12378 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.window_frame_bound)= (yyvsp[0].window_frame_bound); } #line 44494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1928: /* window_frame_bound: UNBOUNDED_SYM FOLLOWING_SYM */ #line 12380 "/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 44505 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1929: /* window_frame_bound: literal FOLLOWING_SYM */ #line 12387 "/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 44516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1930: /* opt_window_frame_exclusion: %empty */ #line 12396 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } #line 44522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1931: /* opt_window_frame_exclusion: EXCLUDE_SYM CURRENT_SYM ROW_SYM */ #line 12398 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_exclusion)= Window_frame::EXCL_CURRENT_ROW; } #line 44528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1932: /* opt_window_frame_exclusion: EXCLUDE_SYM GROUP_SYM */ #line 12400 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_exclusion)= Window_frame::EXCL_GROUP; } #line 44534 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1933: /* opt_window_frame_exclusion: EXCLUDE_SYM TIES_SYM */ #line 12402 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_exclusion)= Window_frame::EXCL_TIES; } #line 44540 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1934: /* opt_window_frame_exclusion: EXCLUDE_SYM NO_SYM OTHERS_MARIADB_SYM */ #line 12404 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } #line 44546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1935: /* opt_window_frame_exclusion: EXCLUDE_SYM NO_SYM OTHERS_ORACLE_SYM */ #line 12406 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } #line 44552 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1939: /* alter_order_item: simple_ident_nospvar order_dir */ #line 12424 "/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 44562 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1940: /* opt_order_clause: %empty */ #line 12437 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_order)= NULL; } #line 44568 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1941: /* opt_order_clause: order_clause */ #line 12439 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_order)= (yyvsp[0].select_order); } #line 44574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1942: /* $@168: %empty */ #line 12444 "/home/buildbot/git/sql/sql_yacc.yy" { thd->where= "ORDER clause"; } #line 44582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1943: /* order_clause: ORDER_SYM BY $@168 order_list */ #line 12448 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_order)= (yyvsp[0].select_order); } #line 44590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1944: /* order_list: order_list ',' order_ident order_dir */ #line 12455 "/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 44600 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1945: /* order_list: order_ident order_dir */ #line 12461 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_order)= new (thd->mem_root) SQL_I_List(); if (add_to_list(thd, *(yyval.select_order), (yyvsp[-1].item), (bool) (yyvsp[0].num))) MYSQL_YYABORT; } #line 44610 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1946: /* order_dir: %empty */ #line 12469 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 44616 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1947: /* order_dir: ASC */ #line 12470 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 44622 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1948: /* order_dir: DESC */ #line 12471 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 44628 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1949: /* opt_limit_clause: %empty */ #line 12477 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit).clear(); } #line 44634 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1950: /* opt_limit_clause: limit_clause */ #line 12479 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit)= (yyvsp[0].select_limit); } #line 44640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1951: /* limit_clause: LIMIT limit_options */ #line 12484 "/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 44651 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1952: /* limit_clause: LIMIT limit_options ROWS_SYM EXAMINED_SYM limit_rows_option */ #line 12492 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit)= (yyvsp[-3].select_limit); Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } #line 44660 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1953: /* limit_clause: LIMIT ROWS_SYM EXAMINED_SYM limit_rows_option */ #line 12497 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit).clear(); Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } #line 44669 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1954: /* limit_clause: fetch_first_clause */ #line 12502 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit)= (yyvsp[0].select_limit); if (!(yyval.select_limit).select_limit || !(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 44681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1955: /* fetch_first_clause: FETCH_SYM first_or_next row_or_rows only_or_with_ties */ #line 12513 "/home/buildbot/git/sql/sql_yacc.yy" { Item *one= new (thd->mem_root) Item_int(thd, (int32) 1); if (unlikely(one == NULL)) MYSQL_YYABORT; (yyval.select_limit).select_limit= one; (yyval.select_limit).offset_limit= 0; (yyval.select_limit).explicit_limit= true; (yyval.select_limit).with_ties= (yyvsp[0].num); } #line 44695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1956: /* fetch_first_clause: OFFSET_SYM limit_option row_or_rows FETCH_SYM first_or_next row_or_rows only_or_with_ties */ #line 12524 "/home/buildbot/git/sql/sql_yacc.yy" { Item *one= new (thd->mem_root) Item_int(thd, (int32) 1); if (unlikely(one == NULL)) MYSQL_YYABORT; (yyval.select_limit).select_limit= one; (yyval.select_limit).offset_limit= (yyvsp[-5].item); (yyval.select_limit).explicit_limit= true; (yyval.select_limit).with_ties= (yyvsp[0].num); } #line 44709 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1957: /* fetch_first_clause: FETCH_SYM first_or_next limit_option row_or_rows only_or_with_ties */ #line 12534 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit).select_limit= (yyvsp[-2].item); (yyval.select_limit).offset_limit= 0; (yyval.select_limit).explicit_limit= true; (yyval.select_limit).with_ties= (yyvsp[0].num); } #line 44720 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1958: /* fetch_first_clause: OFFSET_SYM limit_option row_or_rows FETCH_SYM first_or_next limit_option row_or_rows only_or_with_ties */ #line 12542 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit).select_limit= (yyvsp[-2].item); (yyval.select_limit).offset_limit= (yyvsp[-6].item); (yyval.select_limit).explicit_limit= true; (yyval.select_limit).with_ties= (yyvsp[0].num); } #line 44731 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1959: /* fetch_first_clause: OFFSET_SYM limit_option row_or_rows */ #line 12549 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit).select_limit= 0; (yyval.select_limit).offset_limit= (yyvsp[-1].item); (yyval.select_limit).explicit_limit= true; (yyval.select_limit).with_ties= false; } #line 44742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1964: /* only_or_with_ties: ONLY_SYM */ #line 12568 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 44748 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1965: /* only_or_with_ties: WITH TIES_SYM */ #line 12569 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 44754 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1966: /* opt_global_limit_clause: opt_limit_clause */ #line 12575 "/home/buildbot/git/sql/sql_yacc.yy" { Select->limit_params= (yyvsp[0].select_limit); } #line 44762 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1967: /* limit_options: limit_option */ #line 12582 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_limit).select_limit= (yyvsp[0].item); (yyval.select_limit).offset_limit= NULL; (yyval.select_limit).explicit_limit= true; (yyval.select_limit).with_ties= false; } #line 44773 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1968: /* limit_options: limit_option ',' limit_option */ #line 12589 "/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= true; (yyval.select_limit).with_ties= false; } #line 44784 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1969: /* limit_options: limit_option OFFSET_SYM limit_option */ #line 12596 "/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= true; (yyval.select_limit).with_ties= false; } #line 44795 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1970: /* limit_option: ident_cli */ #line 12606 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } #line 44804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1971: /* limit_option: ident_cli '.' ident_cli */ #line 12611 "/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 44813 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1972: /* limit_option: param_marker */ #line 12616 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].item_param)->limit_clause_param= TRUE; } #line 44821 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1973: /* limit_option: ULONGLONG_NUM */ #line 12620 "/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 44831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1974: /* limit_option: LONG_NUM */ #line 12626 "/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 44841 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1975: /* limit_option: NUM */ #line 12632 "/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 44851 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1976: /* limit_rows_option: limit_option */ #line 12641 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->limit_rows_examined= (yyvsp[0].item); } #line 44859 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1977: /* delete_limit_clause: %empty */ #line 12648 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->current_select->limit_params.select_limit= 0; } #line 44868 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1978: /* delete_limit_clause: LIMIT limit_option */ #line 12653 "/home/buildbot/git/sql/sql_yacc.yy" { SELECT_LEX *sel= Select; sel->limit_params.select_limit= (yyvsp[0].item); Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); sel->limit_params.explicit_limit= 1; } #line 44879 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1979: /* delete_limit_clause: LIMIT ROWS_SYM EXAMINED_SYM */ #line 12659 "/home/buildbot/git/sql/sql_yacc.yy" { thd->parse_error(); MYSQL_YYABORT; } #line 44885 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1980: /* delete_limit_clause: LIMIT limit_option ROWS_SYM EXAMINED_SYM */ #line 12660 "/home/buildbot/git/sql/sql_yacc.yy" { thd->parse_error(); MYSQL_YYABORT; } #line 44891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1981: /* order_limit_lock: order_or_limit */ #line 12665 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.order_limit_lock)= (yyvsp[0].order_limit_lock); (yyval.order_limit_lock)->lock.empty(); } #line 44900 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1982: /* order_limit_lock: order_or_limit select_lock_type */ #line 12670 "/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 44909 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1983: /* order_limit_lock: select_lock_type */ #line 12675 "/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.clear(); (yyval.order_limit_lock)->lock= (yyvsp[0].select_lock); } #line 44922 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1984: /* opt_order_limit_lock: %empty */ #line 12687 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); (yyval.order_limit_lock)= NULL; } #line 44931 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1985: /* opt_order_limit_lock: order_limit_lock */ #line 12691 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.order_limit_lock)= (yyvsp[0].order_limit_lock); } #line 44937 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1988: /* opt_procedure_or_into: %empty */ #line 12704 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock).empty(); } #line 44945 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1989: /* opt_procedure_or_into: procedure_clause opt_select_lock_type */ #line 12708 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock)= (yyvsp[0].select_lock); } #line 44953 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1990: /* opt_procedure_or_into: into opt_select_lock_type */ #line 12712 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.select_lock)= (yyvsp[0].select_lock); status_var_increment(thd->status_var.feature_into_outfile); } #line 44962 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1991: /* order_or_limit: order_clause opt_limit_clause */ #line 12721 "/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 44974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1992: /* order_or_limit: limit_clause */ #line 12729 "/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= (yyvsp[0].select_limit); } #line 44986 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1995: /* int_num: opt_plus NUM */ #line 12745 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.num)= (int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 44992 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1996: /* int_num: '-' NUM */ #line 12746 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 44998 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1997: /* ulong_num: opt_plus NUM */ #line 12750 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45004 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1998: /* ulong_num: HEX_NUM */ #line 12751 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= strtoul((yyvsp[0].lex_str).str, (char**) 0, 16); } #line 45010 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 1999: /* ulong_num: opt_plus LONG_NUM */ #line 12752 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45016 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2000: /* ulong_num: opt_plus ULONGLONG_NUM */ #line 12753 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45022 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2001: /* ulong_num: opt_plus DECIMAL_NUM */ #line 12754 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45028 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2002: /* ulong_num: opt_plus FLOAT_NUM */ #line 12755 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45034 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2003: /* real_ulong_num: NUM */ #line 12759 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45040 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2004: /* real_ulong_num: HEX_NUM */ #line 12760 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } #line 45046 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2005: /* real_ulong_num: LONG_NUM */ #line 12761 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45052 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2006: /* real_ulong_num: ULONGLONG_NUM */ #line 12762 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45058 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2007: /* real_ulong_num: dec_num_error */ #line 12763 "/home/buildbot/git/sql/sql_yacc.yy" { MYSQL_YYABORT; } #line 45064 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2008: /* longlong_num: opt_plus NUM */ #line 12767 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45070 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2009: /* longlong_num: LONG_NUM */ #line 12768 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45076 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2010: /* longlong_num: '-' NUM */ #line 12769 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45082 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2011: /* longlong_num: '-' LONG_NUM */ #line 12770 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45088 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2012: /* ulonglong_num: opt_plus NUM */ #line 12774 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45094 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2013: /* ulonglong_num: opt_plus ULONGLONG_NUM */ #line 12775 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45100 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2014: /* ulonglong_num: opt_plus LONG_NUM */ #line 12776 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45106 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2015: /* ulonglong_num: opt_plus DECIMAL_NUM */ #line 12777 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45112 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2016: /* ulonglong_num: opt_plus FLOAT_NUM */ #line 12778 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45118 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2017: /* real_ulonglong_num: NUM */ #line 12782 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45124 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2018: /* real_ulonglong_num: ULONGLONG_NUM */ #line 12783 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45130 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2019: /* real_ulonglong_num: HEX_NUM */ #line 12784 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } #line 45136 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2020: /* real_ulonglong_num: LONG_NUM */ #line 12785 "/home/buildbot/git/sql/sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } #line 45142 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2021: /* real_ulonglong_num: dec_num_error */ #line 12786 "/home/buildbot/git/sql/sql_yacc.yy" { MYSQL_YYABORT; } #line 45148 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2022: /* dec_num_error: dec_num */ #line 12791 "/home/buildbot/git/sql/sql_yacc.yy" { thd->parse_error(ER_ONLY_INTEGERS_ALLOWED); } #line 45154 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2025: /* choice: ulong_num */ #line 12800 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.choice)= (yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; } #line 45160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2026: /* choice: DEFAULT */ #line 12801 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.choice)= HA_CHOICE_UNDEF; } #line 45166 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2027: /* bool: ulong_num */ #line 12805 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= (yyvsp[0].ulong_num) != 0; } #line 45172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2028: /* bool: TRUE_SYM */ #line 12806 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 1; } #line 45178 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2029: /* bool: FALSE_SYM */ #line 12807 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ulong_num)= 0; } #line 45184 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2030: /* $@169: %empty */ #line 12812 "/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 45212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2031: /* procedure_clause: PROCEDURE_SYM ident $@169 '(' procedure_list ')' */ #line 12836 "/home/buildbot/git/sql/sql_yacc.yy" { /* Subqueries are allowed from now.*/ Lex->clause_that_disallows_subselect= NULL; } #line 45221 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2032: /* procedure_list: %empty */ #line 12843 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45227 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2033: /* procedure_list: procedure_list2 */ #line 12844 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45233 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2036: /* procedure_item: remember_name expr remember_end */ #line 12854 "/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 45244 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2037: /* $@170: %empty */ #line 12863 "/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 45256 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2038: /* select_var_list_init: $@170 select_var_list */ #line 12871 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45262 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2040: /* select_var_list: select_var_ident */ #line 12876 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2041: /* select_var_ident: select_outvar */ #line 12880 "/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 45289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2042: /* select_outvar: '@' ident_or_text */ #line 12900 "/home/buildbot/git/sql/sql_yacc.yy" { if (!(yyvsp[0].lex_str).length) { thd->parse_error(); MYSQL_YYABORT; } (yyval.myvar) = Lex->result ? new (thd->mem_root) my_var_user(&(yyvsp[0].lex_str)) : NULL; } #line 45303 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2043: /* select_outvar: ident_or_text */ #line 12910 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[0].lex_str))) && Lex->result)) MYSQL_YYABORT; } #line 45312 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2044: /* select_outvar: ident '.' ident */ #line 12915 "/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 45321 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2045: /* into: INTO into_destination */ #line 12923 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45327 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2046: /* $@171: %empty */ #line 12928 "/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; status_var_increment(thd->status_var.feature_into_outfile); } #line 45343 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2047: /* $@172: %empty */ #line 12940 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->exchange->cs= (yyvsp[0].charset); } #line 45349 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2049: /* into_destination: DUMPFILE TEXT_STRING_filesystem */ #line 12943 "/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 45368 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2050: /* into_destination: select_var_list_init */ #line 12958 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); status_var_increment(thd->status_var.feature_into_variable); } #line 45377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2051: /* $@173: %empty */ #line 12970 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_DO; if (lex->main_select_push(true)) MYSQL_YYABORT; lex->init_select(); } #line 45389 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2052: /* do: DO_SYM $@173 expr_list */ #line 12978 "/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 45400 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2053: /* $@174: %empty */ #line 12992 "/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 45411 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2054: /* drop: DROP opt_temporary table_or_tables opt_if_exists $@174 table_list opt_lock_wait_timeout opt_restrict */ #line 12999 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45417 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2055: /* $@175: %empty */ #line 13001 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; } #line 45426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2056: /* drop: DROP INDEX_SYM $@175 opt_if_exists_table_element ident ON table_ident opt_lock_wait_timeout */ #line 13006 "/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 45448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2057: /* drop: DROP DATABASE opt_if_exists ident */ #line 13024 "/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 45458 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2058: /* drop: DROP USER_SYM opt_if_exists clear_privileges user_list */ #line 13030 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->set_command(SQLCOM_DROP_USER, (yyvsp[-2].object_ddl_options)); } #line 45466 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2059: /* drop: DROP ROLE_SYM opt_if_exists clear_privileges role_list */ #line 13034 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->set_command(SQLCOM_DROP_ROLE, (yyvsp[-2].object_ddl_options)); } #line 45474 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2060: /* $@176: %empty */ #line 13038 "/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 45485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2061: /* drop: DROP VIEW_SYM opt_if_exists $@176 table_list opt_restrict */ #line 13045 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45491 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2062: /* drop: DROP EVENT_SYM opt_if_exists sp_name */ #line 13047 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->spname= (yyvsp[0].spname); Lex->set_command(SQLCOM_DROP_EVENT, (yyvsp[-1].object_ddl_options)); } #line 45500 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2063: /* drop: DROP TRIGGER_SYM opt_if_exists sp_name */ #line 13052 "/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 45510 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2064: /* drop: DROP SERVER_SYM opt_if_exists ident_or_text */ #line 13058 "/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 45519 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2065: /* $@177: %empty */ #line 13064 "/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 45531 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2066: /* drop: DROP opt_temporary SEQUENCE_SYM opt_if_exists $@177 table_list */ #line 13072 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45537 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2070: /* table_name: table_ident */ #line 13083 "/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 45550 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2071: /* table_name_with_opt_use_partition: table_ident opt_use_partition */ #line 13095 "/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 45564 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2074: /* table_alias_ref: table_ident_opt_wild */ #line 13113 "/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 45578 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2075: /* opt_if_exists_table_element: %empty */ #line 13126 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_exists= FALSE; (yyval.num)= 0; } #line 45587 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2076: /* opt_if_exists_table_element: IF_SYM EXISTS */ #line 13131 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->check_exists= TRUE; (yyval.num)= 1; } #line 45596 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2077: /* opt_if_exists: %empty */ #line 13139 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.object_ddl_options).set(DDL_options_st::OPT_NONE); } #line 45604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2078: /* opt_if_exists: IF_SYM EXISTS */ #line 13143 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_EXISTS); } #line 45612 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2079: /* opt_temporary: %empty */ #line 13149 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 45618 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2080: /* opt_temporary: TEMPORARY */ #line 13150 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= HA_LEX_CREATE_TMP_TABLE; } #line 45624 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2081: /* $@178: %empty */ #line 13158 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_INSERT; Lex->duplicates= DUP_ERROR; thd->get_stmt_da()->opt_clear_warning_info(thd->query_id); thd->get_stmt_da()->reset_current_row_for_warning(1); } #line 45635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2082: /* $@179: %empty */ #line 13165 "/home/buildbot/git/sql/sql_yacc.yy" { Select->set_lock_for_tables((yyvsp[-3].lock_type), true, false); } #line 45643 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2083: /* insert: INSERT $@178 insert_start insert_lock_option opt_ignore opt_into insert_table $@179 insert_field_spec opt_insert_update opt_returning stmt_end */ #line 13170 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mark_first_table_as_inserting(); thd->get_stmt_da()->reset_current_row_for_warning(0); } #line 45652 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2084: /* $@180: %empty */ #line 13178 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_REPLACE; Lex->duplicates= DUP_REPLACE; thd->get_stmt_da()->opt_clear_warning_info(thd->query_id); thd->get_stmt_da()->reset_current_row_for_warning(1); } #line 45663 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2085: /* $@181: %empty */ #line 13185 "/home/buildbot/git/sql/sql_yacc.yy" { Select->set_lock_for_tables((yyvsp[-2].lock_type), true, false); } #line 45671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2086: /* replace: REPLACE $@180 insert_start replace_lock_option opt_into insert_table $@181 insert_field_spec opt_returning stmt_end */ #line 13190 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mark_first_table_as_inserting(); thd->get_stmt_da()->reset_current_row_for_warning(0); } #line 45680 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2087: /* insert_start: %empty */ #line 13196 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; Lex->init_select(); Lex->inc_select_stack_outer_barrier(); Lex->current_select->parsing_place= BEFORE_OPT_LIST; } #line 45692 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2088: /* stmt_end: %empty */ #line 13205 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select if (Lex->check_main_unit_semantics()) MYSQL_YYABORT; } #line 45702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2089: /* insert_lock_option: %empty */ #line 13214 "/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 45715 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2091: /* insert_lock_option: HIGH_PRIORITY */ #line 13223 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE; } #line 45721 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2092: /* replace_lock_option: %empty */ #line 13227 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DEFAULT; } #line 45727 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2094: /* insert_replace_option: LOW_PRIORITY */ #line 13232 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } #line 45733 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2095: /* insert_replace_option: DELAYED_SYM */ #line 13234 "/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 45743 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2098: /* $@182: %empty */ #line 13244 "/home/buildbot/git/sql/sql_yacc.yy" { Select->save_parsing_place= Select->parsing_place; } #line 45751 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2099: /* insert_table: $@182 table_name_with_opt_use_partition */ #line 13248 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; //lex->field_list.empty(); lex->many_values.empty(); lex->insert_list=0; } #line 45762 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2100: /* insert_field_spec: insert_values */ #line 13257 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45768 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2101: /* insert_field_spec: insert_field_list insert_values */ #line 13258 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2102: /* $@183: %empty */ #line 13260 "/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 45787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2104: /* insert_field_list: LEFT_PAREN_ALT opt_fields ')' */ #line 13273 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->current_select->parsing_place= AFTER_LIST; } #line 45795 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2107: /* fields: fields ',' insert_ident */ #line 13285 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } #line 45801 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2108: /* fields: insert_ident */ #line 13286 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } #line 45807 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2109: /* insert_values: create_select_query_expression */ #line 13292 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45813 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2114: /* ident_eq_value: simple_ident_nospvar equal expr_or_ignore_or_default */ #line 13307 "/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 45824 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2115: /* equal: '=' */ #line 13316 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45830 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2116: /* equal: SET_VAR */ #line 13317 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45836 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2117: /* opt_equal: %empty */ #line 13321 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45842 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2118: /* opt_equal: equal */ #line 13322 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45848 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2119: /* opt_with: opt_equal */ #line 13326 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45854 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2120: /* opt_with: WITH */ #line 13327 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45860 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2121: /* opt_by: opt_equal */ #line 13331 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45866 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2122: /* opt_by: BY */ #line 13332 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45872 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2123: /* $@184: %empty */ #line 13337 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } #line 45881 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2124: /* no_braces: '(' $@184 opt_values ')' */ #line 13342 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; thd->get_stmt_da()->inc_current_row_for_warning(); if (unlikely(lex->many_values.push_back(lex->insert_list, thd->mem_root))) MYSQL_YYABORT; } #line 45893 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2125: /* $@185: %empty */ #line 13353 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } #line 45902 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2126: /* no_braces_with_names: '(' $@185 opt_values_with_names ')' */ #line 13358 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; thd->get_stmt_da()->inc_current_row_for_warning(); if (unlikely(lex->many_values.push_back(lex->insert_list, thd->mem_root))) MYSQL_YYABORT; } #line 45914 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2127: /* opt_values: %empty */ #line 13368 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45920 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2129: /* opt_values_with_names: %empty */ #line 13373 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 45926 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2131: /* values: values ',' expr_or_ignore_or_default */ #line 13379 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } #line 45935 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2132: /* values: expr_or_ignore_or_default */ #line 13384 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } #line 45944 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2133: /* values_with_names: values_with_names ',' remember_name expr_or_ignore_or_default remember_end */ #line 13392 "/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 45956 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2134: /* values_with_names: remember_name expr_or_ignore_or_default remember_end */ #line 13400 "/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 45968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2135: /* expr_or_ignore: expr */ #line 13410 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item);} #line 45974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2136: /* expr_or_ignore: IGNORE_SYM */ #line 13412 "/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 45984 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2137: /* expr_or_ignore_or_default: expr_or_ignore */ #line 13420 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item);} #line 45990 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2138: /* expr_or_ignore_or_default: DEFAULT */ #line 13422 "/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 46000 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2140: /* $@186: %empty */ #line 13431 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->duplicates= DUP_UPDATE; } #line 46006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2141: /* $@187: %empty */ #line 13433 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= IN_UPDATE_ON_DUP_KEY; } #line 46014 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2142: /* opt_insert_update: ON DUPLICATE_SYM $@186 KEY_SYM UPDATE_SYM $@187 insert_update_list */ #line 13437 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= NO_MATTER; } #line 46022 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2143: /* update_table_list: table_ident opt_use_partition for_portion_of_time_clause opt_table_alias_clause opt_key_definition */ #line 13445 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-4].table), (yyvsp[-1].lex_str_ptr), 0, 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 46037 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2144: /* update_table_list: join_table_list */ #line 13455 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.table_list)= (yyvsp[0].table_list); } #line 46043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2145: /* $@188: %empty */ #line 13462 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; if (Lex->main_select_push()) MYSQL_YYABORT; lex->init_select(); lex->sql_command= SQLCOM_UPDATE; lex->duplicates= DUP_ERROR; } #line 46056 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2146: /* $@189: %empty */ #line 13472 "/home/buildbot/git/sql/sql_yacc.yy" { bool is_multiupdate= false; LEX *lex= Lex; SELECT_LEX *slex= Lex->first_select_lex(); if (slex->table_list.elements > 1) { Lex->sql_command= SQLCOM_UPDATE_MULTI; is_multiupdate= true; } 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; } if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_update(is_multiupdate))) MYSQL_YYABORT; /* In case of multi-update setting write lock for all tables may be too pessimistic. We will decrease lock level if possible later while processing the statement. */ slex->set_lock_for_tables((yyvsp[-4].lock_type), slex->table_list.elements == 1, false); } #line 46087 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2147: /* $@190: %empty */ #line 13499 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyvsp[-1].select_order)) Select->order_list= *((yyvsp[-1].select_order)); } #line 46096 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2148: /* update: UPDATE_SYM $@188 opt_low_priority opt_ignore update_table_list SET update_list $@189 opt_where_clause opt_order_clause delete_limit_clause $@190 stmt_end */ #line 13502 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46102 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2151: /* update_elem: simple_ident_nospvar equal DEFAULT */ #line 13512 "/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 46113 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2152: /* update_elem: simple_ident_nospvar equal expr_or_ignore */ #line 13519 "/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 46122 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2155: /* insert_update_elem: simple_ident_nospvar equal expr_or_ignore_or_default */ #line 13532 "/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 46133 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2156: /* opt_low_priority: %empty */ #line 13541 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DEFAULT; } #line 46139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2157: /* opt_low_priority: LOW_PRIORITY */ #line 13542 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } #line 46145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2158: /* $@191: %empty */ #line 13549 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; YYPS->m_lock_type= TL_WRITE_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_WRITE; if (Lex->main_select_push()) MYSQL_YYABORT; mysql_init_delete(lex); lex->ignore= 0; lex->first_select_lex()->order_list.empty(); } #line 46160 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2159: /* delete: DELETE_SYM $@191 delete_part2 */ #line 13560 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->check_cte_dependencies_and_resolve_references()) MYSQL_YYABORT; } #line 46169 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2160: /* opt_delete_system_time: %empty */ #line 13568 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->vers_conditions.init(SYSTEM_TIME_HISTORY); } #line 46177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2161: /* opt_delete_system_time: BEFORE_SYM SYSTEM_TIME_SYM history_point */ #line 13572 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->vers_conditions.init(SYSTEM_TIME_BEFORE, (yyvsp[0].vers_history_point)); } #line 46185 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2162: /* delete_part2: opt_delete_options single_multi */ #line 13578 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46191 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2163: /* $@192: %empty */ #line 13580 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->last_table()->vers_conditions= lex->vers_conditions; lex->sql_command= SQLCOM_DELETE; if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_delete(false))) MYSQL_YYABORT; if (lex->check_main_unit_semantics()) MYSQL_YYABORT; } #line 46206 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2164: /* delete_part2: HISTORY_SYM delete_single_table opt_delete_system_time $@192 stmt_end */ #line 13591 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2165: /* delete_single_table: FROM table_ident opt_use_partition */ #line 13596 "/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, 0))) MYSQL_YYABORT; Select->table_list.save_and_clear(&Lex->auxiliary_table_list); /* Save the number of auxiliary tables */ Lex->table_count_update= 1; Lex->query_tables= 0; Lex->query_tables_last= &Lex->query_tables; 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; Lex->auxiliary_table_list.first->correspondent_table= Lex->query_tables; YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } #line 46243 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2166: /* delete_single_table_for_period: delete_single_table opt_for_portion_of_time_clause */ #line 13626 "/home/buildbot/git/sql/sql_yacc.yy" { if ((yyvsp[0].num)) Lex->last_table()->period_conditions= Lex->period_conditions; } #line 46252 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2167: /* $@193: %empty */ #line 13638 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; if ((yyvsp[-2].select_order)) Select->order_list= *((yyvsp[-2].select_order)); lex->sql_command= SQLCOM_DELETE; if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_delete(false))) MYSQL_YYABORT; if (Lex->check_main_unit_semantics()) MYSQL_YYABORT; } #line 46268 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2168: /* single_multi: delete_single_table_for_period opt_where_clause opt_order_clause delete_limit_clause opt_returning $@193 stmt_end */ #line 13649 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46274 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2169: /* $@194: %empty */ #line 13651 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_DELETE_MULTI; if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_delete(true))) MYSQL_YYABORT; mysql_init_multi_delete(Lex); YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } #line 46289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2170: /* $@195: %empty */ #line 13662 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) MYSQL_YYABORT; } #line 46298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2171: /* single_multi: table_alias_ref_list $@194 FROM join_table_list opt_where_clause $@195 stmt_end */ #line 13665 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46304 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2172: /* $@196: %empty */ #line 13667 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_DELETE_MULTI; if (!(lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_delete(true))) MYSQL_YYABORT; mysql_init_multi_delete(Lex); YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } #line 46319 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2173: /* $@197: %empty */ #line 13678 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) MYSQL_YYABORT; } #line 46328 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2174: /* single_multi: FROM table_alias_ref_list $@196 USING join_table_list opt_where_clause $@197 stmt_end */ #line 13681 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46334 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2175: /* opt_returning: %empty */ #line 13686 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(!Lex->has_returning()); } #line 46342 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2176: /* $@198: %empty */ #line 13690 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(!Lex->has_returning()); /* When parsing_place is IN_RETURNING, we push select items to item_list of builtin_select instead of current_select. But set parsing_place of current_select to true. Because parsing_place for builtin_select will be IN_RETURNING, regardless there is SELECT in RETURNING. Example, if there is RETURNING (SELECT...), then when we parse SELECT inside RETURNING, builtin_select->parsing_place will still be true. So the select items of SELECT inside RETURNING will be added to item_list of builtin_select which is incorrect. We want to prevent this from happening. Since for every new select, a new SELECT_LEX object is created and pushed to select stack, current_select will point to SELECT inside RETURNING, and also has parsing_place not set to IN_RETURNING by default. So items are correctly added to item_list of SELECT inside RETURNING instead of builtin_select. */ thd->lex->current_select->parsing_place= IN_RETURNING; thd->lex->push_context(&thd->lex->returning()->context); } #line 46372 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2177: /* opt_returning: RETURNING_SYM $@198 select_item_list */ #line 13716 "/home/buildbot/git/sql/sql_yacc.yy" { thd->lex->pop_context(); thd->lex->current_select->parsing_place= NO_MATTER; } #line 46381 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2178: /* opt_wild: %empty */ #line 13723 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2179: /* opt_wild: '.' '*' */ #line 13724 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46393 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2180: /* opt_delete_options: %empty */ #line 13728 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46399 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2181: /* opt_delete_options: opt_delete_option opt_delete_options */ #line 13729 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 46405 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2182: /* opt_delete_option: QUICK */ #line 13733 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= OPTION_QUICK; } #line 46411 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2183: /* opt_delete_option: LOW_PRIORITY */ #line 13734 "/home/buildbot/git/sql/sql_yacc.yy" { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } #line 46417 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2184: /* opt_delete_option: IGNORE_SYM */ #line 13735 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ignore= 1; } #line 46423 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2185: /* $@199: %empty */ #line 13740 "/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 46438 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2186: /* $@200: %empty */ #line 13751 "/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 46450 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2187: /* truncate: TRUNCATE_SYM $@199 opt_table_sym table_name opt_lock_wait_timeout $@200 opt_truncate_table_storage_clause */ #line 13758 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 46456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2194: /* profile_def: CPU_SYM */ #line 13776 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_CPU; } #line 46464 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2195: /* profile_def: MEMORY_SYM */ #line 13780 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_MEMORY; } #line 46472 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2196: /* profile_def: BLOCK_SYM IO_SYM */ #line 13784 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_BLOCK_IO; } #line 46480 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2197: /* profile_def: CONTEXT_SYM SWITCHES_SYM */ #line 13788 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_CONTEXT; } #line 46488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2198: /* profile_def: PAGE_SYM FAULTS_SYM */ #line 13792 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_PAGE_FAULTS; } #line 46496 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2199: /* profile_def: IPC_SYM */ #line 13796 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_IPC; } #line 46504 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2200: /* profile_def: SWAPS_SYM */ #line 13800 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_SWAPS; } #line 46512 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2201: /* profile_def: SOURCE_SYM */ #line 13804 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_SOURCE; } #line 46520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2202: /* profile_def: ALL */ #line 13808 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_options|= PROFILE_ALL; } #line 46528 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2203: /* opt_profile_args: %empty */ #line 13815 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_query_id= 0; } #line 46536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2204: /* opt_profile_args: FOR_SYM QUERY_SYM NUM */ #line 13819 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->profile_query_id= atoi((yyvsp[0].lex_str).str); } #line 46544 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2205: /* $@201: %empty */ #line 13828 "/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; lex->init_select(); lex->current_select->parsing_place= SELECT_LIST; lex->create_info.init(); } #line 46559 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2206: /* show: SHOW $@201 show_param */ #line 13839 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= NO_MATTER; Lex->pop_select(); //main select } #line 46568 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2207: /* show_param: DATABASES wild_and_where */ #line 13847 "/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 46579 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2208: /* show_param: opt_full TABLES opt_db wild_and_where */ #line 13854 "/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 46591 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2209: /* show_param: opt_full TRIGGERS_SYM opt_db wild_and_where */ #line 13862 "/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 46603 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2210: /* show_param: EVENTS_SYM opt_db wild_and_where */ #line 13870 "/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 46615 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2211: /* show_param: TABLE_SYM STATUS_SYM opt_db wild_and_where */ #line 13878 "/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 46627 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2212: /* show_param: OPEN_SYM TABLES opt_db wild_and_where */ #line 13886 "/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 46639 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2213: /* show_param: PLUGINS_SYM */ #line 13894 "/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 46650 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2214: /* show_param: PLUGINS_SYM SONAME_SYM TEXT_STRING_sys */ #line 13901 "/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 46661 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2215: /* show_param: PLUGINS_SYM SONAME_SYM wild_and_where */ #line 13908 "/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 46671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2216: /* show_param: ENGINE_SYM known_storage_engines show_engine_param */ #line 13914 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.db_type= (yyvsp[-1].db_type); } #line 46677 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2217: /* show_param: ENGINE_SYM ALL show_engine_param */ #line 13916 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->create_info.db_type= NULL; } #line 46683 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2218: /* show_param: opt_full COLUMNS from_or_in table_ident opt_db wild_and_where */ #line 13918 "/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 46696 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2219: /* show_param: master_or_binary LOGS_SYM */ #line 13927 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_BINLOGS; } #line 46704 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2220: /* show_param: SLAVE HOSTS_SYM */ #line 13931 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS; } #line 46712 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2221: /* $@202: %empty */ #line 13935 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; } #line 46721 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2223: /* $@203: %empty */ #line 13941 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS; } #line 46730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2224: /* show_param: RELAYLOG_SYM optional_connection_name EVENTS_SYM binlog_in binlog_from $@203 opt_global_limit_clause optional_for_channel */ #line 13946 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 46736 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2225: /* show_param: keys_or_index from_or_in table_ident opt_db opt_where_clause */ #line 13948 "/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 46749 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2226: /* show_param: opt_storage ENGINES_SYM */ #line 13957 "/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 46760 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2227: /* show_param: AUTHORS_SYM */ #line 13964 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_AUTHORS; } #line 46769 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2228: /* show_param: CONTRIBUTORS_SYM */ #line 13969 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; } #line 46778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2229: /* show_param: PRIVILEGES */ #line 13974 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_PRIVILEGES; } #line 46787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2230: /* show_param: COUNT_SYM '(' '*' ')' WARNINGS */ #line 13979 "/home/buildbot/git/sql/sql_yacc.yy" { LEX_CSTRING var= {STRING_WITH_LEN("warning_count")}; (void) create_select_for_variable(thd, &var); } #line 46796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2231: /* show_param: COUNT_SYM '(' '*' ')' ERRORS */ #line 13984 "/home/buildbot/git/sql/sql_yacc.yy" { LEX_CSTRING var= {STRING_WITH_LEN("error_count")}; (void) create_select_for_variable(thd, &var); } #line 46805 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2232: /* show_param: WARNINGS opt_global_limit_clause */ #line 13989 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_WARNS;} #line 46811 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2233: /* show_param: ERRORS opt_global_limit_clause */ #line 13991 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_ERRORS;} #line 46817 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2234: /* show_param: PROFILES_SYM */ #line 13993 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_PROFILES; } #line 46823 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2235: /* show_param: PROFILE_SYM opt_profile_defs opt_profile_args opt_global_limit_clause */ #line 13995 "/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 46834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2236: /* show_param: opt_var_type STATUS_SYM wild_and_where */ #line 14002 "/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 46846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2237: /* show_param: opt_full PROCESSLIST_SYM */ #line 14010 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} #line 46852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2238: /* show_param: opt_var_type VARIABLES wild_and_where */ #line 14012 "/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 46864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2239: /* show_param: charset wild_and_where */ #line 14020 "/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 46875 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2240: /* show_param: COLLATION_SYM wild_and_where */ #line 14027 "/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 46886 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2241: /* show_param: GRANTS */ #line 14034 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_GRANTS; if (unlikely(!(Lex->grant_user= (LEX_USER*)thd->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; Lex->grant_user->user= current_user_and_current_role; } #line 46898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2242: /* show_param: GRANTS FOR_SYM user_or_role clear_privileges */ #line 14042 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_GRANTS; lex->grant_user=(yyvsp[-1].lex_user); } #line 46908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2243: /* show_param: CREATE DATABASE opt_if_not_exists ident */ #line 14048 "/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 46917 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2244: /* show_param: CREATE TABLE_SYM table_ident */ #line 14053 "/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 46929 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2245: /* show_param: CREATE VIEW_SYM table_ident */ #line 14061 "/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 46941 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2246: /* show_param: CREATE SEQUENCE_SYM table_ident */ #line 14069 "/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 46953 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2247: /* show_param: BINLOG_SYM STATUS_SYM */ #line 14077 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_BINLOG_STAT; } #line 46961 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2248: /* show_param: MASTER_SYM STATUS_SYM */ #line 14081 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_BINLOG_STAT; } #line 46969 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2249: /* show_param: ALL SLAVES STATUS_SYM */ #line 14085 "/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 46980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2250: /* show_param: SLAVE optional_connection_name STATUS_SYM optional_for_channel */ #line 14092 "/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 46991 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2251: /* show_param: CREATE PROCEDURE_SYM sp_name */ #line 14099 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PROC; lex->spname= (yyvsp[0].spname); } #line 47002 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2252: /* show_param: CREATE FUNCTION_SYM sp_name */ #line 14106 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_FUNC; lex->spname= (yyvsp[0].spname); } #line 47013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2253: /* show_param: CREATE PACKAGE_MARIADB_SYM sp_name */ #line 14113 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE; lex->spname= (yyvsp[0].spname); } #line 47023 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2254: /* show_param: CREATE PACKAGE_ORACLE_SYM sp_name */ #line 14119 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE; lex->spname= (yyvsp[0].spname); } #line 47033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2255: /* show_param: CREATE PACKAGE_MARIADB_SYM BODY_MARIADB_SYM sp_name */ #line 14125 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE_BODY; lex->spname= (yyvsp[0].spname); } #line 47043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2256: /* show_param: CREATE PACKAGE_ORACLE_SYM BODY_ORACLE_SYM sp_name */ #line 14131 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE_BODY; lex->spname= (yyvsp[0].spname); } #line 47053 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2257: /* show_param: CREATE TRIGGER_SYM sp_name */ #line 14137 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER; lex->spname= (yyvsp[0].spname); } #line 47063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2258: /* show_param: CREATE USER_SYM */ #line 14143 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_CREATE_USER; if (unlikely(!(Lex->grant_user= (LEX_USER*)thd->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; Lex->grant_user->user= current_user; } #line 47075 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2259: /* show_param: CREATE USER_SYM user */ #line 14151 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_CREATE_USER; Lex->grant_user= (yyvsp[0].lex_user); } #line 47084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2260: /* show_param: PROCEDURE_SYM STATUS_SYM wild_and_where */ #line 14156 "/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 47095 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2261: /* show_param: FUNCTION_SYM STATUS_SYM wild_and_where */ #line 14163 "/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 47106 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2262: /* show_param: PACKAGE_MARIADB_SYM STATUS_SYM wild_and_where */ #line 14170 "/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 47117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2263: /* show_param: PACKAGE_ORACLE_SYM STATUS_SYM wild_and_where */ #line 14177 "/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 47128 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2264: /* show_param: PACKAGE_MARIADB_SYM BODY_MARIADB_SYM STATUS_SYM wild_and_where */ #line 14184 "/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 47139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2265: /* show_param: PACKAGE_ORACLE_SYM BODY_ORACLE_SYM STATUS_SYM wild_and_where */ #line 14191 "/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 47150 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2266: /* show_param: PROCEDURE_SYM CODE_SYM sp_name */ #line 14198 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PROC_CODE; Lex->spname= (yyvsp[0].spname); } #line 47159 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2267: /* show_param: FUNCTION_SYM CODE_SYM sp_name */ #line 14203 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_FUNC_CODE; Lex->spname= (yyvsp[0].spname); } #line 47168 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2268: /* show_param: PACKAGE_MARIADB_SYM BODY_MARIADB_SYM CODE_SYM sp_name */ #line 14208 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PACKAGE_BODY_CODE; Lex->spname= (yyvsp[0].spname); } #line 47177 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2269: /* show_param: PACKAGE_ORACLE_SYM BODY_ORACLE_SYM CODE_SYM sp_name */ #line 14213 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PACKAGE_BODY_CODE; Lex->spname= (yyvsp[0].spname); } #line 47186 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2270: /* show_param: CREATE EVENT_SYM sp_name */ #line 14218 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->spname= (yyvsp[0].spname); Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT; } #line 47195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2271: /* show_param: describe_command opt_format_json FOR_SYM expr */ #line 14227 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_EXPLAIN; if (unlikely(prepare_schema_table(thd, Lex, 0, Lex->explain_json ? SCH_EXPLAIN_JSON : SCH_EXPLAIN_TABULAR))) MYSQL_YYABORT; add_value_to_list(thd, (yyvsp[0].item)); } #line 47207 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2272: /* show_param: ANALYZE_SYM opt_format_json FOR_SYM expr */ #line 14235 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ANALYZE; if (unlikely(prepare_schema_table(thd, Lex, 0, Lex->explain_json ? SCH_ANALYZE_JSON : SCH_ANALYZE_TABULAR))) MYSQL_YYABORT; add_value_to_list(thd, (yyvsp[0].item)); } #line 47219 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2273: /* show_param: IDENT_sys remember_tok_start wild_and_where */ #line 14243 "/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 47242 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2274: /* show_engine_param: STATUS_SYM */ #line 14265 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; } #line 47248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2275: /* show_engine_param: MUTEX_SYM */ #line 14267 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; } #line 47254 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2276: /* show_engine_param: LOGS_SYM */ #line 14269 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; } #line 47260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2281: /* opt_db: %empty */ #line 14283 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 47266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2282: /* opt_db: from_or_in ident */ #line 14284 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].ident_sys); } #line 47272 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2283: /* opt_full: %empty */ #line 14288 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->verbose=0; } #line 47278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2284: /* opt_full: FULL */ #line 14289 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->verbose=1; } #line 47284 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2287: /* binlog_in: %empty */ #line 14298 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.log_file_name = 0; } #line 47290 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2288: /* binlog_in: IN_SYM TEXT_STRING_sys */ #line 14299 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } #line 47296 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2289: /* binlog_from: %empty */ #line 14303 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.pos = 4; /* skip magic number */ } #line 47302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2290: /* binlog_from: FROM ulonglong_num */ #line 14304 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mi.pos = (yyvsp[0].ulonglong_number); } #line 47308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2291: /* wild_and_where: %empty */ #line 14308 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.simple_string)= 0; } #line 47314 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2292: /* wild_and_where: LIKE remember_tok_start TEXT_STRING_sys */ #line 14310 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->wild= new (thd->mem_root) String((const char*) (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 47327 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2293: /* wild_and_where: WHERE remember_tok_start expr */ #line 14319 "/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 47338 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2294: /* $@204: %empty */ #line 14330 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; if (lex->main_select_push()) MYSQL_YYABORT; lex->init_select(); 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 47355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2295: /* describe: describe_command table_ident $@204 opt_describe_column */ #line 14343 "/home/buildbot/git/sql/sql_yacc.yy" { Select->parsing_place= NO_MATTER; Lex->pop_select(); //main select } #line 47364 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2296: /* $@205: %empty */ #line 14348 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->describe|= DESCRIBE_NORMAL; } #line 47370 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2297: /* describe: describe_command opt_extended_describe $@205 explainable_command */ #line 14350 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->first_select_lex()->options|= SELECT_DESCRIBE; } #line 47379 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2306: /* analyze_stmt_command: ANALYZE_SYM opt_format_json explainable_command */ #line 14372 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->analyze_stmt= true; } #line 47387 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2307: /* opt_extended_describe: EXTENDED_SYM */ #line 14378 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->describe|= DESCRIBE_EXTENDED; } #line 47393 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2308: /* opt_extended_describe: EXTENDED_SYM ALL */ #line 14380 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->describe|= DESCRIBE_EXTENDED | DESCRIBE_EXTENDED2; } #line 47399 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2309: /* opt_extended_describe: PARTITIONS_SYM */ #line 14381 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->describe|= DESCRIBE_PARTITIONS; } #line 47405 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2310: /* opt_extended_describe: opt_format_json */ #line 14382 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47411 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2311: /* opt_format_json: %empty */ #line 14386 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47417 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2312: /* opt_format_json: FORMAT_SYM '=' ident_or_text */ #line 14388 "/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/ANALYZE", (yyvsp[0].lex_str).str)); } #line 47431 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2313: /* opt_describe_column: %empty */ #line 14400 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47437 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2314: /* opt_describe_column: text_string */ #line 14401 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->wild= (yyvsp[0].string); } #line 47443 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2315: /* opt_describe_column: ident */ #line 14403 "/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 47455 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2316: /* explain_for_connection: describe_command opt_format_json FOR_SYM CONNECTION_SYM expr */ #line 14419 "/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; lex->init_select(); lex->current_select->parsing_place= SELECT_LIST; lex->create_info.init(); Select->parsing_place= NO_MATTER; Lex->pop_select(); //main select Lex->sql_command= SQLCOM_SHOW_EXPLAIN; if (unlikely(prepare_schema_table(thd, Lex, 0, Lex->explain_json ? SCH_EXPLAIN_JSON : SCH_EXPLAIN_TABULAR))) MYSQL_YYABORT; add_value_to_list(thd, (yyvsp[0].item)); } #line 47477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2317: /* $@206: %empty */ #line 14442 "/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 47488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2318: /* flush: FLUSH_SYM opt_no_write_to_binlog $@206 flush_options */ #line 14448 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2319: /* $@207: %empty */ #line 14453 "/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 47508 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2320: /* flush_options: table_or_tables $@207 opt_table_list opt_flush_lock */ #line 14463 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47514 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2321: /* flush_options: flush_options_list */ #line 14465 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47520 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2322: /* opt_flush_lock: %empty */ #line 14469 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47526 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2323: /* opt_flush_lock: flush_lock */ #line 14471 "/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); /* Ignore temporary tables. */ tables->open_type= OT_BASE_ONLY; } } #line 47540 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2324: /* flush_lock: WITH READ_SYM LOCK_SYM optional_flush_tables_arguments */ #line 14484 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_READ_LOCK | (yyvsp[0].num); } #line 47546 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2325: /* $@208: %empty */ #line 14486 "/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 47560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2326: /* flush_lock: FOR_SYM $@208 EXPORT_SYM */ #line 14494 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2328: /* flush_options_list: flush_option */ #line 14500 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47572 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2329: /* flush_option: ERROR_SYM LOGS_SYM */ #line 14505 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_ERROR_LOG; } #line 47578 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2330: /* flush_option: ENGINE_SYM LOGS_SYM */ #line 14507 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_ENGINE_LOG; } #line 47584 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2331: /* flush_option: GENERAL LOGS_SYM */ #line 14509 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_GENERAL_LOG; } #line 47590 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2332: /* flush_option: SLOW LOGS_SYM */ #line 14511 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_SLOW_LOG; } #line 47596 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2333: /* flush_option: BINARY LOGS_SYM opt_delete_gtid_domain */ #line 14513 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_BINARY_LOG; } #line 47602 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2334: /* flush_option: RELAY LOGS_SYM optional_connection_name optional_for_channel */ #line 14515 "/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 47614 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2335: /* flush_option: QUERY_SYM CACHE_SYM */ #line 14523 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_QUERY_CACHE_FREE; } #line 47620 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2336: /* flush_option: HOSTS_SYM */ #line 14525 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_HOSTS; } #line 47626 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2337: /* flush_option: PRIVILEGES */ #line 14527 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_GRANT; } #line 47632 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2338: /* flush_option: LOGS_SYM */ #line 14529 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_LOG; Lex->relay_log_connection_name= empty_clex_str; } #line 47641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2339: /* flush_option: STATUS_SYM */ #line 14534 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_STATUS; } #line 47647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2340: /* flush_option: SLAVE optional_connection_name */ #line 14536 "/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 47659 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2341: /* flush_option: MASTER_SYM */ #line 14544 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_MASTER; } #line 47665 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2342: /* flush_option: DES_KEY_FILE */ #line 14546 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_DES_KEY_FILE; } #line 47671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2343: /* flush_option: RESOURCES */ #line 14548 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_USER_RESOURCES; } #line 47677 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2344: /* flush_option: SSL_SYM */ #line 14550 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_SSL;} #line 47683 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2345: /* flush_option: THREADS_SYM */ #line 14552 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_THREADS;} #line 47689 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2346: /* flush_option: IDENT_sys remember_tok_start */ #line 14554 "/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 47707 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2347: /* opt_table_list: %empty */ #line 14570 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47713 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2348: /* opt_table_list: table_list */ #line 14571 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47719 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2349: /* backup: BACKUP_SYM backup_statements */ #line 14575 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47725 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2350: /* backup_statements: STAGE_SYM ident */ #line 14580 "/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 47741 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2351: /* $@209: %empty */ #line 14592 "/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 47752 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2352: /* backup_statements: LOCK_SYM $@209 table_ident */ #line 14599 "/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 47764 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2353: /* backup_statements: UNLOCK_SYM */ #line 14607 "/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 47775 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2354: /* opt_delete_gtid_domain: %empty */ #line 14616 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47781 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2355: /* opt_delete_gtid_domain: DELETE_DOMAIN_ID_SYM '=' '(' delete_domain_id_list ')' */ #line 14618 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47787 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2359: /* delete_domain_id: ulonglong_num */ #line 14628 "/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 47804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2360: /* optional_flush_tables_arguments: %empty */ #line 14643 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.num)= 0;} #line 47810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2361: /* optional_flush_tables_arguments: AND_SYM DISABLE_SYM CHECKPOINT_SYM */ #line 14644 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.num)= REFRESH_CHECKPOINT; } #line 47816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2362: /* $@210: %empty */ #line 14649 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_RESET; lex->type=0; } #line 47825 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2363: /* reset: RESET_SYM $@210 reset_options */ #line 14654 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2366: /* $@211: %empty */ #line 14663 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_SLAVE; } #line 47837 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2367: /* reset_option: SLAVE $@211 optional_connection_name slave_reset_options optional_for_channel */ #line 14666 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 47843 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2368: /* $@212: %empty */ #line 14668 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_MASTER; Lex->next_binlog_file_number= 0; } #line 47852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2370: /* reset_option: QUERY_SYM CACHE_SYM */ #line 14673 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->type|= REFRESH_QUERY_CACHE;} #line 47858 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2371: /* slave_reset_options: %empty */ #line 14677 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->reset_slave_info.all= false; } #line 47864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2372: /* slave_reset_options: ALL */ #line 14678 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->reset_slave_info.all= true; } #line 47870 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2373: /* master_reset_options: %empty */ #line 14682 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 47876 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2374: /* master_reset_options: TO_SYM ulong_num */ #line 14684 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->next_binlog_file_number = (yyvsp[0].ulong_num); } #line 47884 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2375: /* purge: PURGE master_or_binary LOGS_SYM TO_SYM TEXT_STRING_sys */ #line 14691 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->stmt_purge_to((yyvsp[0].lex_str)); } #line 47892 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2376: /* $@213: %empty */ #line 14695 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= "PURGE..BEFORE"; } #line 47898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2377: /* purge: PURGE master_or_binary LOGS_SYM BEFORE_SYM $@213 expr */ #line 14697 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->clause_that_disallows_subselect= NULL; if (Lex->stmt_purge_before((yyvsp[0].item))) MYSQL_YYABORT; } #line 47908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2378: /* $@214: %empty */ #line 14709 "/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 47920 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2379: /* kill: KILL_SYM $@214 kill_type kill_option */ #line 14717 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->kill_signal= (killed_state) ((yyvsp[-1].num) | (yyvsp[0].num)); } #line 47928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2380: /* kill_type: %empty */ #line 14723 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (int) KILL_HARD_BIT; } #line 47934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2381: /* kill_type: HARD_SYM */ #line 14724 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (int) KILL_HARD_BIT; } #line 47940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2382: /* kill_type: SOFT_SYM */ #line 14725 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 47946 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2383: /* kill_option: opt_connection kill_expr */ #line 14729 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (int) KILL_CONNECTION; } #line 47952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2384: /* kill_option: QUERY_SYM kill_expr */ #line 14730 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (int) KILL_QUERY; } #line 47958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2385: /* kill_option: QUERY_SYM ID_SYM expr */ #line 14732 "/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 47968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2386: /* opt_connection: %empty */ #line 14740 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 47974 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2387: /* opt_connection: CONNECTION_SYM */ #line 14741 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 47980 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2388: /* kill_expr: expr */ #line 14746 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->value_list.push_front((yyval.item), thd->mem_root); } #line 47988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2389: /* kill_expr: USER_SYM user */ #line 14750 "/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 47997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2390: /* $@215: %empty */ #line 14757 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_SHUTDOWN; } #line 48003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2391: /* shutdown: SHUTDOWN $@215 shutdown_option */ #line 14758 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 48009 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2392: /* shutdown_option: %empty */ #line 14762 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->is_shutdown_wait_for_slaves= false; } #line 48015 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2393: /* shutdown_option: WAIT_SYM FOR_SYM ALL SLAVES */ #line 14764 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->is_shutdown_wait_for_slaves= true; } #line 48023 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2394: /* use: USE_SYM ident */ #line 14773 "/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 48033 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2395: /* $@216: %empty */ #line 14784 "/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; lex->init_select(); } #line 48051 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2396: /* $@217: %empty */ #line 14798 "/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 48066 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2397: /* $@218: %empty */ #line 14809 "/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 48083 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2398: /* $@219: %empty */ #line 14822 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->exchange->cs= (yyvsp[0].charset); } #line 48089 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2399: /* load: LOAD data_or_xml $@216 load_data_lock opt_local INFILE TEXT_STRING_filesystem $@217 opt_duplicate INTO TABLE_SYM table_ident opt_use_partition $@218 opt_load_data_charset $@219 opt_xml_rows_identified_by opt_field_term opt_line_term opt_ignore_lines opt_field_or_var_spec opt_load_data_set_spec stmt_end */ #line 14827 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->mark_first_table_as_inserting(); } #line 48097 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2400: /* data_or_xml: DATA_SYM */ #line 14833 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.filetype)= FILETYPE_CSV; } #line 48103 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2401: /* data_or_xml: XML_SYM */ #line 14834 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.filetype)= FILETYPE_XML; } #line 48109 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2402: /* opt_local: %empty */ #line 14838 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)=0;} #line 48115 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2403: /* opt_local: LOCAL_SYM */ #line 14839 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)=1;} #line 48121 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2404: /* load_data_lock: %empty */ #line 14843 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DEFAULT; } #line 48127 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2405: /* load_data_lock: CONCURRENT */ #line 14845 "/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 48139 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2406: /* load_data_lock: LOW_PRIORITY */ #line 14852 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } #line 48145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2407: /* opt_duplicate: %empty */ #line 14856 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->duplicates=DUP_ERROR; } #line 48151 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2408: /* opt_duplicate: REPLACE */ #line 14857 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->duplicates=DUP_REPLACE; } #line 48157 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2409: /* opt_duplicate: IGNORE_SYM */ #line 14858 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ignore= 1; } #line 48163 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2414: /* field_term: TERMINATED BY text_string */ #line 14873 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->field_term= (yyvsp[0].string); } #line 48172 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2415: /* field_term: OPTIONALLY ENCLOSED BY text_string */ #line 14878 "/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 48183 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2416: /* field_term: ENCLOSED BY text_string */ #line 14885 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->enclosed= (yyvsp[0].string); } #line 48192 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2417: /* field_term: ESCAPED BY text_string */ #line 14890 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->escaped= (yyvsp[0].string); } #line 48201 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2422: /* line_term: TERMINATED BY text_string */ #line 14908 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_term= (yyvsp[0].string); } #line 48210 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2423: /* line_term: STARTING BY text_string */ #line 14913 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_start= (yyvsp[0].string); } #line 48219 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2424: /* opt_xml_rows_identified_by: %empty */ #line 14920 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 48225 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2425: /* opt_xml_rows_identified_by: ROWS_SYM IDENTIFIED_SYM BY text_string */ #line 14922 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->exchange->line_term = (yyvsp[0].string); } #line 48231 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2427: /* opt_ignore_lines: IGNORE_SYM NUM lines_or_rows */ #line 14928 "/home/buildbot/git/sql/sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->skip_lines= atol((yyvsp[-1].lex_str).str); } #line 48240 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2428: /* lines_or_rows: LINES */ #line 14935 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 48246 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2429: /* lines_or_rows: ROWS_SYM */ #line 14936 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 48252 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2430: /* opt_field_or_var_spec: %empty */ #line 14940 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 48258 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2431: /* opt_field_or_var_spec: '(' fields_or_vars ')' */ #line 14941 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 48264 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2432: /* opt_field_or_var_spec: '(' ')' */ #line 14942 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 48270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2433: /* fields_or_vars: fields_or_vars ',' field_or_var */ #line 14947 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } #line 48276 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2434: /* fields_or_vars: field_or_var */ #line 14949 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } #line 48282 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2435: /* field_or_var: simple_ident_nospvar */ #line 14953 "/home/buildbot/git/sql/sql_yacc.yy" {(yyval.item)= (yyvsp[0].item);} #line 48288 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2436: /* field_or_var: '@' ident_or_text */ #line 14955 "/home/buildbot/git/sql/sql_yacc.yy" { if (!(yyvsp[0].lex_str).length) { thd->parse_error(); MYSQL_YYABORT; } (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 48304 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2437: /* opt_load_data_set_spec: %empty */ #line 14969 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 48310 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2438: /* opt_load_data_set_spec: SET load_data_set_list */ #line 14970 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 48316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2441: /* load_data_set_elem: simple_ident_nospvar equal remember_name expr_or_ignore_or_default remember_end */ #line 14980 "/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 48328 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2442: /* text_literal: TEXT_STRING */ #line 14993 "/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 48337 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2443: /* text_literal: NCHAR_STRING */ #line 14998 "/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 48346 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2444: /* text_literal: UNDERSCORE_CHARSET TEXT_STRING */ #line 15003 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[-1].charset)= thd->variables.character_set_collations. get_collation_for_charset(thd, (yyvsp[-1].charset)); if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_charset((yyvsp[0].lex_string_with_metadata), (yyvsp[-1].charset))))) MYSQL_YYABORT; } #line 48357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2445: /* text_literal: text_literal TEXT_STRING_literal */ #line 15010 "/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 48366 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2446: /* text_string: TEXT_STRING_literal */ #line 15018 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.string)= new (thd->mem_root) String((const char*) (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->variables.collation_connection); if (unlikely((yyval.string) == NULL)) MYSQL_YYABORT; } #line 48378 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2447: /* text_string: hex_or_bin_String */ #line 15025 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.string)= (yyvsp[0].string); } #line 48384 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2448: /* hex_or_bin_String: HEX_NUM */ #line 15031 "/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 48396 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2449: /* hex_or_bin_String: HEX_STRING */ #line 15039 "/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 48408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2450: /* hex_or_bin_String: BIN_NUM */ #line 15047 "/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 48424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2451: /* param_marker: PARAM_MARKER */ #line 15062 "/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 48435 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2452: /* param_marker: COLON_ORACLE_SYM ident_cli */ #line 15069 "/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 48445 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2453: /* param_marker: COLON_ORACLE_SYM NUM */ #line 15075 "/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 48456 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2454: /* signed_literal: '+' NUM_literal */ #line 15084 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item) = (yyvsp[0].item_num); } #line 48462 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2455: /* signed_literal: '-' NUM_literal */ #line 15086 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].item_num)->max_length++; (yyval.item)= (yyvsp[0].item_num)->neg(thd); } #line 48471 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2456: /* literal: text_literal */ #line 15093 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item) = (yyvsp[0].item_basic_constant); } #line 48477 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2457: /* literal: NUM_literal */ #line 15094 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item) = (yyvsp[0].item_num); } #line 48483 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2458: /* literal: temporal_literal */ #line 15095 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } #line 48489 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2459: /* literal: NULL_SYM */ #line 15097 "/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 48507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2460: /* literal: FALSE_SYM */ #line 15111 "/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 48517 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2461: /* literal: TRUE_SYM */ #line 15117 "/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 48527 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2462: /* literal: HEX_NUM */ #line 15123 "/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 48537 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2463: /* literal: HEX_STRING */ #line 15129 "/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 48547 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2464: /* literal: BIN_NUM */ #line 15135 "/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 48557 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2465: /* literal: UNDERSCORE_CHARSET hex_or_bin_String */ #line 15141 "/home/buildbot/git/sql/sql_yacc.yy" { Item_string_with_introducer *item_str; LEX_CSTRING tmp; (yyvsp[0].string)->get_value(&tmp); (yyvsp[-1].charset)= thd->variables.character_set_collations. get_collation_for_charset(thd, (yyvsp[-1].charset)); /* 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 48581 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2466: /* NUM_literal: NUM */ #line 15164 "/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 48595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2467: /* NUM_literal: LONG_NUM */ #line 15174 "/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 48609 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2468: /* NUM_literal: ULONGLONG_NUM */ #line 15184 "/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 48619 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2469: /* NUM_literal: DECIMAL_NUM */ #line 15190 "/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 48630 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2470: /* NUM_literal: FLOAT_NUM */ #line 15197 "/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 48640 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2471: /* temporal_literal: DATE_SYM TEXT_STRING */ #line 15207 "/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 48651 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2472: /* temporal_literal: TIME_SYM TEXT_STRING */ #line 15214 "/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 48662 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2473: /* temporal_literal: TIMESTAMP TEXT_STRING */ #line 15221 "/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 48673 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2474: /* $@220: %empty */ #line 15231 "/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, 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 48693 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2475: /* with_clause: WITH opt_recursive $@220 with_list */ #line 15247 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.with_clause)= Lex->curr_with_clause; Lex->curr_with_clause= Lex->curr_with_clause->pop(); } #line 48702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2476: /* opt_recursive: %empty */ #line 15255 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 48708 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2477: /* opt_recursive: RECURSIVE_SYM */ #line 15256 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 48714 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2480: /* with_list_element: with_element_head opt_with_column_list AS '(' query_expression ')' opt_cycle */ #line 15270 "/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 48736 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2481: /* opt_cycle: %empty */ #line 15291 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_sys_list)= NULL; } #line 48742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2482: /* $@221: %empty */ #line 15294 "/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 48753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2483: /* opt_cycle: CYCLE_SYM $@221 comma_separated_ident_list RESTRICT */ #line 15301 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_sys_list)= (yyvsp[-1].ident_sys_list); } #line 48761 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2484: /* opt_with_column_list: %empty */ #line 15309 "/home/buildbot/git/sql/sql_yacc.yy" { if (((yyval.ident_sys_list)= new (thd->mem_root) List) == NULL) MYSQL_YYABORT; } #line 48770 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2485: /* opt_with_column_list: '(' with_column_list ')' */ #line 15314 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_sys_list)= (yyvsp[-1].ident_sys_list); } #line 48776 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2487: /* ident_sys_alloc: ident_cli */ #line 15323 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_sys_ptr)= new (thd->mem_root) Lex_ident_sys(thd, &(yyvsp[0].ident_cli)); } #line 48784 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2488: /* comma_separated_ident_list: ident_sys_alloc */ #line 15330 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_sys_list)= new (thd->mem_root) List; if (unlikely((yyval.ident_sys_list) == NULL || (yyval.ident_sys_list)->push_back((yyvsp[0].ident_sys_ptr)))) MYSQL_YYABORT; } #line 48794 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2489: /* comma_separated_ident_list: comma_separated_ident_list ',' ident_sys_alloc */ #line 15336 "/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 48803 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2490: /* with_element_head: ident */ #line 15345 "/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 48816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2491: /* insert_ident: simple_ident_nospvar */ #line 15362 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } #line 48822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2492: /* insert_ident: table_wild */ #line 15363 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } #line 48828 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2493: /* table_wild: ident '.' '*' */ #line 15368 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } #line 48837 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2494: /* table_wild: ident '.' ident '.' '*' */ #line 15373 "/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 48846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2495: /* select_sublist_qualified_asterisk: ident_cli '.' '*' */ #line 15381 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_cli))))) MYSQL_YYABORT; } #line 48855 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2496: /* select_sublist_qualified_asterisk: ident_cli '.' ident_cli '.' '*' */ #line 15386 "/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 48864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2497: /* order_ident: expr */ #line 15393 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } #line 48870 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2498: /* simple_ident: ident_cli */ #line 15399 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } #line 48879 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2499: /* simple_ident: ident_cli '.' ident_cli */ #line 15404 "/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 48888 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2500: /* simple_ident: '.' ident_cli '.' ident_cli */ #line 15409 "/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 48898 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2501: /* simple_ident: ident_cli '.' ident_cli '.' ident_cli */ #line 15415 "/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 48907 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2502: /* simple_ident: COLON_ORACLE_SYM ident_cli '.' ident_cli */ #line 15420 "/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 48916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2503: /* simple_ident_nospvar: ident */ #line 15428 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(!((yyval.item)= Lex->create_item_ident_nosp(thd, &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } #line 48925 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2504: /* simple_ident_nospvar: ident '.' ident */ #line 15433 "/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 48934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2505: /* simple_ident_nospvar: COLON_ORACLE_SYM ident_cli '.' ident_cli */ #line 15438 "/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 48943 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2506: /* simple_ident_nospvar: '.' ident '.' ident */ #line 15443 "/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 48953 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2507: /* simple_ident_nospvar: ident '.' ident '.' ident */ #line 15449 "/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 48962 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2508: /* field_ident: ident */ #line 15456 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].ident_sys);} #line 48968 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2509: /* field_ident: ident '.' ident '.' ident */ #line 15458 "/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 48983 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2510: /* field_ident: ident '.' ident */ #line 15469 "/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 48995 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2511: /* field_ident: '.' ident */ #line 15476 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].ident_sys);} #line 49001 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2512: /* table_ident: ident */ #line 15481 "/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 49011 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2513: /* table_ident: ident '.' ident */ #line 15487 "/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 49021 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2514: /* table_ident: '.' ident */ #line 15493 "/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 49032 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2515: /* table_ident_opt_wild: ident opt_wild */ #line 15503 "/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 49042 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2516: /* table_ident_opt_wild: ident '.' ident opt_wild */ #line 15509 "/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 49052 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2517: /* table_ident_nodb: ident */ #line 15518 "/home/buildbot/git/sql/sql_yacc.yy" { LEX_CSTRING db= any_db; (yyval.table)= new (thd->mem_root) Table_ident(thd, &db, &(yyvsp[0].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } #line 49063 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2522: /* ident_cli: keyword_ident */ #line 15534 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_cli)= (yyvsp[0].kwd); } #line 49069 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2523: /* IDENT_sys: IDENT_cli */ #line 15539 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(thd->to_ident_sys_alloc(&(yyval.ident_sys), &(yyvsp[0].ident_cli)))) MYSQL_YYABORT; } #line 49078 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2526: /* ident_cli_func: keyword_func_sp_var_and_label */ #line 15548 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_cli)= (yyvsp[0].kwd); } #line 49084 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2527: /* ident_cli_func: keyword_func_sp_var_not_label */ #line 15549 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_cli)= (yyvsp[0].kwd); } #line 49090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2528: /* ident_func: ident_cli_func */ #line 15554 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(thd->to_ident_sys_alloc(&(yyval.ident_sys), &(yyvsp[0].ident_cli)))) MYSQL_YYABORT; } #line 49099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2529: /* TEXT_STRING_sys: TEXT_STRING */ #line 15563 "/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 49108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2530: /* TEXT_STRING_literal: TEXT_STRING */ #line 15571 "/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 49117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2531: /* TEXT_STRING_filesystem: TEXT_STRING */ #line 15579 "/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 49126 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2533: /* ident_table_alias: keyword_table_alias */ #line 15588 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } #line 49135 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2534: /* ident_cli_set_usual_case: IDENT_cli */ #line 15595 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_cli)= (yyvsp[0].ident_cli); } #line 49141 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2535: /* ident_cli_set_usual_case: keyword_set_usual_case */ #line 15596 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ident_cli)= (yyvsp[0].kwd); } #line 49147 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2537: /* ident_sysvar_name: keyword_sysvar_name */ #line 15602 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } #line 49156 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2538: /* ident_sysvar_name: TEXT_STRING_sys */ #line 15607 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_sys(thd, &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } #line 49165 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2540: /* ident: keyword_ident */ #line 15617 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } #line 49174 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2542: /* label_ident: keyword_label */ #line 15626 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } #line 49183 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2543: /* ident_or_text: ident */ #line 15633 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].ident_sys);} #line 49189 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2544: /* ident_or_text: TEXT_STRING_sys */ #line 15634 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} #line 49195 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2545: /* ident_or_text: LEX_HOSTNAME */ #line 15635 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} #line 49201 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2546: /* user_maybe_role: ident_or_text */ #line 15640 "/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 49216 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2547: /* user_maybe_role: ident_or_text '@' ident_or_text */ #line 15651 "/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 49249 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2548: /* user_maybe_role: CURRENT_USER optional_braces */ #line 15680 "/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 49260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 2551: /* user: user_maybe_role */ #line 15691 "/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 49270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3280: /* $@222: %empty */ #line 16561 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->set_stmt_init(); } #line 49279 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3281: /* set: SET $@222 set_param */ #line 16566 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->check_main_unit_semantics()) MYSQL_YYABORT; } #line 49288 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3284: /* $@223: %empty */ #line 16576 "/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 49298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3285: /* set_param: TRANSACTION_SYM $@223 transaction_characteristics */ #line 16582 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49307 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3286: /* $@224: %empty */ #line 16587 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->option_type= (yyvsp[0].var_type); } #line 49315 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3288: /* $@225: %empty */ #line 16593 "/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 49329 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3294: /* $@226: %empty */ #line 16620 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[0].kwd).pos())) MYSQL_YYABORT; } #line 49338 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3295: /* start_option_value_list_following_option_type: TRANSACTION_SYM $@226 transaction_characteristics */ #line 16625 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49347 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3298: /* $@227: %empty */ #line 16640 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->option_type= (yyvsp[0].var_type); } #line 49355 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3301: /* option_type: GLOBAL_SYM */ #line 16648 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_GLOBAL; } #line 49361 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3302: /* option_type: LOCAL_SYM */ #line 16649 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49367 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3303: /* option_type: SESSION_SYM */ #line 16650 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49373 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3304: /* opt_var_type: %empty */ #line 16654 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49379 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3305: /* opt_var_type: GLOBAL_SYM */ #line 16655 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_GLOBAL; } #line 49385 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3306: /* opt_var_type: LOCAL_SYM */ #line 16656 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49391 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3307: /* opt_var_type: SESSION_SYM */ #line 16657 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49397 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3308: /* opt_var_ident_type: %empty */ #line 16661 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_DEFAULT; } #line 49403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3309: /* opt_var_ident_type: GLOBAL_SYM '.' */ #line 16662 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_GLOBAL; } #line 49409 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3310: /* opt_var_ident_type: LOCAL_SYM '.' */ #line 16663 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49415 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3311: /* opt_var_ident_type: SESSION_SYM '.' */ #line 16664 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } #line 49421 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3312: /* $@228: %empty */ #line 16673 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push(false)) MYSQL_YYABORT; } #line 49430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3313: /* set_stmt_option: ident_cli equal $@228 set_expr_or_default */ #line 16678 "/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].expr_and_query_str).expr))) MYSQL_YYABORT; Lex->pop_select(); //min select } #line 49443 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3314: /* $@229: %empty */ #line 16687 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push(false)) MYSQL_YYABORT; } #line 49452 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3315: /* set_stmt_option: ident_cli '.' ident equal $@229 set_expr_or_default */ #line 16692 "/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].expr_and_query_str).expr))) MYSQL_YYABORT; Lex->pop_select(); //min select } #line 49465 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3316: /* $@230: %empty */ #line 16701 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push(false)) MYSQL_YYABORT; } #line 49474 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3317: /* set_stmt_option: DEFAULT '.' ident equal $@230 set_expr_or_default */ #line 16706 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-3].ident_sys), (yyvsp[0].expr_and_query_str).expr))) MYSQL_YYABORT; Lex->pop_select(); //min select } #line 49485 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3318: /* $@231: %empty */ #line 16718 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-1].ident_cli).pos())) MYSQL_YYABORT; } #line 49494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3319: /* option_value_following_option_type: ident_cli equal $@231 set_expr_or_default */ #line 16723 "/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].expr_and_query_str).expr)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49507 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3320: /* $@232: %empty */ #line 16732 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-3].ident_cli).pos())) MYSQL_YYABORT; } #line 49516 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3321: /* option_value_following_option_type: ident_cli '.' ident equal $@232 set_expr_or_default */ #line 16737 "/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].expr_and_query_str).expr)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49529 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3322: /* $@233: %empty */ #line 16746 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-3].kwd).pos())) MYSQL_YYABORT; } #line 49538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3323: /* option_value_following_option_type: DEFAULT '.' ident equal $@233 set_expr_or_default */ #line 16751 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-3].ident_sys), (yyvsp[0].expr_and_query_str).expr)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3324: /* $@234: %empty */ #line 16762 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-1].ident_cli).pos())) MYSQL_YYABORT; } #line 49558 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3325: /* option_value_no_option_type: ident_cli_set_usual_case equal $@234 set_expr_or_default */ #line 16767 "/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].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49571 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3326: /* $@235: %empty */ #line 16776 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-3].ident_cli).pos())) MYSQL_YYABORT; } #line 49580 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3327: /* option_value_no_option_type: ident_cli_set_usual_case '.' ident equal $@235 set_expr_or_default */ #line 16781 "/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].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49593 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3328: /* $@236: %empty */ #line 16790 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-3].kwd).pos())) MYSQL_YYABORT; } #line 49602 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3329: /* option_value_no_option_type: DEFAULT '.' ident equal $@236 set_expr_or_default */ #line 16795 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-3].ident_sys), (yyvsp[0].expr_and_query_str).expr))) MYSQL_YYABORT; if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49614 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3330: /* $@237: %empty */ #line 16803 "/home/buildbot/git/sql/sql_yacc.yy" { if (!(yyvsp[-1].lex_str).length) { thd->parse_error(); MYSQL_YYABORT; } if (sp_create_assignment_lex(thd, (yyvsp[-2].lex_str).str)) MYSQL_YYABORT; } #line 49629 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3331: /* option_value_no_option_type: '@' ident_or_text equal $@237 remember_cpp_ptr expr remember_end */ #line 16814 "/home/buildbot/git/sql/sql_yacc.yy" { LEX_CSTRING expr_str= empty_clex_str; if (Lex->is_metadata_used()) { expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; } if (unlikely(Lex->set_user_variable(thd, &(yyvsp[-5].lex_str), (yyvsp[-1].item))) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3332: /* $@238: %empty */ #line 16828 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-4].lex_str).str)) MYSQL_YYABORT; } #line 49656 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3333: /* option_value_no_option_type: '@' '@' opt_var_ident_type ident_sysvar_name equal $@238 set_expr_or_default */ #line 16833 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->set_system_variable((yyvsp[-4].var_type), &(yyvsp[-3].ident_sys), (yyvsp[0].expr_and_query_str).expr)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3334: /* $@239: %empty */ #line 16839 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-6].lex_str).str)) MYSQL_YYABORT; } #line 49675 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3335: /* option_value_no_option_type: '@' '@' opt_var_ident_type ident_sysvar_name '.' ident equal $@239 set_expr_or_default */ #line 16844 "/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].expr_and_query_str).expr)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49686 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3336: /* $@240: %empty */ #line 16851 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-6].lex_str).str)) MYSQL_YYABORT; } #line 49695 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3337: /* option_value_no_option_type: '@' '@' opt_var_ident_type DEFAULT '.' ident equal $@240 set_expr_or_default */ #line 16856 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->set_default_system_variable((yyvsp[-6].var_type), &(yyvsp[-3].ident_sys), (yyvsp[0].expr_and_query_str).expr)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49705 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3338: /* option_value_no_option_type: charset old_or_new_charset_name_or_default */ #line 16862 "/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 49727 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3339: /* option_value_no_option_type: NAMES_SYM equal expr */ #line 16880 "/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 49742 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3340: /* option_value_no_option_type: NAMES_SYM charset_name_or_default */ #line 16891 "/home/buildbot/git/sql/sql_yacc.yy" { CHARSET_INFO *def= global_system_variables.character_set_client; Lex_exact_charset_opt_extended_collate tmp((yyvsp[0].charset) ? (yyvsp[0].charset) : def, false); Lex_extended_collation_st cl; cl.set_collate_default(); if (tmp.merge_collation(thd, thd->variables. character_set_collations, cl) || Lex->set_names((yyvsp[-1].kwd).pos(), tmp, yychar == YYEMPTY)) MYSQL_YYABORT; } #line 49757 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3341: /* option_value_no_option_type: NAMES_SYM charset_name_or_default COLLATE_SYM collation_name_or_default */ #line 16903 "/home/buildbot/git/sql/sql_yacc.yy" { CHARSET_INFO *def= global_system_variables.character_set_client; Lex_exact_charset_opt_extended_collate tmp((yyvsp[-2].charset) ? (yyvsp[-2].charset) : def, false); if (tmp.merge_collation(thd, thd->variables. character_set_collations, (yyvsp[0].Lex_extended_collation)) || Lex->set_names((yyvsp[-3].kwd).pos(), tmp, yychar == YYEMPTY)) MYSQL_YYABORT; } #line 49770 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3342: /* option_value_no_option_type: DEFAULT ROLE_SYM grant_role */ #line 16912 "/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 49796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3343: /* option_value_no_option_type: DEFAULT ROLE_SYM grant_role FOR_SYM user */ #line 16934 "/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 49816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3344: /* option_value_no_option_type: ROLE_SYM role_name */ #line 16950 "/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_user)->user); 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 49831 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3345: /* $@241: %empty */ #line 16961 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) MYSQL_YYABORT; } #line 49840 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3346: /* option_value_no_option_type: ROLE_SYM equal $@241 set_expr_or_default */ #line 16966 "/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].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str)) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } #line 49853 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3347: /* $@242: %empty */ #line 16975 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) MYSQL_YYABORT; } #line 49862 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3348: /* option_value_no_option_type: PASSWORD_SYM equal $@242 text_or_password */ #line 16980 "/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 49872 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3349: /* $@243: %empty */ #line 16986 "/home/buildbot/git/sql/sql_yacc.yy" { if (sp_create_assignment_lex(thd, (yyvsp[-1].kwd).pos())) MYSQL_YYABORT; } #line 49881 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3350: /* option_value_no_option_type: PASSWORD_SYM FOR_SYM $@243 user equal text_or_password */ #line 16991 "/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 49891 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3355: /* transaction_access_mode: transaction_access_mode_types */ #line 17007 "/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, "transaction_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 49911 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3356: /* isolation_level: ISOLATION LEVEL_SYM isolation_types */ #line 17026 "/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, "transaction_isolation"), &null_clex_str, item)); if (unlikely(var == NULL) || unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } #line 49930 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3357: /* transaction_access_mode_types: READ_SYM ONLY_SYM */ #line 17043 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= true; } #line 49936 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3358: /* transaction_access_mode_types: READ_SYM WRITE_SYM */ #line 17044 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= false; } #line 49942 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3359: /* isolation_types: READ_SYM UNCOMMITTED_SYM */ #line 17048 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; } #line 49948 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3360: /* isolation_types: READ_SYM COMMITTED_SYM */ #line 17049 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.tx_isolation)= ISO_READ_COMMITTED; } #line 49954 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3361: /* isolation_types: REPEATABLE_SYM READ_SYM */ #line 17050 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.tx_isolation)= ISO_REPEATABLE_READ; } #line 49960 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3362: /* isolation_types: SERIALIZABLE_SYM */ #line 17051 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.tx_isolation)= ISO_SERIALIZABLE; } #line 49966 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3363: /* text_or_password: TEXT_STRING */ #line 17057 "/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 49975 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3364: /* text_or_password: PASSWORD_SYM '(' TEXT_STRING ')' */ #line 17062 "/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 49984 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3365: /* text_or_password: OLD_PASSWORD_SYM '(' TEXT_STRING ')' */ #line 17067 "/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 49996 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3366: /* set_expr_or_default: remember_cpp_ptr expr remember_end */ #line 17078 "/home/buildbot/git/sql/sql_yacc.yy" { LEX_CSTRING expr_str= empty_clex_str; if (Lex->is_metadata_used()) { expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; } (yyval.expr_and_query_str)= { (yyvsp[-1].item), expr_str }; } #line 50013 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3367: /* set_expr_or_default: remember_cpp_ptr set_expr_misc remember_end */ #line 17091 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[-1].item) == nullptr)) MYSQL_YYABORT; (yyval.expr_and_query_str)= {(yyvsp[-1].item), empty_clex_str}; } #line 50023 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3368: /* set_expr_or_default: remember_cpp_ptr DEFAULT remember_end */ #line 17097 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.expr_and_query_str)= { nullptr, empty_clex_str }; } #line 50031 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3369: /* set_expr_misc: ON */ #line 17103 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= new (thd->mem_root) Item_string_sys(thd, "ON", 2); } #line 50037 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3370: /* set_expr_misc: ALL */ #line 17104 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= new (thd->mem_root) Item_string_sys(thd, "ALL", 3); } #line 50043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3371: /* set_expr_misc: BINARY */ #line 17105 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.item)= new (thd->mem_root) Item_string_sys(thd, "binary", 6); } #line 50049 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3372: /* $@244: %empty */ #line 17112 "/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 50061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3373: /* lock: LOCK_SYM table_or_tables $@244 table_lock_list opt_lock_wait_timeout */ #line 17120 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50067 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3374: /* opt_lock_wait_timeout: %empty */ #line 17125 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3375: /* opt_lock_wait_timeout: WAIT_SYM ulong_num */ #line 17127 "/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 50083 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3376: /* opt_lock_wait_timeout: NOWAIT_SYM */ #line 17133 "/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 50093 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3377: /* table_or_tables: TABLE_SYM */ #line 17141 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 50099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3378: /* table_or_tables: TABLES */ #line 17142 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 50105 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3381: /* table_lock: table_ident opt_table_alias_clause lock_option */ #line 17152 "/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_FIRST_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 50125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3382: /* lock_option: READ_SYM */ #line 17170 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= TL_READ_NO_INSERT; } #line 50131 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3383: /* lock_option: WRITE_SYM */ #line 17171 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= TL_WRITE_DEFAULT; } #line 50137 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3384: /* lock_option: WRITE_SYM CONCURRENT */ #line 17173 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } #line 50145 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3385: /* lock_option: LOW_PRIORITY WRITE_SYM */ #line 17177 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= TL_WRITE_LOW_PRIORITY; } #line 50151 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3386: /* lock_option: READ_SYM LOCAL_SYM */ #line 17178 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= TL_READ; } #line 50157 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3387: /* $@245: %empty */ #line 17183 "/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 50169 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3388: /* unlock: UNLOCK_SYM $@245 table_or_tables */ #line 17191 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50175 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3389: /* $@246: %empty */ #line 17200 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->main_select_push()) MYSQL_YYABORT; } #line 50184 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3390: /* handler: HANDLER_SYM $@246 handler_tail */ #line 17205 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->pop_select(); //main select } #line 50192 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3391: /* handler_tail: table_ident OPEN_SYM opt_table_alias_clause */ #line 17212 "/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 50205 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3392: /* handler_tail: table_ident_nodb CLOSE_SYM */ #line 17221 "/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 50218 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3393: /* $@247: %empty */ #line 17230 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; SELECT_LEX *select= Select; 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; select->limit_params.select_limit= one; select->limit_params.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 50240 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3394: /* handler_tail: table_ident_nodb READ_SYM $@247 handler_read_or_scan opt_where_clause opt_global_limit_clause */ #line 17248 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; SELECT_LEX *select= Select; lex->clause_that_disallows_subselect= NULL; if (!lex->current_select->limit_params.explicit_limit) { Item *one= new (thd->mem_root) Item_int(thd, (int32) 1); if (one == NULL) MYSQL_YYABORT; select->limit_params.select_limit= one; select->limit_params.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 50266 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3395: /* handler_read_or_scan: handler_scan_function */ #line 17272 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ident= null_clex_str; } #line 50272 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3396: /* handler_read_or_scan: ident handler_rkey_function */ #line 17273 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ident= (yyvsp[-1].ident_sys); } #line 50278 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3397: /* handler_scan_function: FIRST_SYM */ #line 17277 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ha_read_mode = RFIRST; } #line 50284 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3398: /* handler_scan_function: NEXT_SYM */ #line 17278 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ha_read_mode = RNEXT; } #line 50290 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3399: /* handler_rkey_function: FIRST_SYM */ #line 17282 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ha_read_mode = RFIRST; } #line 50296 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3400: /* handler_rkey_function: NEXT_SYM */ #line 17283 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ha_read_mode = RNEXT; } #line 50302 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3401: /* handler_rkey_function: PREV_SYM */ #line 17284 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ha_read_mode = RPREV; } #line 50308 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3402: /* handler_rkey_function: LAST_SYM */ #line 17285 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->ha_read_mode = RLAST; } #line 50314 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3403: /* $@248: %empty */ #line 17287 "/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 50326 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3404: /* handler_rkey_function: handler_rkey_mode $@248 '(' values ')' */ #line 17295 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50332 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3405: /* handler_rkey_mode: '=' */ #line 17299 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } #line 50338 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3406: /* handler_rkey_mode: GE */ #line 17300 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } #line 50344 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3407: /* handler_rkey_mode: LE */ #line 17301 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } #line 50350 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3408: /* handler_rkey_mode: '>' */ #line 17302 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } #line 50356 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3409: /* handler_rkey_mode: '<' */ #line 17303 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } #line 50362 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3410: /* revoke: REVOKE clear_privileges revoke_command */ #line 17310 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50368 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3411: /* revoke_command: grant_privileges ON opt_table grant_ident FROM user_and_role_list */ #line 17315 "/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 50377 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3412: /* revoke_command: grant_privileges ON sp_handler grant_ident FROM user_and_role_list */ #line 17320 "/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 50386 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3413: /* revoke_command: ALL opt_privileges ',' GRANT OPTION FROM user_and_role_list */ #line 17325 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_REVOKE_ALL; } #line 50394 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3414: /* revoke_command: PROXY_SYM ON user FROM user_list */ #line 17329 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_revoke_proxy(thd, (yyvsp[-2].lex_user))) MYSQL_YYABORT; } #line 50403 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3415: /* revoke_command: admin_option_for_role FROM user_and_role_list */ #line 17334 "/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 50413 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3416: /* admin_option_for_role: ADMIN_SYM OPTION FOR_SYM grant_role */ #line 17343 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->with_admin_option= true; (yyval.lex_user)= (yyvsp[0].lex_user); } #line 50419 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3417: /* admin_option_for_role: grant_role */ #line 17345 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->with_admin_option= false; (yyval.lex_user)= (yyvsp[0].lex_user); } #line 50425 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3418: /* grant: GRANT clear_privileges grant_command */ #line 17350 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50431 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3419: /* grant_command: grant_privileges ON opt_table grant_ident TO_SYM grant_list opt_require_clause opt_grant_options */ #line 17356 "/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 50440 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3420: /* grant_command: grant_privileges ON sp_handler grant_ident TO_SYM grant_list opt_require_clause opt_grant_options */ #line 17362 "/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 50449 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3421: /* grant_command: PROXY_SYM ON user TO_SYM grant_list opt_grant_option */ #line 17367 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_grant_proxy(thd, (yyvsp[-3].lex_user), (yyvsp[0].privilege))) MYSQL_YYABORT; } #line 50458 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3422: /* grant_command: grant_role TO_SYM grant_list opt_with_admin_option */ #line 17372 "/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 50470 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3423: /* opt_with_admin: %empty */ #line 17383 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->definer = 0; } #line 50476 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3424: /* opt_with_admin: WITH ADMIN_SYM user_or_role */ #line 17384 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->definer = (yyvsp[0].lex_user); } #line 50482 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3425: /* opt_with_admin_option: %empty */ #line 17388 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->with_admin_option= false; } #line 50488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3426: /* opt_with_admin_option: WITH ADMIN_SYM OPTION */ #line 17389 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->with_admin_option= true; } #line 50494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3427: /* role_list: grant_role */ #line 17394 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 50503 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3428: /* role_list: role_list ',' grant_role */ #line 17399 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 50512 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3429: /* current_role: CURRENT_ROLE optional_braces */ #line 17407 "/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; } #line 50522 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3430: /* role_name: ident_or_text */ #line 17416 "/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->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; if (lex_string_eq(&(yyvsp[0].lex_str), &none)) (yyval.lex_user)->user= none; else if (lex_string_eq(&(yyvsp[0].lex_str), &public_name)) (yyval.lex_user)->user= public_name; else if (check_string_char_length(&((yyval.lex_user)->user= (yyvsp[0].lex_str)), ER_USERNAME, username_char_length, cs, 0)) MYSQL_YYABORT; (yyval.lex_user)->host= empty_clex_str; } #line 50545 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3436: /* grant_privileges: ALL opt_privileges */ #line 17446 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.lex_grant)= new (thd->mem_root) Lex_grant_privilege(GLOBAL_ACLS, true))) MYSQL_YYABORT; } #line 50554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3439: /* object_privilege_list: object_privilege */ #line 17459 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.lex_grant)= new (thd->mem_root) Lex_grant_privilege((yyvsp[0].privilege)))) MYSQL_YYABORT; } #line 50563 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3440: /* object_privilege_list: column_list_privilege */ #line 17464 "/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 50574 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3441: /* object_privilege_list: object_privilege_list ',' object_privilege */ #line 17471 "/home/buildbot/git/sql/sql_yacc.yy" { ((yyval.lex_grant)= (yyvsp[-2].lex_grant))->add_object_privilege((yyvsp[0].privilege)); } #line 50582 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3442: /* object_privilege_list: object_privilege_list ',' column_list_privilege */ #line 17475 "/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 50592 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3443: /* column_list_privilege: column_privilege '(' comma_separated_ident_list ')' */ #line 17484 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.column_list_privilege)= Lex_column_list_privilege((yyvsp[-1].ident_sys_list), (yyvsp[-3].privilege)); } #line 50600 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3444: /* column_privilege: SELECT_SYM */ #line 17490 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SELECT_ACL; } #line 50606 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3445: /* column_privilege: INSERT */ #line 17491 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= INSERT_ACL; } #line 50612 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3446: /* column_privilege: UPDATE_SYM */ #line 17492 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= UPDATE_ACL; } #line 50618 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3447: /* column_privilege: REFERENCES */ #line 17493 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= REFERENCES_ACL; } #line 50624 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3448: /* object_privilege: SELECT_SYM */ #line 17497 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SELECT_ACL; } #line 50630 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3449: /* object_privilege: INSERT */ #line 17498 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= INSERT_ACL; } #line 50636 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3450: /* object_privilege: UPDATE_SYM */ #line 17499 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= UPDATE_ACL; } #line 50642 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3451: /* object_privilege: REFERENCES */ #line 17500 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= REFERENCES_ACL; } #line 50648 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3452: /* object_privilege: DELETE_SYM */ #line 17501 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= DELETE_ACL;} #line 50654 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3453: /* object_privilege: USAGE */ #line 17502 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= NO_ACL; } #line 50660 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3454: /* object_privilege: INDEX_SYM */ #line 17503 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= INDEX_ACL;} #line 50666 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3455: /* object_privilege: ALTER */ #line 17504 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= ALTER_ACL;} #line 50672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3456: /* object_privilege: CREATE */ #line 17505 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CREATE_ACL;} #line 50678 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3457: /* object_privilege: DROP */ #line 17506 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= DROP_ACL;} #line 50684 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3458: /* object_privilege: EXECUTE_SYM */ #line 17507 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= EXECUTE_ACL;} #line 50690 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3459: /* object_privilege: RELOAD */ #line 17508 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= RELOAD_ACL;} #line 50696 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3460: /* object_privilege: SHUTDOWN */ #line 17509 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SHUTDOWN_ACL;} #line 50702 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3461: /* object_privilege: PROCESS */ #line 17510 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= PROCESS_ACL;} #line 50708 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3462: /* object_privilege: FILE_SYM */ #line 17511 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= FILE_ACL;} #line 50714 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3463: /* object_privilege: GRANT OPTION */ #line 17512 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= GRANT_ACL;} #line 50720 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3464: /* object_privilege: SHOW DATABASES */ #line 17513 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SHOW_DB_ACL;} #line 50726 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3465: /* object_privilege: SUPER_SYM */ #line 17514 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SUPER_ACL;} #line 50732 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3466: /* object_privilege: CREATE TEMPORARY TABLES */ #line 17515 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CREATE_TMP_ACL;} #line 50738 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3467: /* object_privilege: LOCK_SYM TABLES */ #line 17516 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= LOCK_TABLES_ACL; } #line 50744 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3468: /* object_privilege: REPLICATION SLAVE */ #line 17517 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= REPL_SLAVE_ACL; } #line 50750 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3469: /* object_privilege: REPLICATION CLIENT_SYM */ #line 17518 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= BINLOG_MONITOR_ACL; /*Compatibility*/ } #line 50756 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3470: /* object_privilege: CREATE VIEW_SYM */ #line 17519 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CREATE_VIEW_ACL; } #line 50762 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3471: /* object_privilege: SHOW VIEW_SYM */ #line 17520 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SHOW_VIEW_ACL; } #line 50768 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3472: /* object_privilege: CREATE ROUTINE_SYM */ #line 17521 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CREATE_PROC_ACL; } #line 50774 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3473: /* object_privilege: ALTER ROUTINE_SYM */ #line 17522 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= ALTER_PROC_ACL; } #line 50780 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3474: /* object_privilege: CREATE USER_SYM */ #line 17523 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CREATE_USER_ACL; } #line 50786 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3475: /* object_privilege: EVENT_SYM */ #line 17524 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= EVENT_ACL;} #line 50792 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3476: /* object_privilege: TRIGGER_SYM */ #line 17525 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= TRIGGER_ACL; } #line 50798 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3477: /* object_privilege: CREATE TABLESPACE */ #line 17526 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CREATE_TABLESPACE_ACL; } #line 50804 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3478: /* object_privilege: DELETE_SYM HISTORY_SYM */ #line 17527 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= DELETE_HISTORY_ACL; } #line 50810 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3479: /* object_privilege: SET USER_SYM */ #line 17528 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SET_USER_ACL; } #line 50816 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3480: /* object_privilege: FEDERATED_SYM ADMIN_SYM */ #line 17529 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= FEDERATED_ADMIN_ACL; } #line 50822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3481: /* object_privilege: CONNECTION_SYM ADMIN_SYM */ #line 17530 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= CONNECTION_ADMIN_ACL; } #line 50828 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3482: /* object_privilege: READ_SYM ONLY_SYM ADMIN_SYM */ #line 17531 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= READ_ONLY_ADMIN_ACL; } #line 50834 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3483: /* object_privilege: READ_ONLY_SYM ADMIN_SYM */ #line 17532 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= READ_ONLY_ADMIN_ACL; } #line 50840 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3484: /* object_privilege: BINLOG_SYM MONITOR_SYM */ #line 17533 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= BINLOG_MONITOR_ACL; } #line 50846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3485: /* object_privilege: BINLOG_SYM ADMIN_SYM */ #line 17534 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= BINLOG_ADMIN_ACL; } #line 50852 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3486: /* object_privilege: BINLOG_SYM REPLAY_SYM */ #line 17535 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= BINLOG_REPLAY_ACL; } #line 50858 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3487: /* object_privilege: REPLICATION MASTER_SYM ADMIN_SYM */ #line 17536 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= REPL_MASTER_ADMIN_ACL; } #line 50864 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3488: /* object_privilege: REPLICATION SLAVE ADMIN_SYM */ #line 17537 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= REPL_SLAVE_ADMIN_ACL; } #line 50870 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3489: /* object_privilege: SLAVE MONITOR_SYM */ #line 17538 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SLAVE_MONITOR_ACL; } #line 50876 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3490: /* object_privilege: SHOW CREATE ROUTINE_SYM */ #line 17539 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= SHOW_CREATE_ROUTINE_ACL; } #line 50882 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3491: /* opt_and: %empty */ #line 17543 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50888 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3492: /* opt_and: AND_SYM */ #line 17544 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 50894 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3495: /* require_list_element: SUBJECT_SYM TEXT_STRING */ #line 17554 "/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 50905 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3496: /* require_list_element: ISSUER_SYM TEXT_STRING */ #line 17561 "/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 50916 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3497: /* require_list_element: CIPHER_SYM TEXT_STRING */ #line 17568 "/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 50927 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3498: /* grant_ident: '*' */ #line 17578 "/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 50940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3499: /* grant_ident: ident '.' '*' */ #line 17587 "/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 50950 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3500: /* grant_ident: '*' '.' '*' */ #line 17593 "/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 50961 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3501: /* grant_ident: table_ident */ #line 17600 "/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 50970 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3502: /* user_list: user */ #line 17608 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 50979 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3503: /* user_list: user_list ',' user */ #line 17613 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 50988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3504: /* grant_list: grant_user */ #line 17621 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 50997 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3505: /* grant_list: grant_list ',' grant_user */ #line 17626 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 51006 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3506: /* user_and_role_list: user_or_role */ #line 17634 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 51015 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3507: /* user_and_role_list: user_and_role_list ',' user_or_role */ #line 17639 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } #line 51024 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3512: /* grant_user: user IDENTIFIED_SYM BY TEXT_STRING */ #line 17650 "/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 51034 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3513: /* grant_user: user IDENTIFIED_SYM BY PASSWORD_SYM TEXT_STRING */ #line 17656 "/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 51044 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3514: /* grant_user: user IDENTIFIED_SYM via_or_with auth_expression */ #line 17662 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_user)= (yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->auth= (yyvsp[0].user_auth); } #line 51053 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3515: /* grant_user: user_or_role */ #line 17667 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_user)= (yyvsp[0].lex_user); } #line 51061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3516: /* auth_expression: auth_token OR_SYM auth_expression */ #line 17674 "/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 51071 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3517: /* auth_expression: auth_token */ #line 17680 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.user_auth)= (yyvsp[0].user_auth); } #line 51079 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3518: /* auth_token: ident_or_text opt_auth_str */ #line 17687 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.user_auth)= (yyvsp[0].user_auth); (yyval.user_auth)->plugin= (yyvsp[-1].lex_str); } #line 51088 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3519: /* opt_auth_str: %empty */ #line 17695 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.user_auth)=(USER_AUTH*) thd->calloc(sizeof(USER_AUTH)))) MYSQL_YYABORT; } #line 51097 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3520: /* opt_auth_str: using_or_as TEXT_STRING_sys */ #line 17700 "/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 51107 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3521: /* opt_auth_str: using_or_as PASSWORD_SYM '(' TEXT_STRING ')' */ #line 17706 "/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 51117 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3523: /* opt_require_clause: REQUIRE_SYM require_list */ #line 17716 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.ssl_type= SSL_TYPE_SPECIFIED; } #line 51125 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3524: /* opt_require_clause: REQUIRE_SYM SSL_SYM */ #line 17720 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.ssl_type= SSL_TYPE_ANY; } #line 51133 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3525: /* opt_require_clause: REQUIRE_SYM X509_SYM */ #line 17724 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.ssl_type= SSL_TYPE_X509; } #line 51141 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3526: /* opt_require_clause: REQUIRE_SYM NONE_SYM */ #line 17728 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->account_options.ssl_type= SSL_TYPE_NONE; } #line 51149 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3527: /* resource_option: MAX_QUERIES_PER_HOUR ulong_num */ #line 17735 "/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 51158 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3528: /* resource_option: MAX_UPDATES_PER_HOUR ulong_num */ #line 17740 "/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 51167 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3529: /* resource_option: MAX_CONNECTIONS_PER_HOUR ulong_num */ #line 17745 "/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 51176 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3530: /* resource_option: MAX_USER_CONNECTIONS_SYM int_num */ #line 17750 "/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 51185 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3531: /* resource_option: MAX_STATEMENT_TIME_SYM NUM_literal */ #line 17755 "/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 51194 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3532: /* resource_option_list: resource_option_list resource_option */ #line 17762 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51200 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3533: /* resource_option_list: resource_option */ #line 17763 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51206 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3534: /* opt_resource_options: %empty */ #line 17767 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51212 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3536: /* opt_grant_options: %empty */ #line 17773 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= NO_ACL; } #line 51218 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3537: /* opt_grant_options: WITH grant_option_list */ #line 17774 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= (yyvsp[0].privilege); } #line 51224 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3538: /* opt_grant_option: %empty */ #line 17778 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= NO_ACL; } #line 51230 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3539: /* opt_grant_option: WITH GRANT OPTION */ #line 17779 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= GRANT_ACL; } #line 51236 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3540: /* grant_option_list: grant_option_list grant_option */ #line 17783 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= (yyvsp[-1].privilege) | (yyvsp[0].privilege); } #line 51242 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3542: /* grant_option: GRANT OPTION */ #line 17788 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= GRANT_ACL;} #line 51248 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3543: /* grant_option: resource_option */ #line 17789 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.privilege)= NO_ACL; } #line 51254 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3544: /* $@249: %empty */ #line 17794 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_BEGIN; lex->start_transaction_opt= 0; } #line 51264 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3545: /* begin_stmt_mariadb: BEGIN_MARIADB_SYM $@249 opt_work */ #line 17799 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51270 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3546: /* compound_statement: sp_proc_stmt_compound_ok */ #line 17804 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command= SQLCOM_COMPOUND; if (Lex->sp_body_finalize_procedure(thd)) MYSQL_YYABORT; } #line 51280 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3547: /* opt_not: %empty */ #line 17812 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 0; } #line 51286 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3548: /* opt_not: not */ #line 17813 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= 1; } #line 51292 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3549: /* opt_work: %empty */ #line 17817 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51298 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3550: /* opt_work: WORK_SYM */ #line 17818 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51304 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3551: /* opt_chain: %empty */ #line 17823 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } #line 51310 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3552: /* opt_chain: AND_SYM NO_SYM CHAIN_SYM */ #line 17824 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_yes_no_unk)= TVL_NO; } #line 51316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3553: /* opt_chain: AND_SYM CHAIN_SYM */ #line 17825 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_yes_no_unk)= TVL_YES; } #line 51322 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3554: /* opt_release: %empty */ #line 17830 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } #line 51328 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3555: /* opt_release: RELEASE_SYM */ #line 17831 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_yes_no_unk)= TVL_YES; } #line 51334 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3556: /* opt_release: NO_SYM RELEASE_SYM */ #line 17832 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.m_yes_no_unk)= TVL_NO; } #line 51340 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3557: /* commit: COMMIT_SYM opt_work opt_chain opt_release */ #line 17837 "/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 51353 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3558: /* rollback: ROLLBACK_SYM opt_work opt_chain opt_release */ #line 17849 "/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 51366 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3559: /* rollback: ROLLBACK_SYM opt_work TO_SYM SAVEPOINT_SYM ident */ #line 17858 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } #line 51376 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3560: /* rollback: ROLLBACK_SYM opt_work TO_SYM ident */ #line 17864 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } #line 51386 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3561: /* savepoint: SAVEPOINT_SYM ident */ #line 17873 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } #line 51396 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3562: /* release: RELEASE_SYM SAVEPOINT_SYM ident */ #line 17882 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } #line 51406 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3563: /* unit_type_decl: UNION_SYM union_option */ #line 17895 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.unit_operation).unit_type= UNION_TYPE; (yyval.unit_operation).distinct= (yyvsp[0].num); } #line 51412 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3564: /* unit_type_decl: INTERSECT_SYM union_option */ #line 17897 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.unit_operation).unit_type= INTERSECT_TYPE; (yyval.unit_operation).distinct= (yyvsp[0].num); } #line 51418 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3565: /* unit_type_decl: EXCEPT_SYM union_option */ #line 17899 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.unit_operation).unit_type= EXCEPT_TYPE; (yyval.unit_operation).distinct= (yyvsp[0].num); } #line 51424 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3566: /* union_option: %empty */ #line 17906 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)=1; } #line 51430 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3567: /* union_option: DISTINCT */ #line 17907 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)=1; } #line 51436 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3568: /* union_option: ALL */ #line 17908 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)=0; } #line 51442 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3569: /* query_expression_option: STRAIGHT_JOIN */ #line 17912 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= SELECT_STRAIGHT_JOIN; } #line 51448 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3570: /* query_expression_option: HIGH_PRIORITY */ #line 17914 "/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 51458 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3571: /* query_expression_option: DISTINCT */ #line 17919 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= SELECT_DISTINCT; } #line 51464 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3572: /* query_expression_option: UNIQUE_SYM */ #line 17920 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= SELECT_DISTINCT; } #line 51470 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3573: /* query_expression_option: SQL_SMALL_RESULT */ #line 17921 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= SELECT_SMALL_RESULT; } #line 51476 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3574: /* query_expression_option: SQL_BIG_RESULT */ #line 17922 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= SELECT_BIG_RESULT; } #line 51482 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3575: /* query_expression_option: SQL_BUFFER_RESULT */ #line 17923 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= OPTION_BUFFER_RESULT; } #line 51488 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3576: /* query_expression_option: SQL_CALC_FOUND_ROWS */ #line 17924 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= OPTION_FOUND_ROWS; } #line 51494 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3577: /* query_expression_option: ALL */ #line 17925 "/home/buildbot/git/sql/sql_yacc.yy" { Select->options|= SELECT_ALL; } #line 51500 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3580: /* no_definer: %empty */ #line 17941 "/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 51515 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3581: /* definer: DEFINER_SYM '=' user_or_role */ #line 17955 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->definer= (yyvsp[0].lex_user); Lex->account_options.reset(); } #line 51524 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3582: /* view_algorithm: ALGORITHM_SYM '=' UNDEFINED_SYM */ #line 17968 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= DTYPE_ALGORITHM_UNDEFINED; } #line 51530 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3583: /* view_algorithm: ALGORITHM_SYM '=' MERGE_SYM */ #line 17969 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= VIEW_ALGORITHM_MERGE; } #line 51536 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3584: /* view_algorithm: ALGORITHM_SYM '=' TEMPTABLE_SYM */ #line 17970 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= VIEW_ALGORITHM_TMPTABLE; } #line 51542 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3585: /* opt_view_suid: %empty */ #line 17974 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.view_suid)= VIEW_SUID_DEFAULT; } #line 51548 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3586: /* opt_view_suid: view_suid */ #line 17975 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.view_suid)= (yyvsp[0].view_suid); } #line 51554 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3587: /* view_suid: SQL_SYM SECURITY_SYM DEFINER_SYM */ #line 17979 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.view_suid)= VIEW_SUID_DEFINER; } #line 51560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3588: /* view_suid: SQL_SYM SECURITY_SYM INVOKER_SYM */ #line 17980 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.view_suid)= VIEW_SUID_INVOKER; } #line 51566 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3589: /* view_list_opt: %empty */ #line 17985 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51572 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3590: /* view_list_opt: '(' view_list ')' */ #line 17986 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 51578 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3591: /* view_list: ident */ #line 17991 "/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 51588 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3592: /* view_list: view_list ',' ident */ #line 17997 "/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 51598 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3593: /* $@250: %empty */ #line 18005 "/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 51608 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3594: /* view_select: $@250 query_expression view_check_option */ #line 18012 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->parsed_create_view((yyvsp[-1].select_lex_unit), (yyvsp[0].num))) MYSQL_YYABORT; } #line 51617 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3595: /* view_check_option: %empty */ #line 18019 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= VIEW_CHECK_NONE; } #line 51623 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3596: /* view_check_option: WITH CHECK_SYM OPTION */ #line 18020 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= VIEW_CHECK_CASCADED; } #line 51629 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3597: /* view_check_option: WITH CASCADED CHECK_SYM OPTION */ #line 18021 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= VIEW_CHECK_CASCADED; } #line 51635 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3598: /* view_check_option: WITH LOCAL_SYM CHECK_SYM OPTION */ #line 18022 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= VIEW_CHECK_LOCAL; } #line 51641 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3599: /* trigger_action_order: FOLLOWS_SYM */ #line 18033 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trigger_action_order_type)= TRG_ORDER_FOLLOWS; } #line 51647 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3600: /* trigger_action_order: PRECEDES_SYM */ #line 18035 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.trigger_action_order_type)= TRG_ORDER_PRECEDES; } #line 51653 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3601: /* trigger_follows_precedes_clause: %empty */ #line 18040 "/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 51663 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3602: /* trigger_follows_precedes_clause: trigger_action_order ident_or_text */ #line 18047 "/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 51672 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3603: /* $@251: %empty */ #line 18056 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->add_create_options_with_check((yyvsp[0].object_ddl_options)))) MYSQL_YYABORT; } #line 51681 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3604: /* $@252: %empty */ #line 18065 "/home/buildbot/git/sql/sql_yacc.yy" { /* $9 */ Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start(); } #line 51689 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3605: /* $@253: %empty */ #line 18071 "/home/buildbot/git/sql/sql_yacc.yy" { /* $13 */ Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start(); } #line 51697 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3606: /* $@254: %empty */ #line 18076 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->trg_chistics.ordering_clause_begin= YYLIP->get_cpp_ptr(); } #line 51705 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3607: /* $@255: %empty */ #line 18080 "/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(&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 51730 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3608: /* trigger_tail: remember_name opt_if_not_exists $@251 sp_name trg_action_time trg_event ON remember_name $@252 table_ident FOR_SYM remember_name $@253 EACH_SYM ROW_SYM $@254 trigger_follows_precedes_clause $@255 sp_proc_stmt force_lookahead */ #line 18101 "/home/buildbot/git/sql/sql_yacc.yy" { /* $21 */ 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[-10].table), (LEX_CSTRING*) 0, TL_OPTION_UPDATING, TL_READ_NO_INSERT, MDL_SHARED_NO_WRITE)) MYSQL_YYABORT; } #line 51753 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3609: /* $@256: %empty */ #line 18129 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= Lex; lex->init_last_field(&lex->sphead->m_return_field_def, &empty_clex_str); } #line 51763 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3610: /* sf_return_type: $@256 field_type */ #line 18135 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sf_return_fill_definition((yyvsp[0].Lex_field_type)))) MYSQL_YYABORT; } #line 51772 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3611: /* create_package_chistic: COMMENT_SYM TEXT_STRING_sys */ #line 18143 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } #line 51778 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3612: /* create_package_chistic: sp_suid */ #line 18145 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.suid= (yyvsp[0].sp_suid); } #line 51784 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3613: /* create_package_chistics: create_package_chistic */ #line 18149 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51790 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3614: /* create_package_chistics: create_package_chistics create_package_chistic */ #line 18150 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 51796 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3615: /* opt_create_package_chistics: %empty */ #line 18154 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 51802 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3616: /* opt_create_package_chistics: create_package_chistics */ #line 18155 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 51808 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3617: /* $@257: %empty */ #line 18159 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_chistics.init(); } #line 51814 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3619: /* xa: XA_SYM begin_or_start xid opt_join_or_resume */ #line 18167 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_START; } #line 51822 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3620: /* xa: XA_SYM END xid opt_suspend */ #line 18171 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_END; } #line 51830 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3621: /* xa: XA_SYM PREPARE_SYM xid */ #line 18175 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_PREPARE; } #line 51838 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3622: /* xa: XA_SYM COMMIT_SYM xid opt_one_phase */ #line 18179 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_COMMIT; } #line 51846 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3623: /* xa: XA_SYM ROLLBACK_SYM xid */ #line 18183 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_ROLLBACK; } #line 51854 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3624: /* xa: XA_SYM RECOVER_SYM opt_format_xid */ #line 18187 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_RECOVER; Lex->verbose= (yyvsp[0].num); } #line 51863 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3625: /* opt_format_xid: %empty */ #line 18194 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.num)= false; } #line 51869 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3626: /* opt_format_xid: FORMAT_SYM '=' ident_or_text */ #line 18196 "/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 51886 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3627: /* xid: text_string */ #line 18212 "/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 51897 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3628: /* xid: text_string ',' text_string */ #line 18219 "/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 51908 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3629: /* xid: text_string ',' text_string ',' ulong_num */ #line 18226 "/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( std::numeric_limits::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 51922 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3630: /* begin_or_start: BEGIN_MARIADB_SYM */ #line 18238 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51928 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3631: /* begin_or_start: BEGIN_ORACLE_SYM */ #line 18239 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51934 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3632: /* begin_or_start: START_SYM */ #line 18240 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51940 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3633: /* opt_join_or_resume: %empty */ #line 18244 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_NONE; } #line 51946 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3634: /* opt_join_or_resume: JOIN_SYM */ #line 18245 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_JOIN; } #line 51952 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3635: /* opt_join_or_resume: RESUME_SYM */ #line 18246 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_RESUME; } #line 51958 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3636: /* opt_one_phase: %empty */ #line 18250 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_NONE; } #line 51964 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3637: /* opt_one_phase: ONE_SYM PHASE_SYM */ #line 18251 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_ONE_PHASE; } #line 51970 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3638: /* opt_suspend: %empty */ #line 18256 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_NONE; } #line 51976 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3639: /* $@258: %empty */ #line 18258 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_SUSPEND; } #line 51982 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3641: /* opt_migrate: %empty */ #line 18263 "/home/buildbot/git/sql/sql_yacc.yy" {} #line 51988 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3642: /* opt_migrate: FOR_SYM MIGRATE_SYM */ #line 18264 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->xa_opt=XA_FOR_MIGRATE; } #line 51994 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3643: /* install: INSTALL_SYM PLUGIN_SYM opt_if_not_exists ident SONAME_SYM TEXT_STRING_sys */ #line 18269 "/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 52003 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3644: /* install: INSTALL_SYM SONAME_SYM TEXT_STRING_sys */ #line 18274 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->stmt_install_plugin((yyvsp[0].lex_str)); } #line 52011 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3645: /* uninstall: UNINSTALL_SYM PLUGIN_SYM opt_if_exists ident */ #line 18281 "/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 52020 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3646: /* uninstall: UNINSTALL_SYM SONAME_SYM opt_if_exists TEXT_STRING_sys */ #line 18286 "/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 52029 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3647: /* keep_gcc_happy: IMPOSSIBLE_ACTION */ #line 18295 "/home/buildbot/git/sql/sql_yacc.yy" { YYERROR; } #line 52037 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3653: /* sp_tail_is: %empty */ #line 18324 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 52043 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3656: /* opt_trailing_sp_name: %empty */ #line 18336 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spname)= NULL; } #line 52049 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3657: /* opt_package_routine_end_name: %empty */ #line 18340 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 52055 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3658: /* opt_package_routine_end_name: FORCE_LOOKAHEAD */ #line 18341 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= null_clex_str; } #line 52061 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3662: /* package_implementation_item_declaration: DECLARE_MARIADB_SYM sp_decl_variable_list ';' */ #line 18357 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock)= (yyvsp[-1].spblock); } #line 52067 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3665: /* package_implementation_declare_section_list: package_implementation_declare_section_list1 package_implementation_declare_section_list2 */ #line 18368 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock).join((yyvsp[-1].spblock), (yyvsp[0].spblock)); } #line 52073 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3667: /* package_implementation_executable_section: sp_proc_stmts END */ #line 18377 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock_handlers).init(0); } #line 52081 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3696: /* row_field_name: ident */ #line 18438 "/home/buildbot/git/sql/sql_yacc.yy" { if (!((yyval.spvar_definition)= Lex->row_field_name(thd, (yyvsp[0].ident_sys)))) MYSQL_YYABORT; } #line 52090 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3697: /* $@259: %empty */ #line 18446 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely((yyvsp[-1].expr_lex)->sp_while_loop_expression(thd))) MYSQL_YYABORT; } #line 52099 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3698: /* while_body: expr_lex DO_SYM $@259 sp_proc_stmts1 END WHILE_SYM */ #line 18451 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_while_loop_finalize(thd))) MYSQL_YYABORT; } #line 52108 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3699: /* for_loop_statements: DO_SYM sp_proc_stmts1 END FOR_SYM */ #line 18459 "/home/buildbot/git/sql/sql_yacc.yy" { } #line 52114 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3700: /* sp_label: label_ident ':' */ #line 18463 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex_str)= (yyvsp[-1].ident_sys); } #line 52120 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3702: /* sp_block_label: sp_label */ #line 18472 "/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 52130 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3703: /* sp_opt_default: _empty */ #line 18480 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.expr_and_query_str)= { nullptr, empty_clex_str}; } #line 52136 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3704: /* sp_opt_default: DEFAULT remember_cpp_ptr expr remember_end */ #line 18482 "/home/buildbot/git/sql/sql_yacc.yy" { LEX_CSTRING expr_str= empty_clex_str; if (Lex->is_metadata_used()) { expr_str= make_string(thd, (yyvsp[-2].simple_string), (yyvsp[0].simple_string)); if (expr_str.str == nullptr) MYSQL_YYABORT; } (yyval.expr_and_query_str)= { (yyvsp[-1].item), expr_str }; } #line 52153 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3705: /* sp_decl_variable_list_anchored: sp_decl_idents_init_vars TYPE_SYM OF_SYM optionally_qualified_column_ident sp_opt_default */ #line 18500 "/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].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-4].num)); } #line 52164 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3706: /* sp_decl_variable_list_anchored: sp_decl_idents_init_vars ROW_SYM TYPE_SYM OF_SYM optionally_qualified_column_ident sp_opt_default */ #line 18509 "/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].expr_and_query_str).expr, (yyvsp[0].expr_and_query_str).expr_str))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-5].num)); } #line 52175 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3707: /* sp_param_name_and_mode: sp_parameter_type sp_param_name */ #line 18519 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[0].spvar)->mode= (yyvsp[-1].spvar_mode); (yyval.spvar)= (yyvsp[0].spvar); } #line 52184 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3709: /* sp_param: sp_param_name_and_mode field_type */ #line 18528 "/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 52193 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3710: /* sp_param: sp_param_name_and_mode ROW_SYM row_type_body */ #line 18533 "/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 52202 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3712: /* sp_param_anchored: sp_param_name_and_mode TYPE_SYM OF_SYM ident '.' ident */ #line 18542 "/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 52213 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3713: /* sp_param_anchored: sp_param_name_and_mode TYPE_SYM OF_SYM ident '.' ident '.' ident */ #line 18549 "/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 52223 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3714: /* sp_param_anchored: sp_param_name_and_mode ROW_SYM TYPE_SYM OF_SYM ident */ #line 18555 "/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 52232 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3715: /* sp_param_anchored: sp_param_name_and_mode ROW_SYM TYPE_SYM OF_SYM ident '.' ident */ #line 18560 "/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 52241 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3716: /* $@260: %empty */ #line 18569 "/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 52251 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3717: /* sf_c_chistics_and_body_standalone: sp_c_chistics $@260 sp_proc_stmt_in_returns_clause force_lookahead */ #line 18575 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_body_finalize_function(thd))) MYSQL_YYABORT; } #line 52260 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3718: /* $@261: %empty */ #line 18583 "/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 52271 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3719: /* $@262: %empty */ #line 18591 "/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 52280 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3720: /* sp_tail_standalone: sp_name $@261 sp_parenthesized_pdparam_list sp_c_chistics $@262 sp_proc_stmt force_lookahead */ #line 18596 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_body_finalize_procedure(thd))) MYSQL_YYABORT; } #line 52289 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3721: /* sp_decls: _empty */ #line 18605 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock).init(); } #line 52297 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3722: /* sp_decls: sp_decls sp_decl ';' */ #line 18609 "/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 52310 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3723: /* sp_decl: DECLARE_MARIADB_SYM sp_decl_body */ #line 18620 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock)= (yyvsp[0].spblock); } #line 52316 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3725: /* sp_decl_body: sp_decl_ident CONDITION_SYM FOR_SYM sp_cond */ #line 18627 "/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 52327 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3727: /* $@263: %empty */ #line 18635 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_block_init(thd); } #line 52335 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3728: /* sp_decl_body: sp_decl_ident CURSOR_SYM $@263 opt_parenthesized_cursor_formal_parameters FOR_SYM sp_cursor_stmt */ #line 18640 "/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 52349 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3746: /* $@264: %empty */ #line 18691 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_block_init(thd, &(yyvsp[-1].lex_str)); } #line 52357 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3747: /* sp_labeled_block: sp_block_label BEGIN_MARIADB_SYM $@264 sp_decls sp_proc_stmts END sp_opt_label */ #line 18698 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-3].spblock), &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } #line 52366 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3748: /* $@265: %empty */ #line 18706 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->sp_block_init(thd); } #line 52374 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3749: /* sp_unlabeled_block: BEGIN_MARIADB_SYM $@265 sp_decls sp_proc_stmts END */ #line 18712 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) MYSQL_YYABORT; } #line 52383 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3750: /* $@266: %empty */ #line 18720 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->maybe_start_compound_statement(thd))) MYSQL_YYABORT; Lex->sp_block_init(thd); } #line 52393 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3751: /* sp_unlabeled_block_not_atomic: BEGIN_MARIADB_SYM not ATOMIC_SYM $@266 sp_decls sp_proc_stmts END */ #line 18728 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) MYSQL_YYABORT; } #line 52402 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3753: /* package_implementation_declare_section_list1: package_implementation_declare_section_list1 package_implementation_item_declaration */ #line 19181 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock).join((yyvsp[-1].spblock), (yyvsp[0].spblock)); } #line 52408 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3755: /* package_implementation_declare_section_list2: package_implementation_declare_section_list2 package_implementation_routine_definition */ #line 19188 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock).join((yyvsp[-1].spblock), (yyvsp[0].spblock)); } #line 52414 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3756: /* $@267: %empty */ #line 19194 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= thd->lex->package_routine_start(thd, &sp_handler_package_function, (yyvsp[0].ident_sys)); if (!lex) MYSQL_YYABORT; thd->lex= lex; } #line 52426 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3757: /* package_specification_function: remember_lex ident $@267 sf_parameters sf_returned_type_clause sp_c_chistics */ #line 19204 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex)= thd->lex; sp_head *sp= thd->lex->sphead; sp->restore_thd_mem_root(thd); thd->lex= (yyvsp[-5].lex); } #line 52437 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3758: /* $@268: %empty */ #line 19214 "/home/buildbot/git/sql/sql_yacc.yy" { LEX *lex= thd->lex->package_routine_start(thd, &sp_handler_package_procedure, (yyvsp[0].ident_sys)); if (!lex) MYSQL_YYABORT; thd->lex= lex; } #line 52449 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3759: /* package_specification_procedure: remember_lex ident $@268 sp_parameters sp_c_chistics */ #line 19223 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.lex)= thd->lex; sp_head *sp= thd->lex->sphead; sp->restore_thd_mem_root(thd); thd->lex= (yyvsp[-4].lex); } #line 52460 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3760: /* package_implementation_routine_definition: FUNCTION_SYM package_specification_function package_implementation_function_body ';' */ #line 19235 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg= Lex->get_sp_package(); if (unlikely(pkg->add_routine_implementation((yyvsp[-2].lex)))) MYSQL_YYABORT; pkg->m_current_routine= NULL; (yyval.spblock).init(); } #line 52472 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3761: /* package_implementation_routine_definition: PROCEDURE_SYM package_specification_procedure package_implementation_procedure_body ';' */ #line 19244 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg= Lex->get_sp_package(); if (unlikely(pkg->add_routine_implementation((yyvsp[-2].lex)))) MYSQL_YYABORT; pkg->m_current_routine= NULL; (yyval.spblock).init(); } #line 52484 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3762: /* package_implementation_routine_definition: package_specification_element */ #line 19251 "/home/buildbot/git/sql/sql_yacc.yy" { (yyval.spblock).init(); } #line 52490 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3763: /* $@269: %empty */ #line 19257 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg= Lex->get_sp_package(); sp_head *sp= pkg->m_current_routine->sphead; thd->lex= pkg->m_current_routine; sp->reset_thd_mem_root(thd); sp->set_c_chistics(thd->lex->sp_chistics); sp->set_body_start(thd, YYLIP->get_cpp_tok_start()); } #line 52503 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3764: /* package_implementation_function_body: sp_tail_is remember_lex $@269 sp_package_function_body opt_package_routine_end_name */ #line 19266 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(thd->lex->sp_body_finalize_function(thd) || thd->lex->sphead->check_package_routine_end_name((yyvsp[0].lex_str)))) MYSQL_YYABORT; thd->lex= (yyvsp[-3].lex); } #line 52514 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3765: /* $@270: %empty */ #line 19276 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg= Lex->get_sp_package(); sp_head *sp= pkg->m_current_routine->sphead; thd->lex= pkg->m_current_routine; sp->reset_thd_mem_root(thd); sp->set_c_chistics(thd->lex->sp_chistics); sp->set_body_start(thd, YYLIP->get_cpp_tok_start()); } #line 52527 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3766: /* package_implementation_procedure_body: sp_tail_is remember_lex $@270 sp_package_procedure_body opt_package_routine_end_name */ #line 19285 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(thd->lex->sp_body_finalize_procedure(thd) || thd->lex->sphead->check_package_routine_end_name((yyvsp[0].lex_str)))) MYSQL_YYABORT; thd->lex= (yyvsp[-3].lex); } #line 52538 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3771: /* package_specification_element: FUNCTION_SYM package_specification_function ';' */ #line 19306 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg= Lex->get_sp_package(); if (unlikely(pkg->add_routine_declaration((yyvsp[-1].lex)))) MYSQL_YYABORT; pkg->m_current_routine= NULL; } #line 52549 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3772: /* package_specification_element: PROCEDURE_SYM package_specification_procedure ';' */ #line 19313 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg= Lex->get_sp_package(); if (unlikely(pkg->add_routine_declaration((yyvsp[-1].lex)))) MYSQL_YYABORT; pkg->m_current_routine= NULL; } #line 52560 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3773: /* $@271: %empty */ #line 19433 "/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 52569 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3774: /* create_routine: create_or_replace definer_opt PROCEDURE_SYM opt_if_not_exists $@271 sp_tail_standalone */ #line 19438 "/home/buildbot/git/sql/sql_yacc.yy" { Lex->stmt_create_routine_finalize(); } #line 52577 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3775: /* $@272: %empty */ #line 19443 "/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 52586 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3776: /* create_routine: create_or_replace definer opt_aggregate FUNCTION_SYM opt_if_not_exists sp_name $@272 sf_parameters sf_returned_type_clause sf_c_chistics_and_body_standalone opt_trailing_sp_name */ #line 19451 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_create_stored_function_finalize_standalone((yyvsp[0].spname))) MYSQL_YYABORT; } #line 52595 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3777: /* $@273: %empty */ #line 19457 "/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 52604 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3778: /* create_routine: create_or_replace no_definer opt_aggregate FUNCTION_SYM opt_if_not_exists sp_name $@273 sf_parameters sf_returned_type_clause sf_c_chistics_and_body_standalone opt_trailing_sp_name */ #line 19465 "/home/buildbot/git/sql/sql_yacc.yy" { if (Lex->stmt_create_stored_function_finalize_standalone((yyvsp[0].spname))) MYSQL_YYABORT; } #line 52613 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3779: /* create_routine: create_or_replace no_definer opt_aggregate FUNCTION_SYM opt_if_not_exists ident RETURNS_SYM udf_type SONAME_SYM TEXT_STRING_sys */ #line 19471 "/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 52623 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3780: /* $@274: %empty */ #line 19478 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg; if (unlikely(!(pkg= Lex-> create_package_start(thd, &sp_handler_package_spec, (yyvsp[-1].spname), (yyvsp[-5].object_ddl_options) | (yyvsp[-2].object_ddl_options), Lex->sp_chistics)))) MYSQL_YYABORT; Lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); } #line 52637 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3781: /* create_routine: create_or_replace definer_opt sp_handler_package_spec opt_if_not_exists sp_name opt_create_package_chistics_init $@274 sp_tail_is opt_package_specification_element_list END remember_end_opt opt_trailing_sp_name */ #line 19490 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->create_package_finalize(thd, (yyvsp[-7].spname), (yyvsp[0].spname), (yyvsp[-1].simple_string)))) MYSQL_YYABORT; } #line 52646 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3782: /* $@275: %empty */ #line 19496 "/home/buildbot/git/sql/sql_yacc.yy" { sp_package *pkg; if (unlikely(!(pkg= Lex-> create_package_start(thd, &sp_handler_package_body, (yyvsp[-1].spname), (yyvsp[-5].object_ddl_options) | (yyvsp[-2].object_ddl_options), Lex->sp_chistics)))) MYSQL_YYABORT; Lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); Lex->sp_block_init(thd); } #line 52661 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3783: /* $@276: %empty */ #line 19509 "/home/buildbot/git/sql/sql_yacc.yy" { (yyvsp[-1].spblock).hndlrs+= (yyvsp[0].spblock_handlers).hndlrs; if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-1].spblock)))) MYSQL_YYABORT; } #line 52671 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; case 3784: /* create_routine: create_or_replace definer_opt sp_handler_package_body opt_if_not_exists sp_name opt_create_package_chistics_init $@275 sp_tail_is package_implementation_declare_section package_implementation_executable_section $@276 remember_end_opt opt_trailing_sp_name */ #line 19515 "/home/buildbot/git/sql/sql_yacc.yy" { if (unlikely(Lex->create_package_finalize(thd, (yyvsp[-8].spname), (yyvsp[0].spname), (yyvsp[-1].simple_string)))) MYSQL_YYABORT; } #line 52680 "/home/buildbot/git/mkdist/sql/yy_mariadb.cc" break; #line 52684 "/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 ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; *++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. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } 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 ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; yyerror (thd, YY_("syntax error")); } 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 when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; ++yynerrs; /* 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. */ /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYSYMBOL_YYerror; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { 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", YY_ACCESSING_SYMBOL (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", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturnlab; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturnlab; /*-----------------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | `-----------------------------------------------------------*/ yyexhaustedlab: yyerror (thd, YY_("memory exhausted")); yyresult = 2; goto yyreturnlab; /*----------------------------------------------------------. | yyreturnlab -- parsing is finished, clean up and return. | `----------------------------------------------------------*/ yyreturnlab: 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", YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, thd); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; }