/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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. */ /* 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. */ /* Undocumented macros, especially those whose name start with YY_, are private implementation details. Do not rely on them. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "3.3.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Substitute the variable and function names. */ #define yyparse base_yyparse #define yylex base_yylex #define yyerror base_yyerror #define yydebug base_yydebug #define yynerrs base_yynerrs /* First part of user prologue. */ #line 1 "gram.y" /* yacc.c:337 */ /*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION * src/backend/parser/gram.y * * HISTORY * AUTHOR DATE MAJOR EVENT * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion * Andrew Yu Oct, 1994 lispy code conversion * * NOTES * CAPITALS are used to represent terminal symbols. * non-capitals are used to represent non-terminals. * * In general, nothing in this file should initiate database accesses * nor depend on changeable state (such as SET variables). If you do * database accesses, your code will fail when we have aborted the * current transaction and are just parsing commands to find the next * ROLLBACK or COMMIT. If you make use of SET variables, then you * will do the wrong thing in multi-query strings like this: * SET constraint_exclusion TO off; SELECT * FROM foo; * because the entire string is parsed by gram.y before the SET gets * executed. Anything that depends on the database or changeable state * should be handled during parse analysis so that it happens at the * right time not the wrong time. * * WARNINGS * If you use a list, make sure the datum is a node so that the printing * routines work. * * Sometimes we assign constants to makeStrings. Make sure we don't free * those. * *------------------------------------------------------------------------- */ #include "postgres.h" #include #include #include "access/tableam.h" #include "catalog/index.h" #include "catalog/namespace.h" #include "catalog/pg_am.h" #include "catalog/pg_trigger.h" #include "commands/defrem.h" #include "commands/trigger.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/gramparse.h" #include "parser/parser.h" #include "parser/parse_expr.h" #include "storage/lmgr.h" #include "utils/date.h" #include "utils/datetime.h" #include "utils/numeric.h" #include "utils/xml.h" /* * Location tracking support --- simpler than bison's default, since we only * want to track the start position not the end position of each nonterminal. */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ if ((N) > 0) \ (Current) = (Rhs)[1]; \ else \ (Current) = (-1); \ } while (0) /* * The above macro assigns -1 (unknown) as the parse location of any * nonterminal that was reduced from an empty rule, or whose leftmost * component was reduced from an empty rule. This is problematic * for nonterminals defined like * OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ; * because we'll set -1 as the location during the first reduction and then * copy it during each subsequent reduction, leaving us with -1 for the * location even when the list is not empty. To fix that, do this in the * action for the nonempty rule(s): * if (@$ < 0) @$ = @2; * (Although we have many nonterminals that follow this pattern, we only * bother with fixing @$ like this when the nonterminal's parse location * is actually referenced in some rule.) * * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs * locations until it's found one that's not -1. Then we'd get a correct * location for any nonterminal that isn't entirely empty. But this way * would add overhead to every rule reduction, and so far there's not been * a compelling reason to pay that overhead. */ /* * Bison doesn't allocate anything that needs to live across parser calls, * so we can easily have it use palloc instead of malloc. This prevents * memory leaks if we error out during parsing. Note this only works with * bison >= 2.0. However, in bison 1.875 the default is to use alloca() * if possible, so there's not really much problem anyhow, at least if * you're building with gcc. */ #define YYMALLOC palloc #define YYFREE pfree /* Private struct for the result of privilege_target production */ typedef struct PrivTarget { GrantTargetType targtype; ObjectType objtype; List *objs; } PrivTarget; /* Private struct for the result of import_qualification production */ typedef struct ImportQual { ImportForeignSchemaType type; List *table_names; } ImportQual; /* ConstraintAttributeSpec yields an integer bitmask of these flags: */ #define CAS_NOT_DEFERRABLE 0x01 #define CAS_DEFERRABLE 0x02 #define CAS_INITIALLY_IMMEDIATE 0x04 #define CAS_INITIALLY_DEFERRED 0x08 #define CAS_NOT_VALID 0x10 #define CAS_NO_INHERIT 0x20 #define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) #define parser_errposition(pos) scanner_errposition(pos, yyscanner) static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg); static RawStmt *makeRawStmt(Node *stmt, int stmt_location); static void updateRawStmtEnd(RawStmt *rs, int end_location); static Node *makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner); static Node *makeTypeCast(Node *arg, TypeName *typename, int location); static Node *makeStringConst(char *str, int location); static Node *makeStringConstCast(char *str, int location, TypeName *typename); static Node *makeIntConst(int val, int location); static Node *makeFloatConst(char *str, int location); static Node *makeBitStringConst(char *str, int location); static Node *makeNullAConst(int location); static Node *makeAConst(Value *v, int location); static Node *makeBoolAConst(bool state, int location); static RoleSpec *makeRoleSpec(RoleSpecType type, int location); static void check_qualified_name(List *names, core_yyscan_t yyscanner); static List *check_func_name(List *names, core_yyscan_t yyscanner); static List *check_indirection(List *indirection, core_yyscan_t yyscanner); static List *extractArgTypes(List *parameters); static List *extractAggrArgTypes(List *aggrargs); static List *makeOrderedSetArgs(List *directargs, List *orderedargs, core_yyscan_t yyscanner); static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, Node *limitOffset, Node *limitCount, WithClause *withClause, core_yyscan_t yyscanner); static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg); static Node *doNegate(Node *n, int location); static void doNegateFloat(Value *v); static Node *makeAndExpr(Node *lexpr, Node *rexpr, int location); static Node *makeOrExpr(Node *lexpr, Node *rexpr, int location); static Node *makeNotExpr(Node *expr, int location); static Node *makeAArrayExpr(List *elements, int location); static Node *makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location); static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location); static List *mergeTableFuncParameters(List *func_args, List *columns); static TypeName *TableFuncTypeName(List *columns); static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner); static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner); static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner); static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); #line 269 "gram.c" /* yacc.c:337 */ # 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 /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* In a future release of Bison, this section will be replaced by #include "gram.h". */ #ifndef YY_BASE_YY_GRAM_H_INCLUDED # define YY_BASE_YY_GRAM_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int base_yydebug; #endif /* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { IDENT = 258, FCONST = 259, SCONST = 260, BCONST = 261, XCONST = 262, Op = 263, ICONST = 264, PARAM = 265, TYPECAST = 266, DOT_DOT = 267, COLON_EQUALS = 268, EQUALS_GREATER = 269, LESS_EQUALS = 270, GREATER_EQUALS = 271, NOT_EQUALS = 272, ABORT_P = 273, ABSOLUTE_P = 274, ACCESS = 275, ACTION = 276, ADD_P = 277, ADMIN = 278, AFTER = 279, AGGREGATE = 280, ALL = 281, ALSO = 282, ALTER = 283, ALWAYS = 284, ANALYSE = 285, ANALYZE = 286, AND = 287, ANY = 288, ARRAY = 289, AS = 290, ASC = 291, ASSERTION = 292, ASSIGNMENT = 293, ASYMMETRIC = 294, AT = 295, ATTACH = 296, ATTRIBUTE = 297, AUTHORIZATION = 298, BACKWARD = 299, BEFORE = 300, BEGIN_P = 301, BETWEEN = 302, BIGINT = 303, BINARY = 304, BIT = 305, BOOLEAN_P = 306, BOTH = 307, BY = 308, CACHE = 309, CALL = 310, CALLED = 311, CASCADE = 312, CASCADED = 313, CASE = 314, CAST = 315, CATALOG_P = 316, CHAIN = 317, CHAR_P = 318, CHARACTER = 319, CHARACTERISTICS = 320, CHECK = 321, CHECKPOINT = 322, CLASS = 323, CLOSE = 324, CLUSTER = 325, COALESCE = 326, COLLATE = 327, COLLATION = 328, COLUMN = 329, COLUMNS = 330, COMMENT = 331, COMMENTS = 332, COMMIT = 333, COMMITTED = 334, CONCURRENTLY = 335, CONFIGURATION = 336, CONFLICT = 337, CONNECTION = 338, CONSTRAINT = 339, CONSTRAINTS = 340, CONTENT_P = 341, CONTINUE_P = 342, CONVERSION_P = 343, COPY = 344, COST = 345, CREATE = 346, CROSS = 347, CSV = 348, CUBE = 349, CURRENT_P = 350, CURRENT_CATALOG = 351, CURRENT_DATE = 352, CURRENT_ROLE = 353, CURRENT_SCHEMA = 354, CURRENT_TIME = 355, CURRENT_TIMESTAMP = 356, CURRENT_USER = 357, CURSOR = 358, CYCLE = 359, DATA_P = 360, DATABASE = 361, DAY_P = 362, DEALLOCATE = 363, DEC = 364, DECIMAL_P = 365, DECLARE = 366, DEFAULT = 367, DEFAULTS = 368, DEFERRABLE = 369, DEFERRED = 370, DEFINER = 371, DELETE_P = 372, DELIMITER = 373, DELIMITERS = 374, DEPENDS = 375, DESC = 376, DETACH = 377, DICTIONARY = 378, DISABLE_P = 379, DISCARD = 380, DISTINCT = 381, DO = 382, DOCUMENT_P = 383, DOMAIN_P = 384, DOUBLE_P = 385, DROP = 386, EACH = 387, ELSE = 388, ENABLE_P = 389, ENCODING = 390, ENCRYPTED = 391, END_P = 392, ENUM_P = 393, ESCAPE = 394, EVENT = 395, EXCEPT = 396, EXCLUDE = 397, EXCLUDING = 398, EXCLUSIVE = 399, EXECUTE = 400, EXISTS = 401, EXPLAIN = 402, EXTENSION = 403, EXTERNAL = 404, EXTRACT = 405, FALSE_P = 406, FAMILY = 407, FETCH = 408, FILTER = 409, FIRST_P = 410, FLOAT_P = 411, FOLLOWING = 412, FOR = 413, FORCE = 414, FOREIGN = 415, FORWARD = 416, FREEZE = 417, FROM = 418, FULL = 419, FUNCTION = 420, FUNCTIONS = 421, GENERATED = 422, GLOBAL = 423, GRANT = 424, GRANTED = 425, GREATEST = 426, GROUP_P = 427, GROUPING = 428, GROUPS = 429, HANDLER = 430, HAVING = 431, HEADER_P = 432, HOLD = 433, HOUR_P = 434, IDENTITY_P = 435, IF_P = 436, ILIKE = 437, IMMEDIATE = 438, IMMUTABLE = 439, IMPLICIT_P = 440, IMPORT_P = 441, IN_P = 442, INCLUDE = 443, INCLUDING = 444, INCREMENT = 445, INDEX = 446, INDEXES = 447, INHERIT = 448, INHERITS = 449, INITIALLY = 450, INLINE_P = 451, INNER_P = 452, INOUT = 453, INPUT_P = 454, INSENSITIVE = 455, INSERT = 456, INSTEAD = 457, INT_P = 458, INTEGER = 459, INTERSECT = 460, INTERVAL = 461, INTO = 462, INVOKER = 463, IS = 464, ISNULL = 465, ISOLATION = 466, JOIN = 467, KEY = 468, LABEL = 469, LANGUAGE = 470, LARGE_P = 471, LAST_P = 472, LATERAL_P = 473, LEADING = 474, LEAKPROOF = 475, LEAST = 476, LEFT = 477, LEVEL = 478, LIKE = 479, LIMIT = 480, LISTEN = 481, LOAD = 482, LOCAL = 483, LOCALTIME = 484, LOCALTIMESTAMP = 485, LOCATION = 486, LOCK_P = 487, LOCKED = 488, LOGGED = 489, MAPPING = 490, MATCH = 491, MATERIALIZED = 492, MAXVALUE = 493, METHOD = 494, MINUTE_P = 495, MINVALUE = 496, MODE = 497, MONTH_P = 498, MOVE = 499, NAME_P = 500, NAMES = 501, NATIONAL = 502, NATURAL = 503, NCHAR = 504, NEW = 505, NEXT = 506, NO = 507, NONE = 508, NOT = 509, NOTHING = 510, NOTIFY = 511, NOTNULL = 512, NOWAIT = 513, NULL_P = 514, NULLIF = 515, NULLS_P = 516, NUMERIC = 517, OBJECT_P = 518, OF = 519, OFF = 520, OFFSET = 521, OIDS = 522, OLD = 523, ON = 524, ONLY = 525, OPERATOR = 526, OPTION = 527, OPTIONS = 528, OR = 529, ORDER = 530, ORDINALITY = 531, OTHERS = 532, OUT_P = 533, OUTER_P = 534, OVER = 535, OVERLAPS = 536, OVERLAY = 537, OVERRIDING = 538, OWNED = 539, OWNER = 540, PARALLEL = 541, PARSER = 542, PARTIAL = 543, PARTITION = 544, PASSING = 545, PASSWORD = 546, PLACING = 547, PLANS = 548, POLICY = 549, POSITION = 550, PRECEDING = 551, PRECISION = 552, PRESERVE = 553, PREPARE = 554, PREPARED = 555, PRIMARY = 556, PRIOR = 557, PRIVILEGES = 558, PROCEDURAL = 559, PROCEDURE = 560, PROCEDURES = 561, PROGRAM = 562, PUBLICATION = 563, QUOTE = 564, RANGE = 565, READ = 566, REAL = 567, REASSIGN = 568, RECHECK = 569, RECURSIVE = 570, REF = 571, REFERENCES = 572, REFERENCING = 573, REFRESH = 574, REINDEX = 575, RELATIVE_P = 576, RELEASE = 577, RENAME = 578, REPEATABLE = 579, REPLACE = 580, REPLICA = 581, RESET = 582, RESTART = 583, RESTRICT = 584, RETURNING = 585, RETURNS = 586, REVOKE = 587, RIGHT = 588, ROLE = 589, ROLLBACK = 590, ROLLUP = 591, ROUTINE = 592, ROUTINES = 593, ROW = 594, ROWS = 595, RULE = 596, SAVEPOINT = 597, SCHEMA = 598, SCHEMAS = 599, SCROLL = 600, SEARCH = 601, SECOND_P = 602, SECURITY = 603, SELECT = 604, SEQUENCE = 605, SEQUENCES = 606, SERIALIZABLE = 607, SERVER = 608, SESSION = 609, SESSION_USER = 610, SET = 611, SETS = 612, SETOF = 613, SHARE = 614, SHOW = 615, SIMILAR = 616, SIMPLE = 617, SKIP = 618, SMALLINT = 619, SNAPSHOT = 620, SOME = 621, SQL_P = 622, STABLE = 623, STANDALONE_P = 624, START = 625, STATEMENT = 626, STATISTICS = 627, STDIN = 628, STDOUT = 629, STORAGE = 630, STORED = 631, STRICT_P = 632, STRIP_P = 633, SUBSCRIPTION = 634, SUBSTRING = 635, SUPPORT = 636, SYMMETRIC = 637, SYSID = 638, SYSTEM_P = 639, TABLE = 640, TABLES = 641, TABLESAMPLE = 642, TABLESPACE = 643, TEMP = 644, TEMPLATE = 645, TEMPORARY = 646, TEXT_P = 647, THEN = 648, TIES = 649, TIME = 650, TIMESTAMP = 651, TO = 652, TRAILING = 653, TRANSACTION = 654, TRANSFORM = 655, TREAT = 656, TRIGGER = 657, TRIM = 658, TRUE_P = 659, TRUNCATE = 660, TRUSTED = 661, TYPE_P = 662, TYPES_P = 663, UNBOUNDED = 664, UNCOMMITTED = 665, UNENCRYPTED = 666, UNION = 667, UNIQUE = 668, UNKNOWN = 669, UNLISTEN = 670, UNLOGGED = 671, UNTIL = 672, UPDATE = 673, USER = 674, USING = 675, VACUUM = 676, VALID = 677, VALIDATE = 678, VALIDATOR = 679, VALUE_P = 680, VALUES = 681, VARCHAR = 682, VARIADIC = 683, VARYING = 684, VERBOSE = 685, VERSION_P = 686, VIEW = 687, VIEWS = 688, VOLATILE = 689, WHEN = 690, WHERE = 691, WHITESPACE_P = 692, WINDOW = 693, WITH = 694, WITHIN = 695, WITHOUT = 696, WORK = 697, WRAPPER = 698, WRITE = 699, XML_P = 700, XMLATTRIBUTES = 701, XMLCONCAT = 702, XMLELEMENT = 703, XMLEXISTS = 704, XMLFOREST = 705, XMLNAMESPACES = 706, XMLPARSE = 707, XMLPI = 708, XMLROOT = 709, XMLSERIALIZE = 710, XMLTABLE = 711, YEAR_P = 712, YES_P = 713, ZONE = 714, NOT_LA = 715, NULLS_LA = 716, WITH_LA = 717, POSTFIXOP = 718, UMINUS = 719 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 203 "gram.y" /* yacc.c:352 */ core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ int ival; char *str; const char *keyword; char chr; bool boolean; JoinType jtype; DropBehavior dbehavior; OnCommitAction oncommit; List *list; Node *node; Value *value; ObjectType objtype; TypeName *typnam; FunctionParameter *fun_param; FunctionParameterMode fun_param_mode; ObjectWithArgs *objwithargs; DefElem *defelt; SortBy *sortby; WindowDef *windef; JoinExpr *jexpr; IndexElem *ielem; Alias *alias; RangeVar *range; IntoClause *into; WithClause *with; InferClause *infer; OnConflictClause *onconflict; A_Indices *aind; ResTarget *target; struct PrivTarget *privtarget; AccessPriv *accesspriv; struct ImportQual *importqual; InsertStmt *istmt; VariableSetStmt *vsetstmt; PartitionElem *partelem; PartitionSpec *partspec; PartitionBoundSpec *partboundspec; RoleSpec *rolespec; #line 821 "gram.c" /* yacc.c:352 */ }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif /* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE YYLTYPE; struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; }; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif int base_yyparse (core_yyscan_t yyscanner); #endif /* !YY_BASE_YY_GRAM_H_INCLUDED */ #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #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 # if (defined __GNUC__ \ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C # define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else # define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif #ifndef YY_ATTRIBUTE_PURE # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) #endif #ifndef YY_ATTRIBUTE_UNUSED # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* 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 || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 827 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 103948 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 482 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 667 /* YYNRULES -- Number of rules. */ #define YYNRULES 2724 /* YYNSTATES -- Number of states. */ #define YYNSTATES 5488 #define YYUNDEFTOK 2 #define YYMAXUTOK 719 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 471, 2, 2, 476, 477, 469, 467, 480, 468, 478, 470, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 481, 479, 463, 465, 464, 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, 474, 2, 475, 472, 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, 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, 3, 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, 466, 473 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 789, 789, 805, 817, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 951, 960, 975, 986, 987, 988, 997, 998, 1002, 1003, 1007, 1012, 1016, 1026, 1034, 1038, 1042, 1047, 1051, 1099, 1101, 1105, 1109, 1113, 1117, 1131, 1149, 1157, 1168, 1169, 1173, 1181, 1189, 1197, 1218, 1225, 1232, 1239, 1246, 1253, 1270, 1288, 1299, 1300, 1311, 1321, 1331, 1346, 1364, 1365, 1369, 1376, 1384, 1385, 1386, 1387, 1388, 1389, 1403, 1409, 1415, 1424, 1432, 1440, 1444, 1452, 1460, 1467, 1477, 1478, 1486, 1497, 1505, 1513, 1524, 1532, 1540, 1547, 1556, 1566, 1567, 1571, 1572, 1575, 1577, 1581, 1582, 1583, 1584, 1588, 1589, 1590, 1596, 1608, 1612, 1616, 1631, 1638, 1639, 1640, 1644, 1645, 1646, 1650, 1651, 1655, 1659, 1660, 1667, 1674, 1684, 1691, 1701, 1702, 1707, 1708, 1713, 1719, 1725, 1731, 1737, 1747, 1757, 1758, 1762, 1763, 1771, 1786, 1792, 1798, 1804, 1810, 1829, 1838, 1847, 1856, 1865, 1876, 1887, 1896, 1905, 1914, 1925, 1936, 1945, 1954, 1963, 1972, 1981, 1990, 2001, 2015, 2016, 2021, 2034, 2050, 2066, 2075, 2084, 2093, 2102, 2111, 2119, 2127, 2136, 2152, 2161, 2170, 2179, 2196, 2205, 2214, 2223, 2233, 2246, 2261, 2270, 2278, 2293, 2301, 2311, 2321, 2328, 2336, 2344, 2351, 2358, 2366, 2374, 2382, 2389, 2396, 2404, 2411, 2418, 2426, 2434, 2442, 2450, 2458, 2466, 2476, 2483, 2491, 2499, 2507, 2515, 2523, 2530, 2537, 2544, 2550, 2560, 2561, 2565, 2566, 2567, 2571, 2579, 2583, 2584, 2588, 2595, 2602, 2609, 2619, 2622, 2623, 2627, 2628, 2633, 2637, 2641, 2646, 2653, 2655, 2660, 2664, 2668, 2679, 2687, 2740, 2753, 2767, 2779, 2786, 2790, 2804, 2817, 2818, 2823, 2832, 2842, 2852, 2878, 2884, 2917, 2952, 2974, 2975, 2979, 2980, 2989, 2990, 2991, 2994, 2995, 3000, 3001, 3005, 3009, 3013, 3017, 3021, 3025, 3029, 3033, 3037, 3041, 3045, 3049, 3053, 3062, 3066, 3070, 3074, 3078, 3079, 3084, 3088, 3095, 3102, 3103, 3104, 3105, 3106, 3110, 3114, 3122, 3133, 3152, 3171, 3191, 3211, 3231, 3264, 3265, 3266, 3267, 3268, 3275, 3282, 3283, 3287, 3288, 3292, 3293, 3297, 3301, 3308, 3312, 3319, 3320, 3321, 3325, 3326, 3329, 3350, 3368, 3389, 3390, 3394, 3401, 3402, 3403, 3434, 3441, 3448, 3459, 3470, 3482, 3491, 3500, 3523, 3541, 3542, 3561, 3568, 3575, 3582, 3593, 3604, 3605, 3606, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3627, 3634, 3638, 3651, 3667, 3682, 3698, 3713, 3732, 3753, 3754, 3758, 3759, 3763, 3764, 3767, 3773, 3774, 3777, 3781, 3789, 3794, 3800, 3801, 3805, 3810, 3817, 3818, 3828, 3830, 3832, 3834, 3837, 3840, 3843, 3847, 3848, 3849, 3850, 3851, 3854, 3855, 3859, 3860, 3863, 3875, 3876, 3879, 3880, 3883, 3894, 3905, 3919, 3920, 3925, 3926, 3927, 3930, 3931, 3932, 3933, 3936, 3937, 3940, 3941, 3944, 3962, 3974, 3999, 4012, 4028, 4044, 4045, 4046, 4058, 4071, 4087, 4101, 4102, 4114, 4134, 4144, 4157, 4165, 4176, 4177, 4180, 4181, 4184, 4185, 4188, 4192, 4196, 4200, 4204, 4208, 4212, 4216, 4220, 4224, 4228, 4233, 4237, 4241, 4247, 4248, 4252, 4253, 4254, 4259, 4262, 4263, 4275, 4287, 4302, 4303, 4311, 4312, 4316, 4317, 4321, 4322, 4326, 4327, 4331, 4341, 4354, 4355, 4365, 4376, 4377, 4390, 4397, 4414, 4422, 4433, 4436, 4440, 4444, 4448, 4452, 4464, 4474, 4477, 4481, 4494, 4503, 4512, 4521, 4530, 4539, 4548, 4557, 4566, 4575, 4584, 4593, 4602, 4611, 4620, 4629, 4638, 4647, 4656, 4665, 4674, 4683, 4692, 4701, 4710, 4719, 4728, 4737, 4755, 4766, 4767, 4768, 4769, 4773, 4774, 4778, 4779, 4789, 4797, 4809, 4810, 4814, 4818, 4826, 4830, 4834, 4841, 4845, 4850, 4855, 4862, 4869, 4874, 4884, 4896, 4911, 4912, 4917, 4918, 4922, 4923, 4933, 4942, 4950, 4967, 4987, 5007, 5028, 5059, 5068, 5089, 5104, 5105, 5109, 5117, 5132, 5141, 5153, 5154, 5166, 5174, 5191, 5215, 5232, 5246, 5247, 5251, 5252, 5256, 5257, 5261, 5262, 5266, 5280, 5284, 5285, 5289, 5290, 5291, 5292, 5293, 5303, 5314, 5315, 5326, 5347, 5373, 5374, 5375, 5379, 5381, 5403, 5405, 5407, 5409, 5411, 5416, 5417, 5421, 5422, 5426, 5437, 5438, 5442, 5451, 5455, 5459, 5464, 5474, 5475, 5479, 5480, 5484, 5485, 5489, 5490, 5494, 5495, 5496, 5500, 5504, 5505, 5506, 5510, 5511, 5516, 5517, 5544, 5545, 5546, 5547, 5548, 5549, 5562, 5572, 5586, 5588, 5593, 5598, 5600, 5605, 5615, 5616, 5617, 5618, 5629, 5648, 5659, 5671, 5681, 5691, 5702, 5711, 5718, 5725, 5734, 5743, 5752, 5761, 5770, 5780, 5789, 5801, 5804, 5805, 5808, 5812, 5819, 5820, 5821, 5822, 5823, 5824, 5827, 5830, 5831, 5839, 5846, 5847, 5850, 5852, 5863, 5874, 5885, 5896, 5909, 5910, 5926, 5941, 5942, 5946, 5958, 5968, 5976, 5985, 5994, 5995, 5998, 5999, 6002, 6003, 6004, 6007, 6021, 6026, 6036, 6045, 6057, 6058, 6062, 6070, 6082, 6092, 6105, 6115, 6137, 6147, 6165, 6175, 6185, 6195, 6205, 6215, 6225, 6235, 6245, 6255, 6265, 6275, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6317, 6318, 6319, 6323, 6324, 6327, 6328, 6331, 6333, 6338, 6339, 6350, 6361, 6362, 6363, 6397, 6405, 6413, 6421, 6429, 6437, 6445, 6453, 6461, 6474, 6482, 6490, 6498, 6506, 6514, 6522, 6530, 6538, 6546, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6591, 6592, 6606, 6616, 6626, 6636, 6646, 6656, 6666, 6676, 6686, 6698, 6699, 6704, 6705, 6706, 6707, 6708, 6709, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6724, 6725, 6735, 6741, 6749, 6757, 6765, 6773, 6781, 6789, 6797, 6805, 6813, 6821, 6829, 6837, 6845, 6853, 6861, 6869, 6879, 6880, 6883, 6884, 6894, 6910, 6924, 6950, 6952, 6954, 6956, 6963, 6972, 6973, 6976, 6983, 6990, 6997, 7011, 7019, 7027, 7035, 7043, 7051, 7059, 7067, 7075, 7083, 7091, 7099, 7107, 7115, 7123, 7131, 7139, 7147, 7155, 7163, 7175, 7176, 7180, 7181, 7186, 7187, 7197, 7210, 7220, 7232, 7233, 7236, 7237, 7247, 7257, 7258, 7262, 7266, 7270, 7281, 7294, 7308, 7325, 7326, 7327, 7328, 7329, 7330, 7342, 7370, 7401, 7402, 7406, 7407, 7411, 7412, 7416, 7417, 7420, 7421, 7429, 7440, 7451, 7464, 7465, 7468, 7469, 7472, 7473, 7476, 7477, 7480, 7481, 7482, 7485, 7486, 7487, 7503, 7515, 7528, 7540, 7555, 7556, 7559, 7560, 7564, 7565, 7569, 7570, 7575, 7587, 7594, 7601, 7616, 7617, 7621, 7622, 7637, 7646, 7655, 7664, 7673, 7685, 7686, 7687, 7688, 7689, 7695, 7699, 7714, 7715, 7721, 7731, 7735, 7740, 7748, 7789, 7793, 7797, 7801, 7809, 7810, 7814, 7824, 7825, 7831, 7832, 7839, 7843, 7847, 7851, 7855, 7859, 7863, 7867, 7871, 7875, 7879, 7883, 7887, 7891, 7895, 7899, 7904, 7911, 7915, 7919, 7923, 7927, 7933, 7934, 7941, 7942, 7946, 7947, 7950, 7962, 7966, 7981, 7989, 7997, 8009, 8010, 8015, 8016, 8033, 8043, 8053, 8063, 8073, 8083, 8096, 8106, 8119, 8129, 8142, 8150, 8152, 8154, 8159, 8161, 8166, 8167, 8172, 8190, 8199, 8200, 8204, 8208, 8220, 8231, 8242, 8255, 8256, 8257, 8261, 8273, 8274, 8284, 8296, 8300, 8304, 8308, 8315, 8335, 8345, 8355, 8365, 8377, 8378, 8381, 8382, 8383, 8386, 8387, 8390, 8400, 8409, 8426, 8435, 8444, 8453, 8462, 8471, 8480, 8489, 8498, 8507, 8516, 8525, 8534, 8544, 8554, 8563, 8572, 8581, 8590, 8599, 8608, 8618, 8628, 8638, 8648, 8658, 8668, 8678, 8688, 8698, 8708, 8718, 8728, 8739, 8750, 8761, 8772, 8782, 8792, 8803, 8814, 8824, 8834, 8842, 8851, 8860, 8869, 8878, 8887, 8896, 8905, 8914, 8923, 8937, 8938, 8941, 8942, 8952, 8960, 8968, 8976, 8985, 8993, 9010, 9019, 9028, 9037, 9046, 9055, 9064, 9073, 9082, 9091, 9100, 9109, 9118, 9127, 9136, 9145, 9154, 9163, 9172, 9181, 9190, 9199, 9208, 9217, 9226, 9235, 9244, 9262, 9271, 9272, 9275, 9277, 9283, 9284, 9285, 9286, 9287, 9296, 9304, 9312, 9320, 9328, 9336, 9344, 9352, 9360, 9368, 9376, 9384, 9392, 9400, 9408, 9416, 9424, 9432, 9440, 9448, 9456, 9464, 9472, 9480, 9498, 9517, 9518, 9522, 9526, 9546, 9553, 9561, 9569, 9586, 9599, 9603, 9610, 9619, 9628, 9637, 9646, 9656, 9666, 9684, 9692, 9708, 9725, 9726, 9727, 9732, 9738, 9747, 9748, 9749, 9750, 9751, 9755, 9756, 9759, 9760, 9761, 9762, 9766, 9767, 9768, 9780, 9790, 9791, 9794, 9803, 9809, 9828, 9836, 9843, 9850, 9858, 9866, 9874, 9881, 9888, 9895, 9902, 9909, 9916, 9923, 9932, 9933, 9934, 9938, 9941, 9944, 9947, 9950, 9957, 9959, 9961, 9966, 9968, 9972, 9973, 9974, 9986, 9999, 10012, 10030, 10051, 10052, 10053, 10054, 10064, 10080, 10090, 10091, 10095, 10096, 10100, 10104, 10108, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10139, 10140, 10151, 10158, 10165, 10176, 10193, 10200, 10216, 10233, 10239, 10255, 10268, 10277, 10285, 10293, 10302, 10313, 10324, 10334, 10335, 10346, 10356, 10367, 10378, 10389, 10400, 10409, 10421, 10422, 10436, 10459, 10469, 10480, 10493, 10494, 10506, 10526, 10536, 10547, 10558, 10562, 10569, 10570, 10574, 10581, 10582, 10586, 10587, 10588, 10592, 10593, 10597, 10598, 10601, 10602, 10605, 10606, 10610, 10611, 10615, 10622, 10624, 10629, 10630, 10643, 10650, 10660, 10667, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10689, 10693, 10700, 10707, 10708, 10712, 10713, 10714, 10724, 10734, 10735, 10739, 10740, 10741, 10742, 10752, 10759, 10776, 10795, 10796, 10806, 10812, 10818, 10824, 10840, 10858, 10862, 10870, 10876, 10883, 10889, 10896, 10905, 10906, 10910, 10912, 10917, 10928, 10938, 10948, 10954, 10963, 10972, 10978, 10979, 10990, 11004, 11005, 11016, 11027, 11028, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11041, 11042, 11046, 11047, 11048, 11059, 11077, 11078, 11082, 11087, 11111, 11122, 11123, 11133, 11144, 11147, 11148, 11149, 11150, 11151, 11154, 11155, 11156, 11204, 11205, 11209, 11210, 11225, 11226, 11233, 11241, 11249, 11257, 11265, 11273, 11284, 11285, 11312, 11326, 11341, 11342, 11361, 11365, 11369, 11386, 11393, 11400, 11410, 11411, 11414, 11427, 11428, 11429, 11433, 11434, 11438, 11450, 11458, 11463, 11468, 11473, 11478, 11486, 11494, 11499, 11504, 11511, 11512, 11516, 11517, 11518, 11525, 11526, 11530, 11531, 11535, 11536, 11540, 11544, 11545, 11548, 11557, 11570, 11571, 11572, 11573, 11577, 11578, 11582, 11584, 11600, 11602, 11607, 11610, 11615, 11616, 11624, 11644, 11645, 11647, 11652, 11653, 11657, 11658, 11661, 11662, 11687, 11688, 11692, 11693, 11697, 11698, 11699, 11700, 11701, 11705, 11718, 11725, 11732, 11739, 11740, 11744, 11745, 11749, 11750, 11754, 11755, 11759, 11770, 11771, 11772, 11773, 11777, 11778, 11788, 11794, 11812, 11813, 11817, 11818, 11824, 11829, 11837, 11844, 11852, 11858, 11865, 11900, 11925, 11929, 11955, 11959, 11971, 11984, 11998, 12009, 12024, 12030, 12035, 12041, 12048, 12049, 12057, 12061, 12065, 12071, 12078, 12083, 12084, 12085, 12086, 12090, 12091, 12103, 12104, 12109, 12116, 12123, 12130, 12141, 12142, 12155, 12159, 12166, 12179, 12192, 12193, 12208, 12218, 12230, 12235, 12236, 12239, 12240, 12243, 12244, 12249, 12250, 12255, 12256, 12264, 12269, 12270, 12274, 12278, 12284, 12308, 12318, 12331, 12332, 12336, 12350, 12407, 12421, 12423, 12428, 12430, 12432, 12434, 12439, 12441, 12446, 12454, 12474, 12479, 12486, 12491, 12497, 12502, 12511, 12513, 12516, 12520, 12521, 12522, 12523, 12524, 12525, 12530, 12550, 12551, 12552, 12553, 12564, 12570, 12578, 12579, 12585, 12590, 12595, 12600, 12605, 12610, 12615, 12620, 12626, 12632, 12638, 12645, 12667, 12676, 12680, 12688, 12692, 12700, 12712, 12733, 12737, 12743, 12747, 12760, 12768, 12778, 12780, 12782, 12784, 12786, 12788, 12793, 12794, 12801, 12810, 12818, 12827, 12838, 12846, 12847, 12848, 12852, 12854, 12856, 12858, 12860, 12862, 12864, 12869, 12874, 12880, 12888, 12893, 12900, 12907, 12911, 12915, 12951, 12952, 12954, 12962, 12977, 12979, 12981, 12983, 12985, 12987, 12989, 12991, 12993, 12995, 12997, 12999, 13001, 13003, 13006, 13008, 13010, 13013, 13015, 13017, 13019, 13022, 13027, 13035, 13040, 13048, 13053, 13061, 13066, 13075, 13083, 13091, 13099, 13117, 13125, 13133, 13141, 13149, 13165, 13173, 13181, 13189, 13197, 13205, 13213, 13217, 13221, 13225, 13229, 13237, 13245, 13253, 13261, 13281, 13303, 13314, 13321, 13337, 13342, 13348, 13373, 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393, 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13415, 13419, 13423, 13427, 13432, 13448, 13449, 13450, 13465, 13499, 13501, 13503, 13514, 13538, 13549, 13560, 13567, 13577, 13587, 13596, 13600, 13606, 13613, 13620, 13630, 13637, 13665, 13700, 13711, 13712, 13719, 13725, 13729, 13733, 13737, 13741, 13745, 13749, 13753, 13757, 13761, 13765, 13769, 13773, 13777, 13781, 13785, 13787, 13791, 13800, 13805, 13812, 13827, 13834, 13838, 13842, 13846, 13850, 13857, 13865, 13873, 13877, 13881, 13885, 13889, 13893, 13899, 13903, 13912, 13916, 13920, 13925, 13939, 13941, 13945, 13947, 13949, 13952, 13955, 13958, 13959, 13962, 13970, 13980, 13981, 13984, 13985, 13986, 13991, 13995, 13999, 14003, 14010, 14011, 14019, 14020, 14024, 14025, 14033, 14034, 14038, 14039, 14044, 14052, 14054, 14068, 14071, 14098, 14099, 14102, 14103, 14111, 14118, 14125, 14133, 14142, 14159, 14204, 14212, 14220, 14228, 14236, 14247, 14248, 14249, 14250, 14251, 14265, 14266, 14267, 14270, 14271, 14274, 14277, 14278, 14279, 14282, 14283, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14300, 14302, 14307, 14309, 14314, 14316, 14318, 14320, 14322, 14324, 14336, 14340, 14347, 14351, 14357, 14361, 14370, 14381, 14382, 14385, 14389, 14393, 14399, 14400, 14405, 14409, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14433, 14437, 14444, 14451, 14452, 14468, 14472, 14477, 14481, 14496, 14501, 14505, 14508, 14511, 14512, 14513, 14516, 14523, 14533, 14547, 14548, 14552, 14563, 14564, 14567, 14568, 14571, 14575, 14582, 14586, 14590, 14598, 14609, 14610, 14614, 14615, 14619, 14620, 14623, 14624, 14634, 14635, 14639, 14640, 14643, 14659, 14667, 14675, 14697, 14698, 14709, 14713, 14740, 14742, 14747, 14750, 14753, 14755, 14757, 14759, 14769, 14771, 14782, 14786, 14790, 14794, 14798, 14807, 14814, 14846, 14850, 14856, 14863, 14867, 14871, 14877, 14878, 14880, 14881, 14882, 14886, 14919, 14946, 14950, 14956, 14958, 14975, 14976, 14977, 14982, 14983, 14984, 14989, 14990, 14991, 14992, 14998, 14999, 15000, 15001, 15002, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498 }; #endif #if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "CONCURRENTLY", "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", "CROSS", "CSV", "CUBE", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DESC", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P", "GROUPING", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE", "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P", "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", "MATERIALIZED", "MAXVALUE", "METHOD", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NONE", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM", "PUBLICATION", "QUOTE", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET", "SETS", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STORED", "STRICT_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UNBOUNDED", "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VIEWS", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "CallStmt", "CreateRoleStmt", "opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", "DropRoleStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", "CreateSchemaStmt", "OptSchemaName", "OptSchemaEltList", "schema_stmt", "VariableSetStmt", "set_rest", "generic_set", "set_rest_more", "var_name", "var_list", "var_value", "iso_level", "opt_boolean_or_string", "zone_value", "opt_encoding", "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest", "generic_reset", "SetResetClause", "FunctionSetResetClause", "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list", "constraints_set_mode", "CheckPointStmt", "DiscardStmt", "AlterTableStmt", "alter_table_cmds", "partition_cmd", "index_partition_cmd", "alter_table_cmd", "alter_column_default", "opt_drop_behavior", "opt_collate_clause", "alter_using", "replica_identity", "reloptions", "opt_reloptions", "reloption_list", "reloption_elem", "alter_identity_column_option_list", "alter_identity_column_option", "PartitionBoundSpec", "hash_partbound_elem", "hash_partbound", "AlterCompositeTypeStmt", "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt", "copy_from", "opt_program", "copy_file_name", "copy_options", "copy_opt_list", "copy_opt_item", "opt_binary", "copy_delimiter", "opt_using", "copy_generic_opt_list", "copy_generic_opt_elem", "copy_generic_opt_arg", "copy_generic_opt_arg_list", "copy_generic_opt_arg_list_item", "CreateStmt", "OptTemp", "OptTableElementList", "OptTypedTableElementList", "TableElementList", "TypedTableElementList", "TableElement", "TypedTableElement", "columnDef", "columnOptions", "ColQualList", "ColConstraint", "ColConstraintElem", "generated_when", "ConstraintAttr", "TableLikeClause", "TableLikeOptionList", "TableLikeOption", "TableConstraint", "ConstraintElem", "opt_no_inherit", "opt_column_list", "columnList", "columnElem", "opt_c_include", "key_match", "ExclusionConstraintList", "ExclusionConstraintElem", "ExclusionWhereClause", "key_actions", "key_update", "key_delete", "key_action", "OptInherit", "OptPartitionSpec", "PartitionSpec", "part_strategy", "part_params", "part_elem", "table_access_method_clause", "OptWith", "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateStatsStmt", "CreateAsStmt", "create_as_target", "opt_with_data", "CreateMatViewStmt", "create_mv_target", "OptNoLog", "RefreshMatViewStmt", "CreateSeqStmt", "AlterSeqStmt", "OptSeqOptList", "OptParenthesizedSeqOptList", "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list", "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler", "validator_clause", "opt_validator", "DropPLangStmt", "opt_procedural", "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt", "CreateExtensionStmt", "create_extension_opt_list", "create_extension_opt_item", "AlterExtensionStmt", "alter_extension_opt_list", "alter_extension_opt_item", "AlterExtensionContentsStmt", "CreateFdwStmt", "fdw_option", "fdw_options", "opt_fdw_options", "AlterFdwStmt", "create_generic_options", "generic_option_list", "alter_generic_options", "alter_generic_option_list", "alter_generic_option_elem", "generic_option_elem", "generic_option_name", "generic_option_arg", "CreateForeignServerStmt", "opt_type", "foreign_server_version", "opt_foreign_server_version", "AlterForeignServerStmt", "CreateForeignTableStmt", "AlterForeignTableStmt", "ImportForeignSchemaStmt", "import_qualification_type", "import_qualification", "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt", "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck", "RowSecurityDefaultToRole", "RowSecurityOptionalToRole", "RowSecurityDefaultPermissive", "RowSecurityDefaultForCmd", "row_security_cmd", "CreateAmStmt", "am_type", "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", "TriggerOneEvent", "TriggerReferencing", "TriggerTransitions", "TriggerTransition", "TransitionOldOrNew", "TransitionRowOrTable", "TransitionRelName", "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen", "FUNCTION_or_PROCEDURE", "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", "ConstraintAttributeSpec", "ConstraintAttributeElem", "CreateEventTrigStmt", "event_trigger_when_list", "event_trigger_when_item", "event_trigger_value_list", "AlterEventTrigStmt", "enable_trigger", "CreateAssertionStmt", "DefineStmt", "definition", "def_list", "def_elem", "def_arg", "old_aggr_definition", "old_aggr_list", "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt", "opt_if_not_exists", "CreateOpClassStmt", "opclass_item_list", "opclass_item", "opt_default", "opt_opfamily", "opclass_purpose", "opt_recheck", "CreateOpFamilyStmt", "AlterOpFamilyStmt", "opclass_drop_list", "opclass_drop", "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt", "ReassignOwnedStmt", "DropStmt", "drop_type_any_name", "drop_type_name", "drop_type_name_on_any_name", "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt", "opt_restart_seqs", "CommentStmt", "comment_type_any_name", "comment_type_name", "comment_text", "SecLabelStmt", "opt_provider", "security_label_type_any_name", "security_label_type_name", "security_label", "FetchStmt", "fetch_args", "from_in", "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list", "privilege", "privilege_target", "grantee_list", "grantee", "opt_grant_grant_option", "GrantRoleStmt", "RevokeRoleStmt", "opt_grant_admin_option", "opt_granted_by", "AlterDefaultPrivilegesStmt", "DefACLOptionList", "DefACLOption", "DefACLAction", "defacl_privilege_target", "IndexStmt", "opt_unique", "opt_concurrently", "opt_index_name", "access_method_clause", "index_params", "index_elem", "opt_include", "index_including_params", "opt_collate", "opt_class", "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list", "function_with_argtypes_list", "function_with_argtypes", "func_args_with_defaults", "func_args_with_defaults_list", "func_arg", "arg_class", "param_name", "func_return", "func_type", "func_arg_with_default", "aggr_arg", "aggr_args", "aggr_args_list", "aggregate_with_argtypes", "aggregate_with_argtypes_list", "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item", "func_as", "transform_type_list", "opt_definition", "table_func_column", "table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list", "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", "oper_argtypes", "any_operator", "operator_with_argtypes_list", "operator_with_argtypes", "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt", "opt_if_exists", "CreateTransformStmt", "transform_element_list", "DropTransformStmt", "ReindexStmt", "reindex_target_type", "reindex_target_multitable", "reindex_option_list", "reindex_option_elem", "AlterTblSpcStmt", "RenameStmt", "opt_column", "opt_set_data", "AlterObjectDependsStmt", "AlterObjectSchemaStmt", "AlterOperatorStmt", "operator_def_list", "operator_def_elem", "operator_def_arg", "AlterOwnerStmt", "CreatePublicationStmt", "opt_publication_for_tables", "publication_for_tables", "AlterPublicationStmt", "CreateSubscriptionStmt", "publication_name_list", "publication_name_item", "AlterSubscriptionStmt", "DropSubscriptionStmt", "RuleStmt", "RuleActionList", "RuleActionMulti", "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead", "NotifyStmt", "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt", "opt_transaction", "transaction_mode_item", "transaction_mode_list", "transaction_mode_list_or_empty", "opt_transaction_chain", "ViewStmt", "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_items", "createdb_opt_item", "createdb_opt_name", "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt", "AlterCollationStmt", "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with", "CreateConversionStmt", "ClusterStmt", "cluster_index_specification", "VacuumStmt", "AnalyzeStmt", "vac_analyze_option_list", "analyze_keyword", "vac_analyze_option_elem", "vac_analyze_option_name", "vac_analyze_option_arg", "opt_analyze", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list", "vacuum_relation", "vacuum_relation_list", "opt_vacuum_relation_list", "ExplainStmt", "ExplainableStmt", "explain_option_list", "explain_option_elem", "explain_option_name", "explain_option_arg", "PrepareStmt", "prep_type_clause", "PreparableStmt", "ExecuteStmt", "execute_param_clause", "DeallocateStmt", "InsertStmt", "insert_target", "insert_rest", "override_kind", "insert_column_list", "insert_column_item", "opt_on_conflict", "opt_conf_expr", "returning_clause", "DeleteStmt", "using_clause", "LockStmt", "opt_lock", "lock_type", "opt_nowait", "opt_nowait_or_skip", "UpdateStmt", "set_clause_list", "set_clause", "set_target", "set_target_list", "DeclareCursorStmt", "cursor_name", "cursor_options", "opt_hold", "SelectStmt", "select_with_parens", "select_no_parens", "select_clause", "simple_select", "with_clause", "cte_list", "common_table_expr", "opt_materialized", "opt_with_clause", "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause", "opt_sort_clause", "sort_clause", "sortby_list", "sortby", "select_limit", "opt_select_limit", "limit_clause", "offset_clause", "select_limit_value", "select_offset_value", "select_fetch_first_value", "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", "group_by_list", "group_by_item", "empty_grouping_set", "rollup_clause", "cube_clause", "grouping_sets_clause", "having_clause", "for_locking_clause", "opt_for_locking_clause", "for_locking_items", "for_locking_item", "for_locking_strength", "locked_rels_list", "values_clause", "from_clause", "from_list", "table_ref", "joined_table", "alias_clause", "opt_alias_clause", "func_alias_clause", "join_type", "join_outer", "join_qual", "relation_expr", "relation_expr_list", "relation_expr_opt_alias", "tablesample_clause", "opt_repeatable_clause", "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", "opt_ordinality", "where_clause", "where_or_current_clause", "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement", "xmltable", "xmltable_column_list", "xmltable_column_el", "xmltable_column_option_list", "xmltable_column_option_el", "xml_namespace_list", "xml_namespace_el", "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime", "ConstInterval", "opt_timezone", "opt_interval", "interval_second", "a_expr", "b_expr", "c_expr", "func_application", "func_expr", "func_expr_windowless", "func_expr_common_subexpr", "xml_root_version", "opt_xml_root_standalone", "xml_attributes", "xml_attribute_list", "xml_attribute_el", "document_or_content", "xml_whitespace_option", "xmlexists_argument", "xml_passing_mech", "within_group_clause", "filter_clause", "window_clause", "window_definition_list", "window_definition", "over_clause", "window_specification", "opt_existing_window_name", "opt_partition_clause", "opt_frame_clause", "frame_extent", "frame_bound", "opt_window_exclusion_clause", "row", "explicit_row", "implicit_row", "sub_type", "all_Op", "MathOp", "qual_Op", "qual_all_Op", "subquery_Op", "expr_list", "func_arg_list", "func_arg_expr", "type_list", "array_expr", "array_expr_list", "extract_list", "extract_arg", "overlay_list", "overlay_placing", "position_list", "substr_list", "substr_from", "substr_for", "trim_list", "in_expr", "case_expr", "when_clause_list", "when_clause", "case_default", "case_arg", "columnref", "indirection_el", "opt_slice_bound", "indirection", "opt_indirection", "opt_asymmetric", "opt_target_list", "target_list", "target_el", "qualified_name_list", "qualified_name", "name_list", "name", "database_name", "access_method", "attr_name", "index_name", "file_name", "func_name", "AexprConst", "Iconst", "Sconst", "SignedIconst", "RoleId", "RoleSpec", "role_list", "ColId", "type_function_name", "NonReservedWord", "ColLabel", "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", "reserved_keyword", YY_NULLPTR }; #endif # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 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, 60, 62, 61, 718, 43, 45, 42, 47, 37, 94, 719, 91, 93, 40, 41, 46, 59, 44, 58 }; # endif #define YYPACT_NINF -4879 #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-4879))) #define YYTABLE_NINF -2631 #define yytable_value_is_error(Yytable_value) \ (!!((Yytable_value) == (-2631))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const int yypact[] = { 5549, 45, 15180, -4879, -4879, 45, 62970, -4879, 70739, 542, 746, 80, 194, 14038, 71196, 78508, 761, 330, 14376, 45, 78508, 2227, 54287, 67997, 914, 78508, 1288, 985, 54287, 78508, 78965, 1104, 1236, 234, 79422, 71653, 66626, 90, 78508, 1386, 1010, 79879, 72110, 1261, 72567, 985, 50659, 148, 1219, 80336, 78508, 1790, 1707, 1244, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 19, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 2207, -4879, 1179, 2370, 1501, 769, 1341, -4879, -4879, 1825, 62970, 78508, 78508, 78508, 1597, 78508, 1502, 78508, 212, 62970, 58857, 73024, 1650, 1517, 46997, 80793, -4879, 62970, 78508, 57029, 62970, 78508, 78508, 81250, 78508, 78508, 78508, 663, 69368, 78508, 1586, 78508, 78508, 57486, 81707, 1742, 1538, 241, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 1539, 1015, -4879, 245, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 78508, 13355, 1288, 1825, -4879, 1790, 78508, 1831, 78508, 1619, 82164, 1714, 78508, -4879, 78508, 1736, 82621, 218, 1613, 58857, 1810, 47455, 1819, 78508, 78508, 58857, 83078, 83535, 83992, 78508, 78508, -4879, -4879, 1813, 78508, 78508, -4879, 1939, 59314, 1486, 1986, 2159, 2040, 658, -4879, 73481, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 62056, 330, -4879, -4879, 2015, 63427, 2082, -4879, -4879, 84449, 100831, 1865, -4879, 810, 63884, 59771, 2202, 1866, 47913, 2233, -4879, 64341, -4879, 60228, 64798, -4879, -4879, -4879, -4879, -4879, 84906, -4879, 85363, 1958, 2082, -4879,101274, 60685, -4879, 2100, 85820, 86277, 86734, 1825, 1843, 1388, 981, 42851, -4879, -4879, -4879, 542, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 252, 1523, 273, 207, 275, -4879, -4879, 223, 224, 236, 252, 2315, 2315, -4879, 78508, -4879, -4879, 1523, 88, 1869, 1869, 1869, 2087, 1051, -4879, 1869, 2008, -4879, -4879, -4879, -4879, 72567, -4879, 1883, 1288, 1901, 2335, 1984, -4879, -4879, -4879, -4879, -4879, 1980, 2347, 2347, 78508, -4879, -4879, 2392, 2004, 2278, 1997, -4879, -4879, -4879, 2197, 2231, 2230, 178, 1288, 260, -4879, 2356, -4879, 2274, 29740, 29740, 1288, 73938, 87191, 235, 62056, 1288, 74395, 2061, 1400, 2283, -4879, -4879, -4879, 711, -4879, 2507, 2101, 2362, 1997, 1538, 44230, -4879, 2098, 1015, 72567, -4879, -4879, -4879, 61142, 2420, 31636, 78508, 2120, -4879, 2133, 2120, 2146, 2156, 1501, -4879, 5549, 61142, 78508, 1424, 1424, 2585, 1424, 1943, 1993, -4879, 2403, -4879, 2480, 2441, 72567, 2178, 306, -4879, 1267, 2183, 1359, 2190, 1316, 1412, -4879, -4879, 805, 78508, 304, 2238, 74852, 6714, 2198, 1015, 2244, -4879, -4879, -4879, 2401, 385, -4879, -4879, -4879, -4879, 2497, 2550, 2931, 340, 75309, -4879, -4879, -4879, -4879, 78508, 78508, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 2271, 709, -4879, -4879, 2270, 2615, 2514, 6733, 1195, 2600, 2470, 1460, 8014, 2535, 1511, 2670, 8270, 1525, 1334, 1336, 75766, 78508, 2625, 2672, 7454, 1888, 1008, 2555, 1082, 2600, 2688, 2505, 1460, 2701, 8450, 78508, -4879, 2643, 2758, 109, -4879, 163, -4879, 24611, 31636, 50202, -4879, 1015, 2453, 2617, 809, 2645, 62970, 2416, -4879, -4879, 78508, -4879, -4879,101717, 2492, -4879, 813, 62970, -4879, 2644, 2481, 48371, 78508, 62970, -4879, -4879, 62970, 78508, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 2575, 2798, 78508,101717, -4879, 2745, 78508, 78508, -4879, -4879, 2490, -4879, -4879, -4879, -4879, 1869, 78508, 2907,101717, 2724, 146, 78508, 1367, 2963, 78508, 2748, 1367, 2564, 87648, -4879, -4879, 1367, -4879, -4879, -4879, 78508, 78508, 2540, 1692, 2761, 2878, 1367, 2778, 2994, 2995, 2785, 2633, 2788, 2133, 2960, 2760, 1078, 1200, 177, 1745, 1367, 2614, 88105, 88562, 78508, 2621, 78508, 2347, 62970, 62970, 62970, 78508, 2889, -4879, 2752, -4879, -4879, 1229, -4879, -4879, -4879, -4879, -4879, 2903, -4879, 169, 2914, 2587, 2921, -4879, -4879, -4879, 2639, -4879, 2639, 2639, 2593, 2593, 2774, 2599, 2930, -4879, -4879, -4879, 405, 2639, 2593, -4879,102603, -4879, 1664, 1719, -4879, 270, -4879, 3045, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 2604, -4879, 1027, 1759, -4879, -4879, 2638, -4879, 2938, 286, -4879, 2939, -4879, 2607, 89019, -4879, 89476, 89933, 2942, 315, -4879, 58857, 2943, 286, 2945, 2607, 2946, 286, 2947, 263, 2949, -4879, 1220, 2944, 2950, 270, 2954, 1820, 2607, 62513, 2959, 321, -4879, 2962, 433, -4879, 2964, 2837, -4879, 31636, -4879, 2728, -4879, 1219, -4879, 1536, -4879, 53373, -4879, 981, 1523, -4879, 78508, 1523, 78508, 1523, 78508, 1523, 78508, 1523, 78508, 78508, 78508, 1523, -4879, -4879, -4879, 78508, 2651, 78508, 78508, -4879, -4879, -4879, 68454, 58857, 68911, -4879, 78508, -4879, 415, 1288, -4879, -4879,101717, 3085, 58857, 2347, -4879, 1690, -4879, -4879, 78508, 78508, -4879, -4879, -4879, 2900, 78508, 2970, 2971, 68454, 58857, -4879, 90390, -4879, 62056, 2861, 2656, -4879, -4879, -4879, -4879, -4879, 1907, 3128, 204, 3129, 31636, 2659, 204, 204, 2660, 2983, -4879, -4879, -4879, 282, 2671, 2673, -4879, 255, 255, -4879, 2674, 2675, -4879, 261, 2677, 2681, 3137, 3141, 271, 2689, 2690, 2692, 405, 204, 31636, -4879, 2693, 255, 2696, 2698, 2704, 3162, 2705, -4879, 3172, 2706, 220, 324, 2708, 2710, -4879, 2674, -4879, 292, 2711, 2712, 2713, 2715, 2716, 2721, 2722, 2725, 31636, 31636, 31636, -4879, 28318, 1015, 1288, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 297, 4670, -4879, 2762, -4879, -4879, 2919, -4879, -4879, 31636, -4879, -4879, 106, -4879, 299, -4879, -4879, -4879, 1015, 2999, 2729, -4879, -4879, 1443, 2730, -4879, 1882, -4879, -4879, -4879, -4879, -4879, -4879, 61599, 3173, -4879, 329, 1288, 163, 369, 3117, 52459, 52916, -4879, -4879, 2990, -4879, 78508, -4879, -4879, 1015, 187, 1705, -4879, -4879, 53373, -4879, -4879, 542, 12775, 1867, 2120, 78508, 78508, 3180, -4879, -4879, -4879, 1894, -4879, 2741, -4879, 2133, -4879, -4879, 1501, 1501, 31636, 1501, 1321, 1190, 30214, 32110, 3064, 2957, 826, 1346, 3066, -4879, 2965, 1943, 1993, 72567, 78508, 90847, 2872, 31636, -4879, 3170, 2836, 2839, 2895, 51573, -4879, 2842, 2811, 2847, 2902, 55201, 2768, 2852, 2853, 2908, -4879, 3027, -4879, -4879, 2856, 2858, 91304, -4879, -4879, 842, -4879, -4879, -4879, 842, -4879, 2799, 1282, 983, 1344, 2866, 332, 240, 3181, -4879, 1132, -4879, -4879, 2923, -4879, 8026, 78508, 3121, 9588, 3000, 340, 3001, 2920, -4879, -4879, 3052, 2876, 78508, 2877, 3019, 340, 302, 91761, -4879, -4879, 78508, -4879, -4879, -4879, -4879, 3313, 27431, -4879, 1925, 2882, 2862, 2892, 78508, 65712, 1976, 2993, 3014, 3016, 1409, 2090, 559, 2952, 78508, 293, 3022, 78508, 2813, 2896, 2897, 3112, 2821, 678, 3218, 2823, -4879, -4879, -4879, -4879, 2194, 2204, 3020, -4879, 3119, 3158, 9232, 2888, 2894, 99502, -4879, 2915, 42, 48829, 78508, 78508, 3047, 2922, 2926, 92218, 3313, 2932, 2940, 2933, 2935, 37, 3223, 1331, 2936, -4879, -4879, -4879, 1331, 3065, 2951, 2953, 92675, 3313, 78508, 2955, 2958, 78508,102603, 340, -4879, 3282, 340, 340, 1776, 3287, 2966, 209, 3102, 2210, 1367, 2823, 2820, -4879, 2967, 2969, 314, -4879, 3076, 2974, 2975, 3008, 1288, -4879, -4879, 2976, 3048, 2977, 666, -4879, -4879, 31, 2972, 72567, 3068, 3070, 356, 2219, 2823, -4879, 2978, 2980, 2821, 2821, 78508, 78508, 78508, 78508, 78508, 331, 3319, 3320, 2981, 265, 3024, 2899, -4879, 1331, 57943, 2984, -4879, 1331, 78508, 2992, 2329, 2823, 1627, 1313, -4879, -4879, -4879, 1538, -4879, 31636, 31636, 31636, 2891, -4879, 1973, 12775, 667, -4879, 301, 11074, 2909, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 78508, -4879, 78508, -4879, 3184,101717, 3125, 3186, -4879, 2956, -4879, 3187, 340, -4879, 78508, 78508, 3188, 3131, 3192, 3193, 3136, 1223, 101717, 3139, 3200, -4879, 3201, 3202, 3017, 174, 3010, 2961, 3380, 3272, 78508, 55201, -4879, 3396, 842, -4879,101717, 3152, 3276, -4879, 78508, 3174, 804, -4879, 3315, 3011, -4879, -4879, 698, 78508, 289, 2997, -4879, -4879, 3286, 58857, 1353, 3288, 1288, 3002, 3292, 3175, 1288, 58857, 3208, 78508, 78508, 78508, 78508, -4879, -4879, 3177, 191, 717, -4879, 57943, 3189, -4879, 78508, 3195, 2820, 3196, 3417, 78, 1869, 93132, 3296, 93589, 2985, 2987, 2987, 3421,101717, 3242, -4879, 1923, -4879, 3114, -4879, 62970, -4879, -4879, 62970, -4879, -4879,101717, 78508, -4879, 2988, -4879, -4879, 31636, -4879, -4879, -4879, 2315, -4879,101717, 2639, 2639, -4879, -4879, 3431, 3072, 3074, 2315, -4879, 2315, -4879,101717, -4879, 2996, 3007, 2315, 3077, 3078, 3095, -4879, 3018, 3096, 2315, -4879, -4879, 1924, -4879, -4879, 62970, 62970, -4879, 58857, 58857, 3327, 321, 3352, 3079, 3354, 3081, 48829, 48829, -4879, 443, 62970, -4879, 58857, 62970, -4879, 78508, -4879, 78508, -4879, -4879, -4879, -4879,101717,101717, -4879, 58857, 57943, 3356, 3357, 263, 78508, 78508, -4879, 78508, 78508, -4879, 78508, 78508, 1896, 94046, 981, 61142, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 78508, -4879, 78508, -4879, 78508, -4879, 78508, -4879, 78508, -4879, -4879, -4879, 78508, -4879, 78508, 1912, -4879, -4879, 1946, 1452, 78508, 78508, 226, 62970, 78508, 3241, 62970, 62970, 78508, 78508, 78508, 78508, 78508, 3109, 2730, 1402, -4879, 296, 872, 72567, 3252, -4879, -4879, 1948, 1790, 1114, 78508, 1442, 1980, -4879, -4879, -4879, -4879, 68911, 67997, 3348, 151, 78508, -4879, -4879, 5942, 31636, 1015, 29266, -4879, -4879, 12775, 3080, 31636, 31636, 3038, 2315, 2315, -4879, 943, 31636, 31636, 31636, 2315, 2315, 5738, 31636, 48829, 31636, 36850, 25561, 31636, 31636, 28792, -4879, 31636, 3271, 38260, 31636, 369, 3273, 31636, 369, 5738, 3506, 3506, 2092, 4758, 3040, 1015, -4879, 2315, 1039, -4879, 432,101717, 31636, 31636, 31636, 31636, 55201, 3127, 325, 78508, 31636, 3049, 2242, -4879, 31636, -4879, 3053, 31636, 3126, 931, 31636, 31636, 31636, 31636, 31636, 31636, 31636, 31636, 31636, -4879, 39637, 455, 3358, 3377, 58, 410, 76223, 29740, 3369, 24611, -4879, 217, 3369, -4879, -4879, -4879, 78508, 3173, -4879, -4879, 3135, -4879, -4879, -4879, -4879, -4879, 309, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3056, -4879, -4879, -4879, -4879, 3056, -4879, 3060, 3360, 3361, 263, 78508, 61142, -4879, -4879, -4879, 2161, -4879, 31636, -4879, 1954, 1677, 78508, 78508, -4879, 3337, -4879, 3067, -4879, 11112, 3337, -4879, -4879, 37318, 3190, 3332, 3281, -4879, -4879, -4879, 3073, 12775, 32584, 32584, -4879, 1989, 12775, 2056, -4879, -4879, -4879, -4879, -4879, -4879, 739, -4879, 78508, 1067, 3064, 1346, 3134, 799, 3511, 78508, -4879, 44689, 1963, -4879, 58857, 78508, 78508, 3277, -4879, 3503, -4879,102603, -4879, 3084, -4879,102160, 98159, -4879, -4879, 634, -4879, 934, 58857, -4879, 78508, 78508, -4879, 55201, 58857, 78508, 78508, -4879, 58857, 78508, 78508, -4879, -4879, -4879, -4879, -4879, 53830, 85, 67997, 3219, 67083, -4879, -4879, 3089, 78508, 3156, 3364, 3365, 25, -4879, -4879, 94503, -4879, 3322, 58857, 78508, 78508, 31636, 3323, 78508, 78508, -4879, 541, 3182, 3191, -4879, 78508, 3194, 3344, 62970, 3108, 78508, 78508,101717, 3183, 834, 62970, 3154, 49287, 62970, 62970, 78508, 78508, 78508, 78508, 3243, 3429,101717, 78508, 3379, 141, 72567, 250, 2386, 2823, 3333, -4879, 3450, 1215, -4879, 58857, -4879, 78508, 3334, -4879, -4879, -4879, 76680, 3558, 3237, -4879, -4879, -4879, 94960, -4879, -4879, -4879, 1970, -4879, 58857, 58857, 78508, 10134, 95417, 1333, 3350, -4879, -4879,101717, -4879, 78508, 77137, 78508, 78508, 3458, 3385, 78508, 69825, 95874, 96331, 1418, 1420, 3389, 78508, 70282, 3390, -4879, 3280, 78508, -4879, -4879, 55658, 58857, 78508, 1122, 55201, -4879, -4879, 78508, -4879, 269, -4879, 78508, 4151, -4879, -4879, 3224, 3227, 78508, 3351, 469, 2499, 2823, 78508, 78508, 3142, 1978, 58857, 78508, 55201, -4879, 3355, 110, 3475, 58857, 78508, 76680, -4879, 72567, 72567, 58857, 78508, 72567, -4879, 78508, 87191, -4879, 58857, 1056, -4879, 3477, 58857, 78508, 76680, -4879, 3304, 58857, 78508, 12446, -4879, -4879, -4879, 340, -4879, -4879, -4879, -4879, -4879, 78508, 78508, 340, 78508, 78508, 340, 1379, -4879, 58857, 78508, -4879, -4879, -4879, 58857, 78508, 78508, -4879, 58857, 2997, 78508, 55201, -4879, 78508, 9351, 78508, 78508, 78508, 78508, 78508, 78508, 58857, 78508, -4879, -4879, 1174, 92, 1156, 1484, 800, 78508, 3447, 78508, 96788, 58857, 78508, 78508, 1288, 78508, 1263, -4879, -4879, 3284, -4879, 58857, 1056, -4879, 11735, 78508, 78508, 3233, 3236, 232, 3328, -4879, -4879, -4879, 700, 700, 3366, -4879, 31636, 31636, 30688, 3168, -4879, -4879, 31636, -4879, -4879, -4879, 345, 3611, 97245, 345, -4879, 345, 3438, 3228, 3229, 345, 78508, 345, 345, 78508, -4879, -4879, -4879, -4879, 3436, 78508, 345, 345, 345, 3345, -4879, -4879, 3345, 760, 31636,101717, 78508, -4879, 1991, -4879, 3197, 191, -4879, -4879, 55201, 78508, 208, 958, 3513, 3399, 66169, 2166, 3502, 78508, 3232, 78508, 3631, 3289, 72567, 2540, -4879, 2166, 78508, -4879, 1477, 67997, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 78508, -4879, -4879, 3507, 78508, 31636, 3362, -4879, 1288, 2540, 2540, 2540, 2540, -4879, -4879, -4879, -4879, 3404, 203, -4879, 3204, 2540, 78508, 3324, 3526, 2166, 3207, 3527, -4879, 2820, 3530, 1318, 78508, 3414, 66169, 3265, 3247, 3434, 3654, 1869, 1288, 3437, 3423, -4879, 52016, -4879, 2540, 27874, 6877, 7081, 3424, 3480, 62056, 3518, 3519, 3540, -4879, 169, -4879, 3664, -4879, 31636, 2000, 3230, 270, -4879, -4879, 3231, 3007, 3250, 3251, 3234, 3244, -4879, 2315, 229, 3245, 1057, 843, 3367, 2315, 3470, 3246, -4879, 286, -4879, 2607, -4879, 78508, -4879, 78508, 78508, 78508, 78508, 315, -4879, -4879, 286, 2607, 286, 263, -4879, 3509, 270, 2607, 3372, 3568, 62056, -4879, 321, -4879, 433, -4879, 3459, 263, -4879, 3473, 1869, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 2014, -4879, 78508, -4879, 3542, 3544, 3545, 3546, 3547, 3255, 3256, 3294, 78508, 3258, 3255, 340, 3258, 3258, 3255, 2730, 2730, 3255, 3256, 58400, 3716, 3571, -4879, 3347, 3266, 3582, 221, -4879, 225, 122, 3504, -4879, -4879, -4879, -4879,101717, -4879, 58857, 3309, 2347, 2347, -4879, 349, 3481, 3269, 58400, 3698, 263, -4879, 62970, -4879, -4879,101717, 3353, 3368, 62970, 3489, 3326, 62970, -4879, -4879, 62970, -4879, -4879, -4879, -4879, -4879,101717, -4879, 3539, 78508, 78508, 2030, -4879, -4879, 1632, -4879, 1766, 31636, 195, -4879, 11604, 2036, 31636, 3283, 3290, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3293, 3596, -4879, 2050, 2071, 2091, 3297, 3299, 3408, 3300, 12069, 3301, 3285, 36850, 36850, 28318, 2523, -4879, 36850, 3306, 3482, 2104, 11195, 3291, 3310, 12132, 31162, 31636, 31162, 31162, 12546, 3291, 3311, 2112, 55201, 3476, 12618, 2113, -4879, 31636, 55201, 4251, 31636, -4879, 31636, 3314, -4879, -4879, 3764, 3764, 3764, 5738, -4879, 3331, -4879, 36850, 36850, -4879, 1405, 28318, -4879, -4879, 3602, -4879, -4879, 1429, -4879, 3317, -4879, -4879, 2647, 48829, 6328, 31636, 407, 31636, 3049, 31636, 3376, 3764, 3764, 3764, 391, 391, 246, 246, 246, 431, 410, -4879, -4879, -4879, 3318, 3321, 3325, 3515, 3329, 31636, -4879, 2020, 2096, 78508, 2740, 2968, 3768, -4879, -4879, -4879, 40556, 3363, 667, 3363, -4879, 1538, 2315, 1039, 53373, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 78508, 12775, -4879, -4879, 3559, 3330, -4879, -4879, 31636, -4879, -4879, 1950, 3339, 84, 3532, 2247, 2247, 1989, 3533, -4879, -4879, 3391, -4879, 31636, 2169, -4879, 2277, -4879, -4879, -4879, -4879, 2730, -4879, 3574, -4879, -4879, -4879, 40556, 3374, 3382, 83, 43770, 3543, -4879, 78508, -4879, 78508, 357, -4879, 3349, -4879, -4879, -4879, -4879, -4879, -4879, 98159, 1759, -4879,102160, -4879,102160, -4879, 1759, 3760, -4879, 98159, 1835, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 58857, 58857, 3548, 78508, 3550, 3549, 31636, 1018, 78508, 3340, 3359, 1426, 3624, 78508, -4879, 3674, 263, -4879, -4879, 3426, -4879, 12775, -4879, -4879, -4879, -4879, -4879, 58857, 78508, -4879, 62056, -4879, 78508, -4879,101717, -4879, -4879, -4879, 78508, 3381, 78508, -4879, 78508, 78508, 78508, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 1295, 101717, -4879, -4879, 78508, 78508, 747, 3428, 3430, 78508, -4879, 833, 3076, 12129, 78508, 78508, 78508, 3627, 78508, -4879, -4879, -4879, -4879, 3570, -4879, -4879, 98159, -4879, 2607, 1091, 3435, 2823, 3577, -4879, 3687, 3561, -4879, 3483, 1240, -4879, -4879, 78508, 3490, -4879, -4879, -4879, -4879, 3691, 263, 3694, 263, 78508, 78508, 78508, 78508, 3493, -4879, -4879, -4879, -4879, 3496, 3623, -4879, 55201, 55201, 55201, 2117, -4879, -4879, 1288, -4879, -4879, -4879, -4879, -4879, -4879, 3657, -4879, 2119, -4879, 1350, -4879, -4879, -4879, -4879, -4879, 58857, 78508, 13277, 3701, 78508, 78508, 78508, 1771, -4879, 1230,101717, -4879, 99945, -4879, -4879, 2134, -4879, 3386, 78508, 3453, 58857, 3432, 78508, -4879, -4879, -4879, 3375, 3375, -4879, -4879, 3375, -4879, -4879, -4879, 3632, 3565, -4879, 348, 3572, 58857, 3445, -4879, 78508, -4879, -4879, -4879, 3467, -4879, -4879, 3472, 2588, 2823, 2820, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 1471, -4879, -4879, 1149, 468, 2662, 2823, -4879, 341, -4879, 3484, -4879, 3486, -4879, -4879, -4879, 3639, 3649, 3656, 3495, 3497, 3552, 3499, 3500, 3555, -4879, 3505, 3557, 3508, 3564, 3618, 3514, 263,101717, 3647, 1288, 3554, 3766, 263, -4879, 3516, -4879, 3517, -4879, 3875, -4879, 78508, -4879, 3531, 2723, 2823, -4879, -4879, 58857, 78508, -4879, -4879, -4879, 31636, 3446, 3456, 3457, 12775, 12775, 31636, -4879, -4879, 12775, 3449, -4879, -4879, -4879,101717, 78508, 3718, -4879, -4879, 345, 78508, 78508, -4879, 3729, -4879, -4879, 3730, 78508, 3732, -4879, -4879, -4879, -4879, 419, 419, -4879, -4879, 3767, 5513, 3466, 411, -4879, 55201, 46069, 1995, 2128, 756, 1367, -4879, 62056, 78508, 62056, -4879, 958, 3561, 78508, 78508, 78508, 3468, 3469, -4879, -4879, -4879, -4879, 58857, 935, 58857, 2315, -4879, -4879, 3541, -4879, 78508, 1869, 3944, 3794, -4879, 3375, -4879, 3910, 2995, 1353, 3629, 1765, 2633, 3851, 2133, 404, 55201, 3247, -4879, -4879, -4879, -4879, 78508, 78508, 191, 1288, -4879, 3485, 3478, -4879, 78508, 3802, 78508, 78508, 78508, 78508, 3309, 3488, 78508, 3492,101717, 78508, 2273, 2821, 3926, 3819, 1790, 3265, 3573, 3821, 72567, 3512, 2138, -4879, -4879, -4879, 2145, 155, -4879, 1288, 62056, 99059, 3813, -4879, 7081, -4879, -4879, 7081, 1004, 78508, 3797, -4879, -4879, 1790, -4879,101717, 2150, -4879, -4879, -4879, 2315, -4879, -4879, 1544, 1544, 3501, -4879, 3510, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3520, -4879, -4879, -4879, 321, 3563, 263, 3566, 263, -4879, -4879, -4879, -4879, 78508, -4879, 78508, 57943, 263, -4879, -4879, 78508, -4879, 3828, -4879, -4879, 3635, 3636, 3641, 3644, 3648, 78508, 3255, -4879, 3524, 58857, 1592, -4879, -4879, 3720, -4879, -4879, 72567, 3637, -4879, -4879, -4879, -4879, 3852, 3854, -4879, -4879, -4879, 277, -4879, 78508, 78508, 58857, 68454, 480, 58857, -4879, 3785, 3786, -4879, -4879, 3790, 340, -4879, 3798, 3799, 3800, -4879, 3805, 3806, -4879, -4879, -4879, 3537, 12706, 31636, -4879, 3869, 101717, -4879, 5592, -4879, -4879, -4879, 31636, -4879, -4879, -4879, -4879, -4879, 31636, -4879, 31636, 3853, -4879, 26036, 4009, 4009, 3551,101717, 36850, 36850, 36850, 36850, 1437, 2696, 36850, 36850, 36850, 36850, 36850, 36850, 36850, 36850, 36850, 37792, 571, -4879, 3740, 31636, 31636, 3865, 3853, -4879,101717, 3553, 3291, 3556, 3562, 31636, -4879, -4879, 2152, 38719, 3567, 55201, -4879, 31636, 11416, 2154, 3594, 12935, 1015, 6034, 1288, 31636, 3850, 4354, 31636, 2167, 31636, 3863, -4879, -4879, -4879, 3560, -4879, -4879, 101717, 31636, 3569, 3781, 36850, 36850, 4374, -4879, 4877, 31636, 28318, -4879, 3366, 3592, 45148, -4879, 26511, 3575, 985, 985, 985, 985, -4879, 78508, 78508, 78508, 41015, 3877, 3581, 40096, 77594, 3578, 2666, -4879, 77594, 78051, 77594, -4879, 3576, -4879, 1015, 31636, 3860, 3585, 3860, 163, 3586, -4879, -4879, -4879, -4879, 1790, -4879, 3588, -4879, 3339, 1382, -4879, -4879, -4879, 3771, -4879, -4879, -4879, -4879, 3578, 33058, 3717, -4879, -4879, -4879, 3625, 2172, -4879, -4879, 3966, 3717, -4879, -4879, 2187, 44689, 3374, 31636, 1015, 2193, 1854, -4879, -4879, 98159, -4879, 3659, 2607, 2607, 1749, 3255, 3893, 1749, 6256, -4879, -4879, 41474, 78508, 78508, -4879, 78508, 2199, 1489, 78508, -4879, 78508, -4879, -4879, -4879, -4879, 4032, -4879, 78508, -4879, -4879, 3651, 3655, 78508, 78508, 78508, 78508, 3857, -4879, -4879, 2190, -4879, -4879, 58857, 78508, -4879, -4879, -4879, 472, 2755, 2823, -4879, 3672, -4879, -4879, -4879, 3881, -4879, 4023, 3693, 78508, 3936, 78508, 3607, -4879, 1489, 3723, 3922, 1285, 2821, 209, 3652, -4879, 1180, -4879, -4879, 3683, -4879, -4879, 78508, -4879, 78508, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3751, -4879, -4879, -4879, -4879, 55658, -4879, -4879, 78508, -4879, 55201, 46069, 55201, -4879, 1251, 474, 2860, 2823, 78508, -4879, 3705, -4879, 3708, 3709, 3769, 186, 806, 3710, 3713, 3770, 3634, 3638, 3640, -4879, 55201, 46539, 3793, 78508, 2607, 3642, 3680, -4879, 252, 1288, -4879, -4879, 1288, 2607, 1288, -4879, 78508, 78508, 78508, 55201, -4879, 4067, 3734, 78508, 78508, 78508, 78508, -4879, 3697, -4879, 78508, 78508, 3968, 887, 1847, 58857, 78508, 78508, 58857, 78508, 78508, 78508, 78508, 78508, 78508, 3976, 78508, -4879, 4055, 3984, 2041, 4026, 3728, 78508, -4879, 78508, 1288, 3076, 78508, 78508, -4879, -4879, -4879, -4879, -4879, 3366, -4879, 3661, 3930, 345, -4879, 3932, 3934, 345, 345, 3935, 345, -4879, -4879, 1367, -4879, 470, 78508, -4879, 2328, 78508, -4879, -4879, -4879, 3588, 2194, 2204, -4879, -4879, -4879, -4879, -4879, -4879, 78508, 3673, 78508, 78508, 36850, -4879, 430, 1494, 1134, -4879, 3937, 78508, 2997, -4879, -4879, -4879, 219, 78508, -4879, -4879, -4879, -4879, -4879, 862, 3488, -4879, 3954, 66169, 2607, 58857, 58857, 2607, -4879,101717, 3675, 3247, -4879, 523, 3755, 58857, 1353, 1607, 97702, 3002, 3711, 3886, 40556, 1471, -4879, 3676, 3839, -4879, 3681, 3679, -4879, -4879, 78508, 3561, 57943, 2203, 2820, 4126, 99, 1843, -4879, 67540, 3873, 3488, 3954, -4879, 2821, 3897, 3896, -4879, 1790, 78508, 3309, 3247, 1288, 78508, 3156, 46069, -4879, 4163, -4879, 98159, 31636, 31636, -4879, 3688, -4879, 3695, 7081, -4879, 3762, 3692, -4879, -4879, -4879, -4879, -4879, 3778, 3700, 78508, -4879, 3690, -4879, 3703, -4879, -4879, -4879, -4879, -4879, -4879, 78508, -4879, 78508, -4879, 263, -4879, 3829, -4879, 263, 78508, 78508, 78508, 78508, 78508, 78508, 3255, 340, -4879, 4012, 58400, -4879, -4879, 2205, 78508, -4879, -4879, -4879, 4080, -4879, -4879, 151, 4024, -4879, -4879, 923, 923, 923, 3977, 923, 923, 923, 923, 923, -4879, 31636, 12775, -4879, 3712, -4879, 12775, 6963, 12775, 3865, -4879, 2211, 31636, -4879, 4002, 4002, 4002, 2691, 4025, -4879, 969, 3714, 4002, 4002, 4002, 378, 378, 233, 233, 233, 4009, 571, 12775, 12775, -4879, -4879, 3715, -4879, -4879, -4879, 3291, -4879, 33532, 113, 4141, 38260, -4879, -4879, -4879, 3758, 3759, 3721, -4879, 31636, 34006, 3719,102603, 3919, -4879, 1752, 31636, 31636, 3248, -4879, 13209, 31636,101717, 2213, 3248, 459, 31636, 4733, 5025, 31636, 31636, 6553, 7287, 3725, 31636, 98602, -4879, -4879, -4879, 2220, 31636, 78508, 78508, 78508, 78508, -4879, -4879, -4879, 77594, 78051, 77594, 3727, 39178, 26971, 2666, 3733, 78508, -4879, -4879, 3735, 40556, 3993, 3933, -4879, 40556, 3933, 1548, 3933, 3997, 3826, 45607, -4879, -4879, 3741, -4879, 3940, -4879, 1925, 12775, 4165, 4043, 1288, 4043, 1288, 3743, 48829, -4879, -4879, -4879, -4879, 3958, 12775, 29740, -4879, 1790, 2103, 78508, 1015, 79, -4879, 3761, 78508, -4879, 3717, 12775, -4879, 3818, 2245, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3833, 67997, 4074, -4879, 31636, 2250, -4879, 3801, 4166, 342, 2251, 2257, 1489, -4879, 4051, -4879, 1541, 4050, 471, -4879, 263, -4879,101717, -4879, 78508, 78508, -4879, -4879, -4879, -4879, 78508, 2768, -4879, -4879, 78508, 78508, 78508, 78508, -4879, 58857, 78508, -4879, 78508, -4879, 55201, 2128, 252, 430, 4063, 3995, -4879, 340, -4879, 430, 3996, 252, 78508, -4879, -4879, 2208, -4879,101717, 263, 263, -4879, -4879, -4879, -4879, -4879, 3791, 4205, 3872, 78508, 78508, 78508, -4879, 78508, 58857, 78508, 78508, 2315, 2315,101717, 3783, -4879, 2315, 2315, 3789, -4879, 58857, 78508, 78508, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3864, -4879, 31636, 4199, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 58857, 78508, 3874, -4879, 3879, -4879, 159, -4879, -4879, 78508, 78508, 78508, 78508, 4124, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 78508, -4879, 78508, -4879, -4879, 1288, 1288,101717, 263, 263, -4879, -4879, -4879, -4879, 3795, 4068, 345, -4879, 345, 345, -4879, -4879, 345, -4879, 3803, -4879, 1367, 4162, -4879, 1489, 1718, 4119, -4879, 4129, 31636, -4879, 1228, 2691, -4879, 4177, 4258, -4879, -4879, -4879, -4879, 2997, 1869, 3876, -4879, -4879, 62970, 388, -4879, 4107, 208, 4031, 66169, 341, 1624, 3823, 3947, -4879, 2607, 2607, 3882, 78508, 4262, -4879, -4879, -4879, -4879, -4879, -4879, 58857, 3432, -4879, 4049, 119, 4144, 78508, 31636, 3578, -4879, 216, 4147, -4879, 1288, -4879, -4879, 3953, 3247, -4879, 1393, 78508, 4044, 66169, 3309, 2258, -4879, -4879, -4879, 3868, 4256, 3265, -4879, 341, 3873, -4879, -4879, 4233, 3928, 3885, 4291, -4879, 3928, 4164, 4059, 3855, -4879, 3512, -4879, -4879, 12775, 12775, 1288, 103046, 7081,101717, 4171, 78508, 782, 4134, 263, -4879, 263, 263, -4879, 78508, -4879, 3255, 3255, 3255, 3255, 3255, -4879, 4060, -4879, -4879, 4127, -4879, 263, 58400, -4879, -4879, -4879, -4879, -4879, 923, -4879, -4879, -4879, -4879, -4879, 12775, -4879, -4879, -4879, -4879, 7322, 36850, 4172, -4879, 3866,101717, -4879, 3867, 2259, 2264, -4879, -4879, 113, -4879, 4141, -4879, -4879, -4879, 7551, 3911, 12775, 3970, 3870, 3871, 3248, 3248, 13209, 2266, -4879, 3248, 31636, 31636, 3248, 3248, 31636, -4879, -4879, 8101, 4052, -4879, -4879, 8700, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 56115, 3878, 3476, 77594, 3880, 78508, 2666, 40556, -4879, -4879, 2182, -4879, 40556, 4128, -4879, 40556, 62970, -4879, 78508, 3883, 78508, -4879, 34480, 31636, 3907, -4879, 3907, -4879, -4879, 3884, 78508, 2729, -4879, 83, -4879, -4879, 4266, 41474, 4219, 31636, -4879, -4879, -4879, -4879, 58400, 4082, 58400, 1489, 8993, 4051, 41474, 49745, 78508, 78508, 78508, 4035, 4051, 3887, 2997, -4879, -4879, -4879, -4879, -4879, -4879, 3889, -4879, -4879, -4879, -4879, 3956, -4879, -4879, 600, 3252, -4879, 2275, -4879, -4879, 4322, 4212, -4879, -4879, -4879, -4879, -4879, -4879, 4055, -4879, -4879, 46069, 58857, 78508, -4879, 3963, -4879, -4879, -4879, -4879, -4879, 43311, 48829, -4879, 186, 3891, 3898, 806, -4879, -4879, -4879, 78508, 9656, 3899, 749, 3252, 78508, 78508, 3900, 3901, 3902, 1667, 629, 1675, 3255, 4214, -4879, -4879, -4879, -4879, 4055, -4879, -4879, -4879, 345, -4879, -4879, -4879, -4879, 55201, -4879, 2048, 3803, 1288, 62970, 4345, 4345, 78508, -4879, 9774, 4122, -4879, -4879, 421, 3876, 4148, 4192, -4879, 3912, 78508, 219, 3913, 78508, 3914, 4034, 1324, 1324, 78508, 78508, 78508, 2276, 1790, 2607, 3680, 1353, 4244, 66169, 4288, 3561, 409, -4879, -4879, 216, -4879, 1500, 4263, 3961, -4879, 78508, 4362, 78508, 3309, 3488, 78508, 3921, -4879, -4879, 67540, 4131, 2128,103489, 2273, 3873, 3265, 264, 78508, -4879, 901, -4879, 1790, -4879, 78508, 72567, 41474, -4879,102160, -4879, 2280, -4879, -4879, 3994, 3363, 4033, 4039, 3925, 78508, 811, -4879, -4879, -4879, -4879, -4879, 78508, -4879, 480, -4879, -4879, 2874, 36850, 101717, 2304, 31636, -4879, 31636, -4879, -4879, -4879, -4879, 662, -4879, -4879, -4879, 3248, 3248, 3248, -4879, 4355, 3366, -4879, -4879, 2308, 4372, 35902, 4335, -4879, 78508, 2320, -4879, 31636, 3942, -4879, -4879, 40556, 2182, 3943, 2321, 78508, 2326,101717, 3946, 43, 3949, 25086, 3931, -4879, -4879, -4879, -4879, -4879, 12775, 12775, 78508, -4879, -4879, -4879, -4879, 3988, 78508, 2337, -4879, 798, 12775, 1592, 1749, 480, 4166, 2997, -4879, 3951, -4879, -4879, -4879, 396, 396, 78508, 2997, 78508, 3876, -4879, 78508, 4028, -4879, -4879, 55201, 4240, -4879, 4010, -4879, 909, 3252, 78508,101717, -4879, 147, 4271, -4879,101717,101717, -4879, -4879, -4879, 31636, 4046, -4879, -4879, -4879, 31636, 31636, 65255, -4879, -4879, 78508, 78508, 78508, 78508, 78508, 263, -4879, 2346, -4879, 42392, -4879, -4879, 2963, 1288, 2963, 1583, -4879, -4879, 2963, 2963, -4879, 3363, -4879, 4345, 338, -4879, -4879, -4879, 1700, 4180, 3959, 31636, -4879, 853, 4170, 4053, 3967, -4879, 62970, 4435, 3488, 3954, 78508, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 2355, 3561, 4293, 3247, 3885, -4879, 78508, 4000, -4879, 40556, -4879, -4879, -4879, 2963, -4879, 950, 3971, 4303, 3561, 1790, 1843, -4879, 3873, 3488, 3954, -4879, -4879, -4879, 3973, -4879, 3896, 3265, 2273, 4110, -4879, 4111, -4879, 4386, 4181, 4388, 3309, -4879, 3156, 2359, -4879, 7081,103046,101717, 4328, 4017, 4018, -4879, -4879, 4038, 78508, -4879, -4879, 3561, -4879, 2874, 2361, -4879, 2363, 2368, 4054, -4879, 31636, 1052, 3576, 56115, 3982, -4879, 36850, 2373, -4879, 5650, 78508, 2384, -4879, 12775, 78508, -4879, -4879, 31636, -4879, 2390, -4879, 31636, 3983, 31636, -4879, 34480, 4001, -4879, 4428, 1790, -4879, 3363, 41474, -4879, 4108, -4879, 4313, -4879, 78508, 3876, 48829, 3339, 3339, 1869, 3876, 2400, -4879, -4879, 78508, -4879, 3959, 31636, -4879, 4094, -4879, -4879, 2422, 1284, 4173, 4173, 2431, 2440, 9961, 78508, 2442, 2446, -4879, 2448, 2315, 3256, 1675, 3256, -4879, 3255, -4879, -4879, 55201, -4879, 56572, -4879, -4879, -4879, 1288, -4879, 1288, 4225, 78508, 51116, 1288, 1288, -4879, -4879, -4879, -4879, 4353, 4295, -4879, 2820, -4879, 10012, -4879, -4879, -4879, 193, -4879, 4220, 4221, 78508, -4879, 4016, -4879, 2450, 341, 4140, 3561, -4879, -4879, 78508, 4459, 4460, -4879, 673, 78508, 3578, 78508, -4879, -4879, -4879, 31636, 219, -4879, 3885, 3309, 3265, 341, 3873, 2128, 41933, 3928, 2273, 3896, -4879, -4879, 4224, -4879, 4227, -4879, 4027, 4312, 7081, -4879, -4879, 894, 4337, 4339, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3291, 34954, 34954, 34954, 4029, -4879, -4879, 78508, 2691, 4030, 35902, 55201, 2452, -4879,100388, -4879, 2456, 2457, -4879, 2458, 34480, 2462, -4879, 78508, 4036, -4879, -4879, -4879, 44689, 58400, 396, 4069, 4037, -4879, -4879, 4148, -4879, -4879, 1489, 3252, -4879, 12775, 78508, 62970, 4456, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 3252, 4118, -4879, -4879, 65255, -4879, 78508, -4879, -4879, 2464, -4879, -4879, -4879, 78508, 3676, -4879, 3676, -4879, -4879, 4178, -4879, 1920, 4142, 1029, 1029, 4403, -4879, 4103, -4879, -4879, 4056, -4879, 4524, 4182, 78508, -4879, -4879, 186, 1790, 66169, 3561, -4879, -4879, 10304, 62970, -4879, -4879, 2273, 3873, 3265, 31636, 2466, -4879, 4166, 342, -4879, 3896, 3928, -4879, -4879, 41474, 4061, 3247, -4879, -4879, 1829, 62970, 62970, 36376, 4191, 1176, 11738, 4398, -4879, 4398, 4398, -4879, 2478, 38260, -4879, -4879, -4879, 78508, 4265, 322, -4879, 4222, -4879, 2484, -4879, -4879, -4879, 11, 480, 3339, 4071, -4879, -4879, 4170, 1489, -4879, 3252, -4879, 78508, -4879, 4072, -4879, -4879, -4879, 56572, 3676, 3961, -4879, -4879, -4879, 4522, -4879, 1165, -4879, -4879, -4879, -4879, 78508, 3561, 3783, 3885, -4879, -4879, 4073, 3896, 3265, 2273, 10376, -4879, 41933, 78508, 78508, 3928, -4879, 2489, 41474, 3928, -4879, 2845, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 4064, 4065, 4518, -4879, -4879, -4879, -4879, -4879, 1126, -4879, -4879, -4879, -4879, 3476, -4879, -4879, 36850, 36850, 4292, -4879, 322, -4879, 4076, -4879, -4879, -4879, -4879, -4879, 31636, 1489, -4879, -4879, -4879, 31636, -4879, 4409, -4879, -4879, -4879, 3561, -4879, -4879, 54744, 3928, 2273, 3896, 4166, -4879, -4879, -4879, -4879, 4312, -4879, 2494, 3363, 1962, -4879, -4879, 2294, 2156, 4161, 4396, 35428, 4223, -4879, 4283, -4879, 4489, 2691, 2691, -4879, -4879, 31636, 10604, 1489, 2500, 219, -4879, -4879, 2502, -4879, -4879, -4879, -4879, -4879, 3896, 3928, 78508, 3247, -4879, 41474, -4879, -4879, 2845, 4198, 4204, -4879, -4879, -4879, 78508, 10931, -4879, -4879, 62970, -4879, 54744, 3928, -4879, -4879, 3928, -4879, -4879, 4133, 4136, 2520, -4879, 4097, -4879, -4879, 3363, 4411, 4412, -4879, 54744, -4879, 62970, 62970, 2554, -4879, -4879, -4879 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { 1664, 1435, 618, 1516, 1515, 1435, 0, 254, 0, 1526, 0, 1435, 411, 1112, 0, 0, 0, 0, 618, 1435, 0, 1664, 0, 0, 0, 0, 0, 1677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435, 0, 0, 1684, 0, 0, 0, 0, 1677, 0, 1528, 0, 0, 0, 0, 0, 2, 4, 37, 72, 73, 31, 30, 91, 55, 18, 63, 125, 124, 126, 42, 38, 80, 26, 28, 39, 43, 65, 67, 45, 56, 103, 64, 24, 62, 86, 68, 89, 50, 12, 13, 51, 14, 52, 15, 53, 16, 99, 74, 92, 35, 61, 23, 44, 70, 71, 5, 46, 78, 11, 57, 58, 60, 83, 84, 85, 108, 87, 120, 41, 117, 96, 97, 114, 98, 115, 9, 100, 54, 17, 111, 110, 112, 81, 47, 82, 69, 90, 109, 27, 113, 19, 20, 22, 21, 59, 29, 66, 32, 88, 116, 106, 102, 121, 119, 127, 104, 75, 7, 8, 93, 6, 25, 49, 10, 34, 33, 48, 40, 123, 36, 1526, 95, 107, 94, 76, 101, 79, 105, 122, 77, 118, 1634, 1633, 1686, 1637, 1663, 0, 1649, 1434, 1433, 1448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1445, 2268, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2625, 2299, 2300, 2301, 2575, 2576, 2626, 2577, 2578, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2579, 2580, 2310, 2311, 2312, 2313, 2314, 2581, 2627, 2315, 2316, 2317, 2318, 2319, 2628, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2629, 2329, 2330, 2331, 2630, 2332, 2333, 2334, 2335, 2336, 2337, 2582, 2583, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2584, 2365, 2366, 2367, 2585, 2368, 2369, 2370, 2586, 2371, 2372, 2373, 2631, 2632, 2374, 2375, 2376, 2377, 2378, 2587, 2588, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2633, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2634, 2589, 2398, 2399, 2400, 2401, 2590, 2591, 2592, 2402, 2635, 2636, 2403, 2637, 2404, 2405, 2406, 2407, 2408, 2409, 2593, 2638, 2410, 2639, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2594, 2640, 2595, 2430, 2431, 2432, 2596, 2433, 2434, 2641, 2435, 2597, 2436, 2598, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2599, 2642, 2447, 2643, 2600, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2601, 2459, 2602, 2462, 2460, 2461, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2603, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2644, 2491, 2492, 2493, 2494, 2495, 2604, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2605, 2512, 2513, 2645, 2514, 2515, 2606, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2607, 2530, 2531, 2532, 2533, 2646, 2534, 2535, 2536, 2537, 2538, 2539, 2608, 2609, 2540, 2541, 2610, 2542, 2611, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2612, 2613, 2560, 2647, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2572, 2573, 2574, 129, 0, 0, 2242, 2269, 2270, 2273, 2268, 383, 382, 1624, 2236, 2269, 1525, 1505, 618, 0, 1448, 410, 1664, 0, 0, 0, 0, 0, 0, 0, 851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 434, 433, 0, 0, 0, 1080, 439, 0, 0, 0, 0, 0, 606, 1573, 2460, 1571, 1625, 255, 258, 259, 256, 257, 2258, 0, 1214, 1215, 1217, 0, 0, 1227, 891, 892, 0, 0, 0, 900, 0, 0, 0, 889, 0, 0, 0, 905, 0, 902, 0, 0, 906, 903, 886, 904, 893, 0, 885, 0, 0, 1227, 907, 0, 0, 887, 0, 0, 0, 0, 1448, 1570, 440, 1664, 0, 1547, 1548, 1549, 1526, 1538, 1550, 1543, 1545, 1544, 1546, 1542, 2257, 2284, 1015, 1015, 1015, 1015, 1012, 1013, 1015, 1015, 1015, 2480, 0, 0, 994, 0, 996, 2259, 1015, 1020, 503, 503, 503, 0, 1019, 1024, 503, 0, 1416, 1457, 2241, 1676, 0, 995, 1415, 2540, 1561, 0, 0, 1242, 1238, 1240, 1241, 1239, 0, 1083, 1083, 2498, 1427, 239, 2509, 2608, 2540, 238, 233, 234, 207, 2288, 0, 0, 1019, 0, 1448, 1425, 977, 1683, 1681, 0, 2223, 2308, 2323, 2413, 230, 2491, 2499, 2509, 2608, 2540, 2571, 186, 196, 191, 0, 248, 2509, 2608, 2540, 244, 1445, 0, 1650, 1785, 2232, 0, 1418, 1417, 1527, 0, 1530, 0, 2475, 1654, 1657, 1532, 1655, 1646, 0, 0, 1, 1664, 0, 1537, 1680, 1680, 0, 1680, 0, 1638, 1646, 1641, 1645, 0, 0, 0, 0, 0, 1419, 0, 0, 0, 910, 0, 1460, 2237, 1065, 0, 0, 0, 0, 0, 0, 0, 1121, 1120, 2274, 2264, 2265, 0, 2262, 2263, 2275, 2276, 2277, 0, 2385, 0, 0, 0, 2134, 2145, 2146, 2147, 2312, 2368, 2142, 2143, 2144, 2136, 2137, 2138, 2139, 2140, 2141, 0, 0, 1209, 2135, 0, 2385, 0, 0, 0, 156, 0, 133, 0, 0, 0, 2385, 0, 0, 0, 0, 0, 0, 0, 2385, 0, 0, 0, 0, 0, 156, 2418, 0, 133, 2385, 0, 0, 1439, 0, 0, 0, 1441, 1444, 1420, 0, 2215, 0, 2216, 2243, 1508, 0, 2232, 0, 0, 0, 946, 939, 0, 947, 954, 0, 0, 956, 0, 0, 940, 0, 0, 0, 0, 0, 959, 960, 0, 0, 961, 941, 962, 942, 963, 943, 964, 0, 0, 0, 0, 944, 0, 0, 0, 1431, 1422, 0, 1563, 1565, 1564, 1562, 503, 0, 0, 0, 2385, 0, 0, 133, 1493, 0, 2385, 133, 0, 0, 438, 437, 133, 2262, 436, 435, 2312, 2368, 0, 1111, 0, 1374, 133, 2385, 0, 179, 2385, 692, 2385, 1532, 0, 621, 0, 0, 806, 2418, 133, 0, 0, 0, 0, 0, 0, 1083, 0, 0, 0, 0, 0, 605, 618, 1574, 1572, 0, 1218, 232, 231, 1216, 898, 2385, 1153, 344, 0, 0, 2385, 1479, 2271, 1860, 1889, 1867, 1889, 1889, 1856, 1856, 2352, 1869, 2385, 1857, 1858, 1894, 0, 1889, 1856, 1861, 0, 1859, 1897, 1897, 1884, 344, 914, 1841, 1842, 1843, 1844, 1870, 1871, 1845, 1876, 1877, 1881, 1846, 1911, 1856, 2272, 899, 0, 890, 2385, 344, 1117, 2385, 2266, 166, 0, 888, 2312, 2368, 2385, 344, 1211, 0, 2385, 344, 2385, 162, 2385, 344, 2385, 344, 2385, 622, 0, 0, 2385, 344, 2385, 2418, 164, 0, 2385, 344, 908, 2385, 344, 2234, 2385, 0, 1423, 0, 1566, 0, 1540, 2612, 1555, 0, 1551, 1558, 1554, 1664, 1015, 1014, 0, 1015, 0, 1015, 0, 1015, 0, 1015, 0, 0, 0, 1015, 2260, 2261, 997, 0, 1021, 0, 0, 1028, 1027, 1026, 0, 0, 0, 1029, 0, 1789, 1601, 0, 1413, 1430, 0, 0, 0, 1083, 1245, 0, 1243, 1082, 0, 0, 1426, 237, 235, 0, 0, 0, 0, 0, 0, 1432, 0, 1424, 0, 0, 0, 2245, 2247, 2248, 2148, 2218, 0, 2576, 2577, 2578, 2207, 0, 2579, 2580, 2581, 2627, 2042, 2029, 2038, 2043, 2030, 2032, 2039, 2582, 2583, 1977, 2584, 2585, 2255, 2586, 2587, 2588, 2590, 2591, 2592, 2593, 2034, 2036, 2594, 2595, 0, 2256, 2597, 2598, 2442, 2600, 2601, 2603, 2604, 2040, 2606, 2607, 2608, 2609, 2610, 2611, 2254, 0, 2041, 2613, 2615, 2616, 2617, 2618, 2620, 2621, 2622, 2623, 0, 0, 0, 2229, 0, 2009, 0, 1849, 1850, 1872, 1873, 1851, 1878, 1879, 1852, 0, 2228, 1914, 2093, 2008, 2025, 0, 2014, 2015, 0, 2007, 2003, 1666, 2224, 0, 2004, 2244, 2246, 2208, 1666, 2222, 199, 250, 0, 251, 2230, 2509, 187, 229, 201, 228, 202, 200, 0, 2310, 188, 0, 0, 189, 0, 0, 0, 0, 247, 245, 0, 1421, 0, 1787, 1786, 2233, 919, 0, 1519, 1513, 1522, 1518, 1529, 1526, 2158, 0, 1656, 0, 0, 0, 1636, 1635, 3, 0, 1534, 1536, 1511, 1532, 1678, 1679, 0, 0, 0, 0, 0, 0, 0, 0, 1734, 1694, 1695, 1697, 1731, 1735, 1743, 0, 1642, 0, 0, 1791, 0, 0, 1446, 0, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 0, 911, 0, 0, 0, 1466, 0, 1468, 1469, 1470, 0, 0, 1471, 1472, 1460, 241, 1478, 1476, 1459, 1461, 1474, 0, 0, 0, 0, 0, 0, 0, 1485, 0, 170, 171, 0, 634, 618, 0, 2385, 0, 0, 0, 0, 0, 1160, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 1161, 1159, 0, 1162, 243, 1172, 1191, 1194, 0, 1119, 1122, 0, 0, 0, 0, 0, 1302, 0, 0, 0, 0, 1302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 268, 279, 339, 597, 0, 0, 0, 600, 0, 2385, 0, 0, 0, 0, 1213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 0, 0, 0, 0, 0, 0, 0, 0, 131, 132, 137, 0, 0, 0, 0, 0, 1194, 0, 0, 0, 0, 0, 0, 583, 596, 0, 0, 0, 0, 0, 593, 0, 0, 133, 271, 573, 579, 0, 0, 0, 699, 698, 0, 0, 0, 0, 1390, 1389, 0, 0, 0, 0, 1483, 1482, 0, 0, 0, 0, 0, 1302, 0, 260, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 375, 376, 0, 0, 0, 137, 0, 0, 0, 0, 273, 0, 0, 1440, 1437, 1438, 0, 1443, 0, 0, 0, 0, 2017, 0, 2162, 1686, 2160, 1137, 2214, 0, 2278, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2211, 2210, 2239, 2279, 2280, 2281, 2282, 2217, 0, 1504, 0, 953, 0, 0, 0, 0, 955, 0, 948, 0, 0, 945, 2312, 2368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 814, 0, 1460, 1492, 0, 0, 0, 627, 0, 2385, 0, 135, 852, 0, 804, 439, 0, 0, 0, 1184, 1373, 135, 0, 0, 173, 0, 0, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, 742, 0, 0, 0, 805, 0, 0, 135, 0, 2385, 576, 2385, 0, 503, 503, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 1628, 1630, 1629, 0, 1627, 0, 342, 343, 0, 1201, 1226, 0, 0, 1888, 1875, 1883, 1882, 0, 1865, 1864, 1863, 0, 1862, 0, 1889, 1889, 1887, 1866, 1841, 0, 0, 0, 1893, 0, 1891, 0, 881, 1837, 1833, 0, 1900, 1901, 1902, 1899, 1912, 1898, 0, 1847, 1903, 1856, 1853, 901, 0, 0, 1195, 0, 0, 2385, 344, 2385, 0, 2385, 0, 0, 0, 1203, 344, 0, 1197, 0, 0, 1199, 0, 1391, 0, 897, 895, 894, 896, 0, 0, 879, 0, 0, 0, 2385, 344, 0, 0, 874, 0, 0, 876, 0, 0, 0, 0, 1664, 0, 218, 219, 217, 1556, 220, 1557, 1553, 1539, 0, 1005, 0, 1009, 0, 1000, 0, 1006, 0, 1001, 998, 999, 0, 1004, 0, 0, 504, 506, 0, 0, 2335, 2351, 0, 2374, 2406, 2407, 2466, 2494, 2499, 2505, 0, 2534, 2545, 0, 1030, 1060, 1025, 710, 0, 0, 1611, 1414, 2165, 0, 1664, 0, 0, 0, 0, 1234, 1235, 236, 208, 0, 0, 0, 1062, 2498, 1429, 976, 618, 0, 2005, 0, 2012, 2013, 2206, 0, 0, 0, 0, 0, 0, 2011, 2173, 0, 0, 0, 0, 0, 1937, 0, 0, 0, 2186, 0, 2192, 0, 0, 1974, 0, 0, 0, 0, 0, 0, 0, 0, 1938, 1918, 1919, 2009, 2158, 0, 2010, 2251, 0, 1911, 2227, 2148, 0, 2145, 2146, 2147, 0, 0, 0, 2221, 0, 2156, 0, 0, 1952, 2154, 1954, 0, 0, 0, 0, 2142, 2143, 2144, 2136, 2137, 2138, 2139, 2140, 2141, 2152, 1934, 0, 0, 2095, 0, 1933, 0, 0, 1747, 0, 2249, 2209, 1747, 252, 253, 249, 0, 0, 204, 203, 0, 222, 226, 227, 198, 225, 0, 221, 206, 2082, 2081, 205, 197, 194, 192, 209, 211, 212, 195, 193, 246, 0, 0, 0, 344, 1537, 0, 1520, 1521, 1517, 1524, 1744, 0, 1658, 0, 1662, 1537, 0, 1533, 1653, 1652, 1687, 1688, 1103, 1651, 1714, 1715, 0, 0, 0, 0, 1740, 1738, 1705, 1698, 1704, 0, 0, 1702, 0, 1706, 1914, 1733, 1640, 1692, 1693, 1696, 1639, 0, 1736, 0, 1614, 1734, 1697, 1598, 0, 1576, 0, 1792, 0, 0, 1447, 0, 0, 0, 1132, 1134, 0, 1133, 0, 1136, 0, 1145, 0, 0, 1131, 1150, 0, 1139, 1137, 0, 1481, 0, 0, 912, 0, 0, 0, 0, 1467, 0, 0, 2534, 240, 1470, 1475, 1462, 1473, 0, 0, 0, 0, 0, 1064, 1063, 0, 0, 1087, 0, 0, 0, 1488, 492, 0, 341, 0, 0, 0, 0, 0, 0, 0, 0, 800, 797, 0, 0, 796, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 1302, 0, 704, 0, 1169, 0, 0, 1168, 0, 1173, 0, 0, 1170, 1165, 1166, 2499, 2509, 2540, 242, 1171, 1193, 0, 1192, 1188, 1114, 0, 1115, 0, 0, 0, 0, 0, 2361, 2385, 284, 304, 0, 1301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, 329, 328, 0, 0, 0, 0, 0, 333, 312, 0, 313, 0, 332, 0, 0, 598, 599, 0, 0, 0, 0, 1302, 0, 275, 0, 0, 0, 0, 0, 0, 0, 1210, 0, 727, 0, 0, 0, 2499, 1189, 0, 0, 0, 0, 0, 1377, 0, 0, 159, 0, 154, 158, 0, 0, 0, 2499, 1190, 0, 0, 0, 0, 581, 582, 595, 0, 586, 587, 584, 588, 589, 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, 694, 693, 697, 0, 0, 0, 1386, 0, 1184, 0, 0, 1385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1247, 1246, 0, 0, 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, 0, 0, 161, 714, 0, 713, 0, 155, 160, 0, 0, 0, 0, 0, 0, 0, 216, 1436, 1442, 1686, 1686, 1686, 2023, 0, 0, 0, 0, 1685, 2212, 2215, 1507, 2240, 1506, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 949, 950, 951, 952, 0, 0, 0, 0, 0, 389, 386, 387, 389, 0, 0, 0, 0, 816, 0, 819, 822, 0, 1458, 458, 0, 0, 624, 672, 0, 0, 442, 168, 0, 0, 0, 0, 729, 0, 0, 0, 1372, 130, 177, 179, 440, 0, 178, 180, 182, 183, 184, 181, 185, 0, 691, 695, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 744, 748, 747, 751, 749, 0, 745, 0, 0, 1812, 0, 0, 153, 0, 0, 571, 575, 0, 0, 0, 0, 442, 544, 355, 2385, 0, 503, 0, 2385, 0, 1084, 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1626, 344, 1154, 0, 1480, 0, 0, 0, 344, 1886, 1885, 1838, 1834, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1854, 344, 1118, 167, 2267, 0, 883, 0, 0, 0, 0, 344, 1212, 871, 344, 163, 344, 344, 623, 0, 344, 165, 0, 0, 0, 615, 344, 909, 344, 2235, 0, 344, 1569, 2385, 503, 1541, 1552, 1002, 1011, 1010, 1008, 1007, 1003, 0, 1022, 0, 502, 0, 0, 0, 0, 0, 1038, 1039, 0, 0, 1035, 1040, 0, 1036, 1037, 1042, 1032, 1031, 1043, 1044, 0, 0, 1062, 708, 0, 0, 0, 0, 1608, 0, 1606, 0, 1790, 1610, 1599, 1560, 0, 1559, 0, 564, 1083, 1083, 1244, 0, 0, 1019, 0, 0, 344, 1428, 0, 978, 984, 0, 0, 0, 0, 0, 0, 0, 987, 988, 0, 989, 980, 990, 981, 991, 0, 982, 0, 0, 0, 0, 2219, 2169, 0, 2170, 0, 0, 2205, 2201, 0, 0, 0, 0, 0, 2174, 2177, 2178, 2179, 2176, 2180, 2175, 0, 0, 2181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2604, 0, 0, 0, 0, 1978, 0, 0, 2129, 0, 2158, 2191, 0, 0, 0, 0, 0, 0, 2158, 2197, 0, 0, 0, 0, 2080, 0, 2077, 0, 0, 0, 0, 2218, 0, 0, 2252, 1915, 1929, 1930, 1931, 1935, 2226, 0, 2220, 0, 0, 1916, 1943, 0, 2198, 1970, 0, 1975, 1958, 0, 1951, 0, 1956, 1960, 1939, 0, 1936, 0, 2221, 2157, 0, 2155, 0, 1926, 1927, 1928, 1920, 1921, 1922, 1923, 1924, 1925, 1932, 2133, 2131, 2132, 0, 0, 0, 2103, 0, 0, 1955, 2377, 2413, 0, 1677, 1677, 1677, 1665, 1675, 2225, 0, 1807, 1686, 1807, 2231, 0, 0, 1911, 0, 1788, 917, 918, 916, 1510, 1514, 1523, 1537, 2159, 1531, 1660, 0, 0, 1512, 1535, 0, 1101, 1102, 0, 1106, 2604, 2496, 0, 0, 0, 0, 1707, 1741, 0, 1732, 0, 2245, 1708, 2244, 1709, 1712, 1713, 1703, 1742, 1612, 0, 1737, 1644, 1643, 0, 1810, 0, 0, 0, 1590, 1578, 0, 1793, 0, 1747, 1616, 0, 2218, 1745, 1348, 1248, 1311, 1135, 0, 1856, 1146, 0, 1130, 0, 1129, 1856, 0, 1147, 0, 1856, 1349, 1249, 1312, 913, 1350, 1250, 1313, 1351, 1251, 1477, 1465, 1464, 1463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 781, 2385, 344, 1486, 1352, 0, 1252, 340, 1487, 1314, 1491, 799, 798, 0, 0, 1315, 0, 633, 0, 637, 0, 639, 640, 641, 0, 0, 0, 642, 0, 2312, 2368, 644, 647, 648, 649, 656, 661, 651, 0, 0, 663, 657, 0, 0, 0, 0, 0, 0, 669, 674, 0, 0, 0, 0, 0, 0, 0, 1163, 1164, 1353, 1255, 0, 1316, 1113, 0, 1256, 169, 0, 0, 267, 2385, 286, 0, 676, 781, 0, 1304, 283, 310, 0, 0, 325, 320, 321, 319, 2385, 344, 2385, 344, 0, 0, 0, 0, 0, 322, 317, 318, 314, 0, 0, 327, 2287, 2353, 2510, 0, 680, 682, 0, 687, 330, 1276, 351, 350, 349, 0, 334, 0, 356, 359, 331, 311, 309, 306, 280, 0, 0, 0, 0, 0, 0, 0, 0, 2238, 0, 0, 1205, 0, 1356, 1317, 0, 1339, 0, 0, 0, 0, 721, 0, 1359, 1262, 1320, 1378, 1380, 1370, 1263, 1379, 157, 1291, 146, 0, 0, 142, 0, 0, 0, 0, 136, 0, 1360, 1264, 1321, 0, 1361, 1265, 0, 0, 272, 574, 585, 590, 1270, 594, 591, 1329, 592, 1368, 1266, 1364, 1294, 1324, 1371, 1387, 1267, 1184, 1382, 1384, 0, 1302, 0, 261, 263, 0, 282, 0, 1268, 0, 1322, 1363, 1293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1494, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 1304, 2385, 344, 1362, 0, 1299, 0, 1337, 0, 377, 0, 1292, 0, 0, 274, 1272, 1331, 0, 0, 214, 213, 215, 0, 0, 0, 0, 2163, 2164, 0, 2161, 2018, 2214, 0, 966, 924, 965, 0, 2351, 0, 923, 925, 0, 0, 0, 926, 0, 930, 931, 0, 0, 0, 922, 920, 921, 388, 0, 0, 738, 739, 0, 0, 0, 0, 818, 0, 0, 0, 1484, 0, 133, 631, 0, 0, 0, 626, 671, 676, 0, 0, 0, 0, 441, 445, 449, 450, 451, 0, 0, 0, 0, 147, 134, 0, 860, 0, 503, 0, 731, 1376, 1375, 1183, 0, 179, 172, 0, 0, 692, 0, 1532, 0, 0, 355, 813, 811, 810, 812, 0, 0, 0, 834, 809, 0, 1811, 1813, 0, 0, 0, 0, 0, 0, 564, 444, 0, 0, 506, 0, 547, 0, 0, 0, 0, 544, 0, 0, 0, 2271, 0, 830, 802, 1124, 0, 1142, 1125, 0, 0, 0, 0, 1177, 1109, 1178, 1155, 1110, 0, 0, 603, 1631, 1632, 0, 1202, 0, 0, 1855, 1868, 882, 0, 1896, 1895, 1897, 1897, 0, 1839, 0, 1880, 1905, 1906, 1907, 1908, 1909, 1910, 0, 1904, 1848, 1196, 344, 0, 344, 0, 344, 1204, 1198, 1200, 1392, 0, 880, 0, 0, 344, 873, 875, 0, 877, 0, 1023, 505, 0, 0, 0, 0, 0, 0, 1034, 601, 1041, 0, 1055, 1050, 1052, 0, 1056, 707, 0, 0, 1609, 1602, 1604, 1603, 0, 0, 1600, 2166, 872, 0, 570, 0, 0, 0, 0, 344, 0, 1057, 0, 0, 985, 979, 0, 0, 983, 0, 0, 0, 986, 0, 0, 1682, 2167, 2168, 0, 0, 0, 2202, 0, 0, 2055, 0, 2031, 2033, 2045, 0, 2056, 2016, 2057, 2035, 2037, 0, 2149, 0, 0, 2046, 0, 1980, 1981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1996, 1995, 2047, 2128, 0, 0, 2189, 2190, 2048, 0, 0, 2196, 0, 0, 0, 2053, 2058, 0, 0, 0, 0, 2064, 0, 2085, 0, 0, 0, 2006, 2159, 0, 0, 0, 0, 0, 0, 0, 0, 1976, 1959, 1953, 0, 1957, 1961, 0, 0, 0, 1947, 0, 0, 1945, 1971, 1941, 0, 0, 1972, 0, 0, 0, 2024, 0, 0, 1677, 1677, 1677, 1677, 1674, 0, 0, 0, 0, 2496, 2624, 0, 1771, 1746, 1748, 1758, 1771, 1776, 1771, 2026, 1805, 2027, 2232, 0, 1717, 0, 1717, 190, 0, 223, 210, 1509, 1661, 1664, 1689, 0, 2150, 1106, 0, 1691, 1711, 1710, 0, 1701, 1739, 1699, 1613, 1597, 0, 1595, 1582, 1584, 1583, 0, 0, 1585, 2218, 0, 1595, 1577, 1621, 0, 0, 1810, 0, 1620, 0, 1856, 1127, 1128, 0, 1151, 0, 1067, 1068, 0, 1066, 0, 0, 0, 491, 1086, 0, 0, 0, 781, 0, 0, 495, 0, 1489, 0, 1369, 1290, 635, 636, 0, 650, 0, 659, 658, 0, 0, 0, 0, 0, 0, 0, 643, 665, 607, 666, 668, 0, 0, 667, 670, 673, 1302, 0, 705, 1278, 0, 1335, 1157, 1305, 0, 1116, 0, 0, 0, 0, 0, 0, 458, 305, 0, 0, 0, 0, 364, 0, 288, 297, 362, 303, 0, 1310, 336, 0, 308, 0, 301, 323, 315, 324, 316, 335, 337, 0, 684, 685, 683, 679, 0, 686, 688, 0, 353, 0, 0, 0, 1355, 0, 1302, 0, 276, 0, 1274, 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1338, 0, 0, 0, 0, 726, 0, 723, 1306, 0, 0, 139, 138, 0, 145, 0, 1307, 0, 0, 0, 0, 1388, 0, 0, 0, 0, 0, 0, 371, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 346, 0, 837, 0, 0, 0, 380, 0, 0, 0, 0, 0, 1354, 1257, 2021, 2022, 2019, 1686, 2213, 0, 0, 0, 937, 0, 0, 0, 0, 0, 0, 391, 392, 133, 390, 413, 0, 781, 0, 0, 815, 820, 828, 2442, 2136, 2137, 826, 821, 823, 825, 827, 824, 0, 0, 0, 0, 0, 474, 0, 0, 0, 464, 0, 0, 1184, 457, 460, 461, 0, 0, 627, 630, 628, 629, 664, 0, 444, 481, 532, 0, 149, 0, 0, 150, 148, 0, 0, 355, 728, 0, 725, 0, 175, 440, 0, 696, 0, 0, 0, 1184, 619, 750, 753, 746, 0, 833, 835, 807, 0, 676, 0, 0, 576, 0, 503, 1570, 559, 0, 534, 444, 532, 543, 0, 0, 551, 354, 0, 0, 564, 355, 0, 0, 1087, 0, 829, 0, 1123, 0, 0, 0, 1174, 1179, 1175, 0, 0, 1138, 0, 1176, 1156, 1408, 1409, 1406, 1407, 0, 0, 0, 1623, 0, 1874, 0, 1892, 1890, 1835, 1840, 1913, 884, 0, 867, 0, 869, 344, 715, 0, 616, 344, 0, 0, 0, 0, 0, 0, 1033, 0, 1053, 0, 0, 1016, 1059, 0, 0, 1607, 1605, 562, 0, 1236, 1237, 1062, 0, 1017, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171, 0, 2204, 2200, 0, 2028, 2172, 0, 2184, 2183, 2129, 0, 0, 1979, 1991, 1992, 1993, 2185, 0, 2001, 0, 0, 1988, 1989, 1990, 1982, 1983, 1984, 1985, 1986, 1987, 1994, 2194, 2193, 2187, 2188, 0, 2050, 2051, 2052, 2195, 2059, 0, 2302, 2086, 0, 2063, 2079, 2078, 0, 0, 0, 2066, 0, 0, 2075, 0, 2130, 2253, 1917, 0, 0, 1944, 2199, 1962, 0, 0, 0, 1940, 2149, 0, 0, 0, 0, 0, 1949, 0, 0, 0, 2106, 2101, 2102, 2126, 0, 0, 0, 0, 0, 0, 1668, 1667, 1673, 1771, 1776, 1771, 0, 0, 1646, 0, 1758, 0, 1770, 1756, 1769, 0, 0, 1782, 1780, 0, 1782, 0, 1782, 0, 1750, 0, 1772, 1752, 1769, 1754, 0, 1797, 2233, 1806, 0, 1730, 2018, 1730, 0, 0, 0, 1690, 1104, 1105, 1700, 2331, 1808, 0, 1596, 0, 0, 0, 1587, 1593, 1575, 0, 0, 1617, 1595, 1618, 1148, 0, 0, 1140, 1073, 1074, 1077, 1075, 1072, 1076, 0, 0, 0, 781, 0, 0, 513, 0, 1098, 1098, 0, 0, 497, 556, 508, 784, 0, 0, 0, 782, 344, 1253, 0, 660, 0, 0, 655, 653, 652, 654, 0, 608, 1367, 1254, 0, 0, 0, 0, 1158, 0, 0, 1277, 0, 285, 0, 454, 0, 0, 298, 0, 294, 0, 1303, 0, 0, 0, 0, 293, 366, 0, 363, 0, 344, 344, 338, 681, 352, 357, 358, 361, 0, 0, 0, 0, 0, 1309, 0, 0, 0, 0, 0, 0, 0, 861, 844, 0, 0, 862, 863, 0, 0, 0, 1207, 1208, 1206, 1340, 1341, 1346, 1343, 1342, 1345, 1347, 1344, 0, 1260, 0, 0, 719, 143, 140, 141, 144, 1288, 1271, 1330, 1383, 0, 0, 0, 1269, 0, 1323, 0, 1284, 1280, 0, 0, 0, 0, 0, 1366, 1298, 1328, 1365, 1296, 1326, 1295, 1325, 1297, 1327, 0, 1289, 0, 1815, 841, 0, 0, 0, 344, 344, 840, 717, 1273, 1332, 0, 0, 0, 927, 0, 0, 929, 932, 0, 934, 396, 414, 133, 0, 737, 801, 0, 0, 817, 780, 0, 462, 0, 468, 472, 0, 0, 476, 477, 475, 463, 1184, 503, 555, 770, 771, 0, 0, 791, 0, 625, 0, 442, 0, 478, 0, 0, 446, 152, 151, 0, 0, 0, 732, 736, 734, 733, 735, 730, 0, 721, 179, 2385, 0, 0, 0, 0, 557, 1381, 0, 763, 808, 0, 1814, 711, 0, 355, 572, 0, 0, 0, 442, 564, 0, 447, 452, 453, 458, 0, 544, 533, 0, 534, 545, 546, 0, 553, 1456, 0, 565, 553, 0, 0, 0, 832, 0, 831, 1126, 1143, 1144, 0, 0, 1107, 0, 0, 0, 0, 610, 344, 1836, 344, 344, 1233, 0, 878, 1047, 1048, 1049, 1046, 1045, 602, 0, 1051, 709, 0, 563, 344, 0, 993, 971, 992, 970, 972, 0, 974, 975, 969, 967, 968, 2203, 2044, 2054, 2182, 2128, 2159, 0, 0, 2002, 0, 0, 2049, 2614, 0, 0, 2090, 2091, 0, 2087, 2088, 2083, 2084, 2065, 0, 2432, 2070, 0, 0, 0, 1968, 1966, 1963, 0, 1964, 1948, 0, 0, 1946, 1942, 0, 1973, 2092, 0, 2108, 2105, 2125, 2159, 1672, 1671, 1670, 1669, 1757, 1753, 1755, 0, 2619, 0, 1760, 1767, 0, 1749, 0, 1781, 1777, 0, 1778, 0, 0, 1779, 0, 0, 1751, 0, 1767, 0, 1804, 0, 0, 2097, 2250, 2097, 224, 1659, 0, 0, 1594, 1579, 0, 1580, 1586, 0, 0, 0, 0, 1622, 1615, 1141, 1149, 0, 0, 0, 493, 0, 508, 0, 0, 0, 1100, 1100, 0, 508, 0, 1184, 786, 785, 788, 783, 787, 1490, 0, 645, 646, 662, 1279, 0, 1336, 1286, 0, 1611, 287, 0, 677, 292, 0, 0, 289, 365, 367, 290, 291, 295, 346, 307, 300, 0, 0, 0, 1275, 0, 1334, 1282, 1357, 1258, 1318, 0, 0, 850, 0, 0, 0, 0, 1358, 1259, 1319, 0, 0, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 0, 1499, 0, 1308, 345, 839, 838, 346, 379, 1300, 2020, 0, 928, 935, 936, 933, 0, 385, 393, 396, 0, 0, 1224, 1224, 0, 781, 0, 0, 459, 473, 0, 555, 512, 0, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, 723, 174, 0, 442, 0, 676, 0, 757, 758, 752, 754, 0, 765, 769, 836, 0, 0, 0, 564, 444, 0, 0, 1567, 443, 0, 0, 455, 0, 547, 534, 544, 0, 0, 561, 0, 1449, 0, 567, 0, 0, 0, 1180, 0, 1186, 0, 1137, 1181, 0, 1807, 0, 0, 0, 0, 614, 1225, 868, 870, 716, 1054, 0, 1058, 344, 973, 2130, 1997, 0, 0, 0, 0, 2060, 0, 2061, 2089, 2067, 2071, 0, 2068, 2069, 1965, 1969, 1967, 1950, 2094, 0, 1686, 2127, 1800, 0, 1803, 0, 0, 1759, 0, 0, 1761, 0, 0, 1763, 1765, 0, 0, 0, 0, 0, 0, 2236, 2330, 2588, 2493, 0, 1716, 1718, 1721, 1723, 1722, 1724, 1720, 1729, 0, 1648, 1647, 2151, 1809, 0, 0, 0, 1088, 0, 1619, 1055, 0, 344, 1098, 1184, 514, 2442, 515, 1097, 1099, 1103, 1103, 0, 1184, 0, 555, 638, 0, 0, 269, 675, 0, 0, 299, 348, 360, 0, 1611, 0, 0, 848, 857, 857, 845, 0, 0, 864, 1261, 720, 0, 0, 264, 1285, 1281, 0, 0, 0, 1501, 1502, 0, 0, 0, 0, 0, 344, 938, 0, 416, 423, 397, 401, 1493, 0, 1493, 0, 398, 402, 1493, 1493, 395, 1807, 412, 1224, 0, 1221, 1220, 779, 0, 501, 578, 0, 466, 0, 523, 0, 0, 792, 0, 0, 444, 532, 0, 490, 482, 483, 484, 486, 485, 487, 488, 489, 480, 479, 0, 676, 854, 355, 1456, 718, 0, 0, 689, 0, 755, 760, 759, 1493, 764, 0, 0, 0, 676, 0, 1570, 560, 534, 444, 532, 448, 458, 536, 0, 537, 551, 544, 547, 0, 548, 0, 552, 0, 0, 0, 564, 1503, 1087, 0, 1185, 0, 0, 0, 0, 0, 0, 1228, 609, 0, 0, 613, 604, 676, 1018, 1998, 0, 1999, 0, 0, 2073, 2072, 0, 2112, 1805, 0, 0, 1799, 0, 0, 1829, 0, 0, 0, 1768, 1784, 0, 1764, 1762, 0, 1773, 0, 1775, 0, 0, 0, 1725, 0, 2096, 2098, 0, 0, 1592, 1807, 0, 1589, 0, 1069, 0, 1070, 1100, 555, 0, 1106, 1106, 503, 555, 0, 781, 1287, 0, 678, 578, 0, 302, 0, 277, 1283, 0, 0, 859, 859, 0, 0, 0, 0, 0, 0, 373, 0, 0, 1495, 0, 1496, 1497, 1500, 381, 394, 0, 421, 0, 419, 418, 420, 0, 409, 0, 0, 0, 0, 0, 0, 384, 1219, 1223, 1222, 0, 0, 467, 0, 469, 0, 509, 510, 511, 0, 471, 519, 520, 0, 789, 0, 794, 0, 0, 0, 676, 531, 700, 0, 0, 0, 1450, 0, 0, 558, 0, 766, 767, 762, 0, 0, 712, 1456, 564, 544, 0, 534, 456, 0, 553, 547, 551, 549, 550, 0, 1453, 0, 566, 0, 1094, 1108, 1187, 1182, 1412, 0, 0, 612, 611, 706, 2000, 2076, 2062, 2074, 2107, 0, 0, 0, 0, 1798, 1801, 0, 1832, 0, 0, 0, 0, 1818, 0, 1766, 0, 0, 1774, 0, 0, 0, 1719, 0, 0, 1581, 1591, 1089, 0, 0, 1103, 518, 0, 1091, 1090, 512, 781, 507, 494, 1611, 296, 347, 0, 0, 0, 855, 858, 846, 847, 866, 865, 722, 1611, 0, 369, 368, 0, 372, 0, 417, 426, 0, 424, 399, 404, 0, 408, 406, 405, 400, 403, 0, 500, 0, 0, 0, 0, 0, 521, 0, 522, 554, 0, 793, 0, 0, 0, 702, 853, 0, 0, 442, 676, 756, 761, 0, 0, 1451, 1568, 547, 534, 544, 0, 0, 538, 1098, 1098, 429, 551, 553, 1454, 1455, 0, 0, 355, 1411, 1410, 1664, 0, 0, 2575, 2331, 2547, 0, 2124, 2113, 2124, 2124, 2104, 0, 0, 1830, 1831, 1816, 0, 0, 1820, 1783, 1796, 1727, 0, 1726, 2099, 2100, 1807, 344, 1106, 0, 781, 516, 523, 496, 270, 1611, 849, 0, 265, 0, 374, 1498, 422, 0, 407, 769, 577, 470, 528, 0, 527, 0, 525, 524, 790, 795, 0, 676, 843, 1456, 690, 768, 0, 551, 544, 547, 0, 535, 0, 1100, 1100, 553, 427, 0, 0, 553, 1394, 1664, 1393, 1395, 1403, 1400, 1402, 1401, 1399, 1231, 1232, 0, 2117, 2116, 2115, 2119, 2118, 0, 2111, 2109, 2110, 1802, 0, 1819, 1822, 0, 0, 0, 1828, 1821, 1823, 0, 1794, 1728, 1588, 1071, 1092, 0, 498, 781, 278, 856, 0, 425, 0, 526, 530, 529, 676, 701, 1452, 774, 553, 547, 551, 1098, 539, 541, 540, 431, 1094, 1095, 0, 1807, 0, 1404, 1398, 1646, 1633, 0, 0, 0, 0, 2121, 0, 2122, 0, 1825, 1826, 1827, 1824, 0, 0, 499, 0, 0, 703, 776, 0, 772, 775, 777, 778, 430, 551, 553, 1100, 355, 1093, 0, 1078, 1396, 1664, 0, 0, 2114, 2120, 2123, 0, 0, 517, 370, 0, 740, 0, 553, 428, 542, 553, 1096, 1397, 0, 0, 0, 1795, 0, 773, 432, 1807, 0, 0, 1817, 774, 1079, 0, 0, 0, 1229, 1230, 741 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -4879, -4879, -4879, 3750, -4879, -4879, -878, -27, 2982, -1081, -4879, -4879, -4879, 1196, -4879, -4879, -4879, -4879, 3724, -4879, 2072, -2437, -4879, -4879, 150, 3668, -1298, 98, 3249, 1725, -4879, -1138, -4879, -4879, -494, 115, -4879, 3678, 77, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -681, 2191, -4879, 2279, 1551, 5837, -3085, -4879, -4879, -1347, -3192, -4879, 865, -4879, 892, -4169, -615, -4879, -4879, -4879, 2179, -4879, -4879, -4879, 2122, 1356, -61, -4879, -4879, -4879, -4879, -4879, -4879, -465, -4879, -4879, -709, 152, 44, -2455, -3727, -4879, -4879, 731, -110, -1418, -4879, -3589, -4879, 268, -2154, -4879, -4879, -4879, -77, -1390, 1657, -4879, -697, -1163, 1966, -4098, -574, -4879, 46, -4879, -684, -477, -475, -604, -3773, -4269, -4879, -4879, -4879, -713, -3181, -4502, -4757, -4299, -3832, 1670, -4879, 153, -3150, -3226, 156, 705, -4879, 160, 161, -4879, 721, -407, -898, -1515, -4879, -804, -4879, -4879, -4879, -2923, -4879, -4879, -4879, -4879, 74, -4879, -4879, -4879, -4879, 770, -4879, -4879, -4879, -4879, -4879, -4879, -2674, 2147, 2148, -4879, -3158, -4879, -858, -4879, 916, -2966, 1573, -4879, -4879, 1347, 3739, 757, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -1711, -4879, -4879, -4879, -4879, 272, -55, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 168, -4879, 2163, 1345, -4879, -4879, -50, -4879, -4879, -4879, -4879, -4879, -4879, -663, -4483, -824, -805, -4879, -2917, -4879, -4879, -4879, -22, -4879, -4879, -4879, -4879, -4879, -867, -4879, 1407, -3600, -4879, -4879, 729, -4879, -4879, -4879, -4879, -4879, -580, 39, 2911, -4879, -190, -383, -4879, -4879, -4879, 41, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -1088, 10317, -812, -583, -4879, -4879, -4879, -4879, -4879, -2193, -4879, -4879, -4879, -4879, -3643, -4879, 4642, 2097, 333, 170, -4879, -29, 63, 3494, -1134, -2626, 689, -148, -4879, -4879, -4879, -2568, -4879, -4879, -4879, -4879, -3509, 172, -4879, -678, -4879, -3806, -4557, -3558, -732, -4879, -4052, -4439, -4429, -3501, -4879, -4879, -4879, -4879, -549, -185, 2881, -4879, -1397, 2522, -923, -4879, -2086, 755, 1748, 2898, -2764, -134, 2884, -2505, -657, -3250, -4879, -4879, -2315, -280, -4879, -4879, 1377, 548, -4879, -4879, -4879, -4879, -623, 2827, -181, -4879, -4879, 4040, -4879, -4301, -4879, 4003, -4879, -4879, -4879, -4879, 2739, 2743, -4879, 2746, -4879, -4879, -1393, 1515, -4879, -4879, -4879, -4879, 949, -4879, -4879, -4879, -4879, -4879, -4879, -4879, 1410, 954, -4879, -4879, -4879, -4879, -4879, -546, -721, -4879, -4879, 173, -4879, -4879, -4879, -4879, 2143, -880, -722, 3923, 651, 179, -4630, -4879, -4879, -1112, -4879, 3335, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -2967, -4879, -4879, -4350, -4879, -4879, -4879, -4879, -4879, 3904, 104, 2636, -4879, -4879, -4879, -38, -4879, -4879, -956, 2627, -4879, -1932, -4879, -592, -4879, 2833, -4879, -4879, -4879, -4879, -1873, 181, -3788, -4879, 6, -4879, -4879, 183, -4879, 593, -4879, -4879, -3415, 14, -4879, -4879, -4879, -4879, -4380, -4879, 16, -442, 1123, -2802, -4879, 190, 154, -4879, -4879, 2, 3275, -42, -32, -12, 5, 107, 3392, -4879, -4879, 3433, -4879, 13, 1945, -4879, -4879, -789, -154, -4879, 1872, -653, 2606, 3384, 3378, -4879, 1863, 2640, -1974, -1936, -4879, 1173, -414, -254, -4879, -4879, -4879, -4879, 632, -639, 2623, -4879, 3388, -4879, -4879, -4879, -1930, -2826, -3458, 1201, -3444, -3337, 677, 656, -1307, -16, -43, -758, 3394, -4879, -4879, 1214, -214, -4879, -4879, -212, -2801, 1163, -4879, -4321, -2322, 1222, -671, -502, -4879, -588, -4879, -372, 6869, 2973, -1029, -4879, -4879, -1004, 15354, -4879, -4879, -4879, 15643, 16678, -4879, -4879, 17397, 17630, -4879, -810, 18022, 15009, -1012, -1875, -263, 14141, -1763, -471, 60, -4879, -3435, -2675, -4879, -4879, -4879, 33, 1274, 573, -4879, -4383, -3781, -4879, -4879, 248, -4879, -378, -4879, -377, -4879, -4879, -4879, -2624, -4878, -2618, 2744, -4879, -4879, -4879, -200, -4879, 19171, -2748, -4879, -735, -1322, -1511, -3431, -1886, -4879, -4879, -4879, -4879, -4879, -4879, -4879, -1796, -3299, -493, 1985, -4879, -4879, 2074, -4879, -4879, -4879, -900, 2360, -755, -2638, 1988, -4879, -772, 2750, -769, 8044, -589, 10060, -530, -2209, -1253, -1635, -4879, 4707, -4879, 7349, 6853, 3, -117, 697, -638, -6, 14340, -544, -875, 4425, 12957, 12179, -3159 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 52, 53, 54, 55, 56, 1524, 2497, 2352, 3279, 3280, 57, 58, 1520, 59, 60, 61, 62, 1435, 63, 1016, 1768, 2512, 64, 2185, 799, 800, 801, 2086, 2087, 2436, 2088, 2076, 1322, 1909, 1457, 773, 774, 1417, 1458, 66, 67, 1316, 2067, 68, 69, 70, 1488, 1576, 1489, 1490, 1429, 1815, 4308, 5044, 3076, 2315, 3327, 3077, 3078, 3701, 3702, 3780, 5058, 5059, 71, 1592, 1593, 72, 73, 2478, 3244, 3830, 4661, 4662, 4892, 612, 4331, 4332, 4879, 4880, 5072, 5215, 5216, 2513, 1760, 3322, 3915, 3270, 4402, 3271, 4403, 3272, 4404, 3256, 3862, 3863, 4345, 3864, 3273, 4363, 4924, 3274, 2204, 5088, 2554, 1931, 1929, 4580, 4906, 4170, 4171, 5302, 5096, 5097, 5098, 5324, 4365, 4408, 4409, 4954, 5257, 5258, 3325, 3921, 4415, 4727, 4678, 2961, 75, 708, 1794, 3431, 709, 2557, 646, 710, 2514, 80, 2547, 5090, 2548, 1550, 2366, 3843, 3411, 81, 1042, 3667, 4747, 4981, 4982, 82, 224, 83, 1776, 84, 85, 2492, 3263, 86, 2221, 2978, 87, 88, 3009, 3010, 3011, 89, 3692, 4598, 1491, 3065, 3066, 3067, 3068, 3723, 90, 1771, 2521, 2522, 91, 92, 93, 94, 2673, 2674, 95, 2423, 96, 97, 98, 99, 3757, 4272, 4379, 3106, 3286, 3887, 4377, 100, 3248, 2515, 1784, 2537, 2538, 4389, 4703, 4704, 4705, 4939, 5247, 4707, 4941, 5119, 4943, 4355, 5436, 5437, 4669, 3646, 4184, 102, 4356, 4357, 5103, 103, 2219, 104, 105, 1744, 2484, 2485, 3844, 2564, 3335, 3336, 3901, 3902, 106, 3188, 107, 4248, 4249, 647, 5110, 5050, 5201, 108, 109, 4252, 4253, 110, 111, 112, 113, 114, 700, 701, 702, 1133, 1134, 2933, 1081, 115, 2096, 116, 979, 980, 3223, 117, 1209, 2719, 2720, 4458, 118, 733, 1153, 1154, 2516, 120, 742, 2693, 744, 1946, 3413, 3414, 3983, 121, 122, 2670, 2696, 123, 1422, 2195, 2196, 4165, 2517, 648, 1194, 2561, 2956, 4819, 4820, 5268, 5410, 4575, 4833, 2878, 3597, 125, 649, 1462, 2271, 1101, 1102, 2567, 3339, 2164, 2165, 2166, 3941, 2167, 3341, 2168, 1396, 2169, 1052, 1053, 3347, 3348, 3349, 3937, 3944, 2506, 4737, 4738, 126, 1460, 2269, 127, 128, 129, 1503, 892, 1111, 1112, 130, 661, 662, 131, 4897, 132, 1055, 133, 4745, 134, 135, 764, 765, 1191, 1192, 136, 137, 2285, 3704, 138, 139, 140, 3100, 3101, 4264, 141, 142, 1763, 1764, 143, 144, 3153, 3154, 145, 146, 147, 5350, 5412, 5413, 5414, 3950, 5271, 5352, 1184, 149, 150, 151, 188, 932, 933, 934, 845, 2518, 4729, 153, 154, 1418, 1419, 1420, 1421, 2190, 155, 156, 157, 158, 159, 160, 161, 1748, 162, 163, 4872, 164, 165, 1709, 166, 167, 1345, 1346, 1347, 1348, 2101, 2866, 606, 817, 1351, 1357, 1362, 1363, 1364, 169, 712, 1147, 1148, 1149, 1911, 170, 1187, 983, 713, 1142, 172, 714, 2147, 2908, 3611, 3612, 3613, 3616, 4560, 4143, 715, 2904, 175, 1953, 2679, 2682, 2900, 716, 2913, 2914, 2915, 3619, 717, 735, 1045, 2574, 718, 1283, 180, 181, 182, 826, 820, 821, 2871, 184, 2060, 2847, 751, 1368, 786, 787, 835, 2446, 2113, 2114, 2138, 2139, 1377, 1378, 2126, 2130, 2131, 2891, 2884, 2119, 4130, 4804, 4805, 4806, 4807, 4808, 4809, 4546, 2134, 2135, 1380, 1381, 1382, 2143, 185, 2851, 3571, 3572, 3573, 4107, 4108, 4122, 4118, 4531, 4791, 3574, 1182, 1388, 4539, 5380, 3575, 4780, 4781, 4997, 4126, 3582, 3607, 3310, 3311, 3312, 3576, 5166, 5167, 5377, 5378, 4999, 5000, 2170, 1844, 1083, 1284, 1084, 1856, 1285, 1828, 1086, 1286, 1287, 1288, 1089, 1289, 1290, 1291, 1092, 1820, 1292, 1293, 1838, 1853, 1854, 1352, 5001, 1295, 1296, 1297, 3578, 1298, 4061, 4495, 4481, 2779, 2780, 2083, 4057, 3516, 4051, 2055, 2837, 4813, 5018, 5019, 3555, 4086, 4511, 4778, 5158, 5278, 5279, 5366, 1299, 1300, 1301, 2834, 2051, 895, 1302, 3846, 2053, 2773, 1617, 1618, 1956, 1978, 2726, 2742, 2743, 2753, 3475, 2761, 2766, 3503, 3504, 2774, 2803, 1303, 2728, 2729, 3459, 1980, 1304, 938, 1621, 939, 1975, 2798, 1312, 1305, 1306, 1947, 810, 4787, 1137, 851, 3092, 1701, 941, 748, 1307, 1308, 1309, 1310, 1496, 866, 1104, 1105, 603, 595, 868, 3069, 604, 597, 598, 1706 }; /* 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[] = { 594, 809, 178, 894, 1010, 183, 173, 778, 1928, 825, 1549, 1908, 1615, 859, 174, 1313, 176, 745, 1864, 747, 1317, 899, 893, 753, 904, 737, 183, 836, 767, 775, 745, 737, 782, 2203, 2379, 775, 775, 1402, 811, 1707, 814, 3269, 1173, 1174, 1175, 1117, 1597, 1834, 1179, 1383, 2280, 1554, 3584, 1609, 1344, 846, 1343, 645, 812, 1130, 1824, 1825, 1702, 3350, 2272, 1773, 592, 1840, 3436, 1968, 1833, 1495, 3292, 2449, 1331, 3151, 2542, 3605, 2281, 2926, 2928, 2293, 4172, 1353, 2685, 3673, 743, 1195, 995, 3185, 2725, 902, 699, 3913, 4136, 3848, 3718, 3945, 3720, 779, 3945, 2440, 3417, 4210, 168, 923, 1463, 3871, 3897, 4073, 3618, 4104, 1136, 1127, 1144, 65, 1048, 1746, 3693, 3094, 4731, 1751, 4576, 4422, 4401, 711, 1755, 4167, 4233, 3595, 830, 4121, 1115, 772, 2853, 1119, 1765, 4834, 2310, 1057, 806, 4784, 4724, 1758, 4411, 2788, 4362, 3524, 2176, 3926, 1789, 838, 74, 76, 2264, 2893, 77, 823, 3624, 1786, 78, 79, 601, 1150, 2562, 2863, 1046, 3910, 101, 653, 119, 839, 124, 148, 916, 3579, 2872, 4969, 2624, 152, 2400, 171, 1376, 594, 849, 849, 852, 1343, 849, 4410, 177, 798, 861, 4685, 811, 2896, 1379, 896, 4910, 5130, 861, 4149, 1459, 861, 4040, 4173, 811, -2370, 849, -1889, 2099, 811, 1785, -133, 2264, 849, 4842, 811, -133, 4796, 4956, 4798, -2243, -2408, -2431, -1897, 1812, 1548, 3579, 1824, 1825, 2264, 2404, 2405, 2758, 1575, -2463, 4119, 719, 4124, 659, 4723, 1459, 610, 3481, 1602, -2271, 1459, 1048, 1833, -2272, 1840, 1821, 1822, -2271, -2271, 4864, 2023, -2272, -2272, -1856, 719, 3228, 1832, 3229, 3259, -1869, 3935, 3233, 4486, 3235, 3236, 1349, -2299, 2094, -2373, -1894, 928, 3623, 3240, 3241, 3242, 719, 1855, 719, 1349, 2029, -2630, 2438, 2439, 3282, 1737, 844, 4874, 4875, -2630, -2630, -1884, 1324, 1155, 5112, 1159, 659, 2187, 659, 5049, -2242, 2416, 2533, 1742, 5229, 3208, 815, 2058, 659, 2503, 3004, 857, 2031, 659, 1812, 2695, 4639, 1000, 2283, 5373, 1431, 1812, 3457, -1897, 4423, 2656, 2073, 1492, 659, 659, 3674, 2476, 719, 3081, 758, 1204, 2551, 1812, 1492, 1910, 4640, 1321, 4558, 719, 659, 4245, 2211, 659, -1712, 4460, 4461, 1799, 4463, 4464, 4465, 4466, 4467, 4398, 2796, 3421, 4898, 2552, 1390, 3423, 725, 3260, 1812, 2411, 929, 5263, 5084, 3175, 1812, 1606, 608, 4959, 3989, 2551, 4353, 2332, 725, 725, 4399, 3481, 780, 1170, 2534, 3005, 726, 4960, 5359, 2838, -2429, 725, 5014, 3384, 2023, 3386, 5033, 5034, 1901, 1431, 2552, 2110, 726, 726, 1821, 1822, 4574, 3176, 2209, 930, 2259, 2947, 4680, 2023, 2346, 726, 659, 759, 3006, 894, 1334, 4483, 2283, 2029, 2875, 3104, 5374, 1432, 725, 2671, 725, 1832, 2398, 2074, 2023, 1707, 186, 2959, 2796, 3581, 3177, 605, 2029, 1609, 2301, 3778, 4957, 2081, 5132, 4246, -2134, 4343, 726, 3425, 726, 2031, 3007, -2134, 4701, 3609, 1830, 1831, 5046, 2029, 3306, 4827, 931, 1872, 5011, 3307, 894, 186, 4836, 2831, 2031, 4344, 4702, -2153, 2302, 187, 2832, 186, 1812, 3620, -2153, 5251, 2212, 829, 1335, 2082, 1813, 3779, 1812, 2960, 3610, 2031, 2948, 5343, 2363, 3105, 1004, 1200, 2260, 1959, 3434, 1743, 1014, 2095, 1432, 2876, 2333, 1989, 2850, 2672, 187, 5085, 4354, 2077, 1702, 1028, 2017, 3990, 2089, 2089, 187, 4681, 2839, 1071, 3082, 1812, 4484, 1948, 3426, 5453, 2283, 2283, 2100, 660, 2283, 2016, 2283, 4372, 1958, 3261, 3774, 1607, 2553, 4559, 2063, 2075, 1391, 1912, 3477, 4247, 4961, 1707, 1171, 3008, 1969, 3895, 1743, 3848, 2972, 2477, 4935, 2382, 3836, 4400, 5375, 760, 5400, 2657, 3422, 5376, 3481, 2213, 3424, 4584, 2059, 1048, 2294, -415, 3674, 5184, 1813, 4267, 5083, 4697, 2535, 858, 4641, 1813, 942, 4902, 1951, 1001, 3222, 1048, 811, 3761, 849, 2536, 849, 5230, 852, 987, 849, 1813, 183, 984, 761, 762, 3936, 896, 1743, 1502, 816, 985, 1017, 986, 849, 5262, 2727, 1862, -2429, 1819, 2488, 849, 2250, 1892, 5250, 3262, 4373, 4500, 3209, 1608, 1813, 5443, 2258, 3013, 1522, 1814, 1813, 2347, 4528, 1743, 2152, 4121, 4532, 1206, 1178, 594, 1433, 1835, 2417, 852, 1048, 825, 2374, 1952, 861, 2377, 611, 1523, 896, 1151, 2504, 861, -133, -133, 861, 5125, -1889, 978, 1836, 1036, 1384, 5463, -2370, 1615, 1615, 1615, 2418, 936, 4371, -2243, 849, 937, 1837, 2384, 2393, 4418, -2429, 5398, -2408, -2431, 3369, 3496, 4766, 2797, 1181, 5345, 763, 183, 5212, -2429, 1972, -2463, 4471, -2271, 2050, 731, 732, -2272, 1434, 1152, 4374, 1157, 4177, 1161, 2437, 2210, 2144, 1823, 2364, 1165, 4419, 2367, 2368, 1827, 4563, 2852, 731, 732, 731, 732, 2145, 811, 3639, -1894, 4393, 1143, 1841, 5335, -2299, 2399, -2373, 5300, 2412, 2248, -2630, 894, 1196, 4519, 1813, 4521, 2645, 1835, 1859, 2106, -1884, 1181, 1719, 3848, 1813, 2019, 5030, 2061, 1726, -2242, 1724, 1727, 1311, 1311, 1048, 811, 775, 2856, 1836, 654, 775, 3544, 1048, 1048, 3828, 3829, 838, 1870, 1493, 1494, -2134, 1387, 1839, 1894, 811, 2268, 1048, 2628, 811, 1493, 1494, 1813, 1712, 1146, 1311, 5306, 839, 1438, 936, 4720, 2326, 4756, 937, 2833, 3910, 1037, 811, -2153, 5310, 1423, 2445, 1178, 178, 5261, 2071, 183, 173, 5402, 811, 3620, 3771, 3626, 5283, 3627, 174, 4904, 176, 1406, 2655, 3493, 3494, 3495, 3496, 2602, 811, 3014, 3889, 2539, 2268, 2667, 5255, 3032, 2047, 2048, 2049, 2050, 4157, 3775, 3089, 2973, 2486, 4199, 811, 4237, 4375, 2268, 1333, 849, 849, 2045, 2046, 2047, 2048, 2049, 2050, 2334, 2104, 2295, 840, 1743, 1168, 2104, 4330, 3579, 2675, 4585, 3579, 1952, 867, 4903, 2296, 5442, 2297, 3865, 5405, 5406, 2133, 903, 775, 775, 2893, 2930, 4333, 2905, 2311, 1897, 4990, 1098, 2458, 4334, 1717, 924, 3183, 5269, 3669, 1862, 2937, 1407, 1354, 5388, 659, 1311, 1311, 3090, 168, 3218, 3589, 5239, 1424, 4398, 594, 2986, 1320, 4376, 833, 65, 1328, 4743, 2735, 3600, 659, 861, 5460, 3246, 2120, 896, 4873, 861, 4841, 5254, 861, 4963, 3982, 2298, 4399, 1038, 5344, 3579, 1416, 4964, -1856, 2264, 841, 4250, 605, 849, 2392, 833, 4147, 1408, 2816, 1372, 74, 76, 3587, 3621, 77, 5336, 4948, 5424, 78, 79, 912, 2121, 3478, 3479, 1504, 811, 101, 3498, 119, 1039, 124, 148, 849, 849, 4265, 5465, 5038, 152, 3004, 171, 772, 1568, 4848, 2500, 4172, 607, 2676, 5092, 177, 913, 2584, 2585, 3822, 3823, 811, 811, 811, 2540, 849, 4436, 594, 594, 594, 2379, 3528, 3529, 784, 3821, 3491, 3492, 3493, 3494, 3495, 3496, 5407, 4291, -1856, 4761, 5411, 2197, 2736, 1374, 2945, 5025, 655, 1156, 1158, 1160, 1040, 3118, 1162, 1163, 1164, 4979, 1041, 1505, 2312, 2198, 4870, 4386, 1169, 4788, 705, 1409, 746, 2722, 4792, 4251, -2240, 4794, 1862, 4785, 2906, 3375, 2197, 3005, 5320, 4782, 2581, 1581, 1425, 4871, 15, 2495, 2313, 4475, 5270, 4476, 2123, 2555, 849, 5441, 849, 849, 1586, 4863, -671, 3878, 1334, 1897, 1587, 2931, 656, 2817, 2932, 3918, 1805, 1707, 2818, 2314, 4991, 3946, 2737, 3184, 4173, 2199, 20, 2186, 1426, 4965, 2501, 1582, 1834, 3004, 1846, 1311, 785, 4173, 1615, 3119, 5105, 5093, 1743, 2200, 5464, 3247, 1846, 2444, 40, 5245, 657, 4360, 658, 2794, 2309, 2819, 183, 2124, 5124, 1777, 2199, 1427, 5139, 1707, 5475, 1930, 1930, 5476, 3845, 3340, 811, 3670, 745, 2664, 2665, 4716, 1335, 5127, 2200, 4744, 3211, 3945, 4457, 2738, 44, 5104, 2739, 842, 811, 1200, 1850, 3866, 3120, 2541, 1965, 1099, 3169, 811, 1718, 5185, 1971, 1778, 3170, 4710, 5190, 3947, 1847, 5341, 5342, -1856, 3005, 2677, 4292, 1588, 1311, 5094, 5026, 1514, 1847, 2987, 3579, 5420, 5126, 2605, 1781, 48, 5155, 4722, 1428, 1862, 1413, 2678, 1414, 4477, 3072, 4980, 3372, 2617, 49, 2721, 825, 2724, 2925, 4599, 1311, 1782, 2583, 2731, 4348, 3121, 2623, 4569, 3742, 2745, 2746, 2747, 2215, 3008, 3942, 2017, 982, 50, 3695, 2763, 2765, 5045, 2216, 1848, 2775, 3879, 1849, 3126, 1311, 1311, 1311, 2907, 1311, 5394, 1806, 1848, 2496, 5321, 1849, 936, 2201, 3197, 3073, 937, 2579, 5117, 2740, 1587, 2820, 659, 3850, 1583, 1311, 3373, 5421, 4173, 32, 1881, 1702, 2622, 2466, 3171, 894, 2630, 1914, 2603, 1916, 2637, 1918, 2102, 1920, 5028, 1922, 1923, 1924, 2201, 831, 5118, 1005, 1926, 2616, 2898, 1515, 2618, 1005, 4986, 40, 3018, 1807, 5361, 811, 5007, 2111, 2112, 4361, 2116, 3853, 1005, 1387, 1882, 2654, 3126, 2467, 3122, 2659, 4562, 4915, 5444, 2663, 3948, 1140, 2666, 839, 839, 5322, 839, 1150, 3743, 5156, 5128, 1311, 1779, 44, 1589, 1311, 1311, 750, 3696, 2751, 2897, 1850, 3686, 3661, 3074, 5422, 811, 811, 2150, 3008, 1311, 832, 5323, 1850, 2658, 756, 1862, 2661, 2662, 5157, 4349, 1588, 3855, 2202, 2206, 1584, -1856, 2741, 4916, 1783, 2120, 1850, 1590, 775, 48, -1856, 4917, 1823, -1856, 1401, 2022, -1856, 1406, 2023, 2217, 3662, 1559, 49, 5048, 3949, 3019, 5395, 4455, 5052, 5053, 2205, 1808, 2899, 2202, 1207, 3772, 3079, 3579, 4431, 4918, 1591, 3579, 2191, 2255, 2121, 50, 2510, 2029, 775, 3687, 1177, 849, 1366, 2192, -2631, 3848, 833, 2218, 2206, 51, 3102, 3172, 1560, 811, 2282, 3318, 3137, 4213, 5181, 3123, 1780, 2193, 1561, 811, 5362, 757, 849, 3124, 2117, 2031, 3125, 3179, 1516, 1809, 4671, 2369, 1851, 1913, 4947, 3858, 1915, 936, 1917, 4919, 1919, 937, 1921, 1407, 1851, 3173, 1925, 1372, 896, 2122, 811, 1852, 4920, 3773, 775, 1883, 3698, 2243, 2468, 2686, 3180, 1481, 928, 3744, 4921, 3155, 1517, 3382, 5423, 1615, 2511, 775, 4847, 811, 2759, 2395, 811, 3859, 3174, 1178, 5187, 5188, 2777, 4235, 4224, 4137, 4711, 4214, 3178, 4934, 3075, 4958, 3530, 3860, 4352, 1408, 758, 2123, 1367, 1518, 1392, 3745, 1349, 3533, 624, 3534, 2065, 5198, 4782, 617, 3138, 4024, 811, 4025, 4877, 3697, 3698, 4006, 3141, 1374, 2118, 3144, 1810, 849, 849, 849, 849, 811, 3535, 4387, 3663, 4392, 3111, 3112, 3746, -2631, 3115, 4173, 1393, 834, -2631, 811, 1862, 3030, 3699, 2350, 2207, 4138, 783, 1403, 2353, 4180, 1311, 1311, 1311, 4236, 2124, 4346, 1884, 929, 1375, 2469, 2194, 3257, 626, 2370, 2649, 1556, 2371, 1562, 2379, 1394, 2433, -569, 2066, 4322, 3685, -2631, 5199, 4325, 4326, 759, 4328, 1416, 3027, 2434, 3289, 1404, 1416, 3861, 3845, 1409, 1397, 624, 1048, 1519, 2885, 3212, 3213, 3214, 928, 2942, 930, 1563, 4581, 1557, 35, 1564, 807, 3301, 3302, 3303, 3304, 2435, 4263, 40, -1081, 894, 894, 2421, 1405, 3309, 2604, 2427, 2038, 4347, 1398, 4015, 2577, 3136, 1399, 3969, 4181, 3664, 725, 2349, 3536, 2614, 1558, 4026, 1565, 3537, 5259, 818, 4922, 1410, 3337, 4923, 3218, 4027, 2450, 44, 811, 626, 3816, 827, 4041, 1416, 726, 931, 4112, 1416, 3159, 1400, 849, 849, 4134, 4020, 4021, 4022, 4023, 828, 4582, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 1411, 849, 5111, 2507, 35, 5138, 4182, 40, 4183, 48, 4113, 3288, 3203, 2289, 929, 2290, 3293, 4900, 2955, 4439, 811, 4440, 49, 2650, 3050, 4534, 3052, 2544, 2023, 3776, 1330, -2631, 4686, 1412, 5108, 4115, 849, 849, 849, 849, 624, 5131, 637, 44, 638, 50, 4077, 4078, -2262, 811, 760, 5122, -156, 5409, 3298, 2651, 811, 930, 2450, 51, 894, 1532, 3645, 1481, 5384, 1413, 1029, 1414, 2652, 643, 594, 1522, 3181, 594, -1087, 1551, 2291, 852, 4687, 4180, 3728, -156, 1311, 3116, 48, 3051, 843, 3053, 4978, 2031, 5149, 761, 762, 3729, 1523, 4755, 4173, 49, 3538, 1533, 626, 1030, 5077, 2653, 4937, 3182, 2669, 5078, 3539, 3845, 3359, 2959, 3579, 1552, 931, 40, 1415, 861, 861, 3579, 50, 3410, 844, 5086, 3579, 624, 3330, 3579, 896, 896, -2631, 637, 861, 638, 51, 861, 1031, 2045, 2046, 2047, 2048, 2049, 2050, 5041, 640, 2369, 4117, 1862, 4665, 3579, 4938, 44, 849, 849, 5467, 642, 3945, 5079, 1759, 849, 4181, 811, 3579, 5252, 1522, 853, 3514, 3642, 1787, 855, 5259, 4684, 3521, 183, 2680, 2505, 4173, 2431, 875, 2869, 4159, 4666, 5074, 1032, 5076, 626, 1930, 1523, 5080, 5081, 1326, 1788, 48, 849, 2602, 861, 2870, 918, 861, 861, 2301, 811, 811, 2692, 849, 4823, 4974, 4825, 4695, 5253, 4715, 811, 2069, 5241, 876, 2432, 3770, 4182, 811, 4183, 1535, 1553, 927, 877, 987, 745, 745, 183, 984, 2697, 878, 879, 880, 1311, 2302, 1311, 985, 5116, 986, 1536, 1311, 1311, 51, 1889, 3922, 4588, 4589, 1311, 1311, 1311, 1835, 2442, 2443, 1311, 896, 1311, 1311, 1311, 1311, 1311, 1311, 637, 1311, 638, 1311, 1311, 1890, 1002, 1311, 1003, 4293, 1836, -440, 1146, 4178, 3432, 3433, 4173, 1903, 2370, 935, 1904, 2371, 1311, 1311, 1311, 1311, 3480, 1759, 1537, 849, 1311, 1048, 4294, 2691, 1311, 3981, 894, 1311, 3508, 4675, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 2988, 1311, 2718, 2993, 2994, 2283, 2992, 811, 1311, 2089, 1311, 3739, 5148, 4601, 3579, 2284, 2341, 811, 3583, 4605, 4310, 3531, 2639, 3409, 2640, 989, 2641, 3982, 2642, 5337, 2643, 5347, 3353, 2358, 2644, 1029, 637, 1048, 638, 5348, 29, 4311, 4160, 5332, 2980, 4342, 811, 5082, 4161, 3740, 991, 1372, 4882, 1311, 1525, 4162, 1373, 811, 811, 3557, 1835, 4870, 3453, 1759, 5115, 1538, 3625, 2104, 1311, 4870, 1030, 994, 1594, 3579, 734, 1598, 5192, 1311, 1311, -440, 734, 1836, 3741, 4656, 4871, 4657, 4658, 3395, 3585, 4659, 4163, 811, 4871, 997, 40, 1837, 4883, 3898, 2911, 1011, 2916, -1685, 1897, 225, 2909, 3891, -1685, 3908, 3675, 609, 5401, 3026, 4164, 1539, 1024, 1835, 1540, 703, 2949, 2283, 2952, 4884, 1960, 1374, 3118, 1961, 5397, 2378, 1577, 2292, 44, -568, 852, 40, 3703, 781, 1836, 2097, 4885, 4223, 2098, 745, 4886, 745, 3275, 3542, 3, 4, 2946, 3850, 1839, 4394, 1032, 2318, 1006, 3851, 1007, 3012, 719, 1542, 1311, 2865, 4887, 2319, 1375, 4888, 1578, 3852, 719, 44, 1579, 48, 594, -1685, 849, 849, 3593, 5180, 1033, 861, 4889, 896, 861, 861, 49, 849, 1035, 849, -1646, 3117, 1823, 849, 1401, 5434, 811, 3853, 3454, 3854, 1535, 1580, -1646, 3455, 1034, 1544, 3119, -1646, 3598, 50, 5466, 1050, 48, 719, 3, 4, -1685, 3579, 775, 1536, 1054, 3849, 4838, 51, 1097, 49, 3307, 1545, 2282, 4208, 5305, 4111, 3507, 1513, 3509, 3510, 3037, 811, 1530, 1106, 4200, 2759, 2759, 1113, 3049, 1615, 2759, 1547, 50, 2424, 4421, 1615, 3855, 811, -1646, 1107, 1181, 1181, 3994, 3120, 1181, 1124, 5349, 3630, 4890, 3200, 3631, 3632, 1823, 1537, 2177, 1048, 1131, 811, -1646, 705, 1141, 3579, 3093, 3093, 3856, 719, 4156, 2759, 2759, 2894, 2895, 1823, 3678, 2177, 3374, 3376, 3377, 811, 811, 15, 4238, 811, 3894, 852, 775, 2103, 1172, 4112, 2104, -1646, 3579, 4215, 1180, 4222, 3276, 3957, 3958, 1176, 4891, -1646, 3121, -1646, 3634, 2572, 1183, 2573, -1646, 849, -1646, 2804, 849, 2805, 2108, 20, 2634, 2098, 4218, 2104, 1186, 2486, 4113, 3867, 1976, 3857, 51, 3837, 5386, 4555, 3858, 1188, 2646, 811, 811, 2647, 2806, 4114, -1707, -1707, 5318, 1538, 936, 1823, -2243, 2177, 937, 4115, 3186, 3734, 3189, 3191, 3558, 1190, 3559, -1646, 883, 884, 885, 1189, 886, 887, 888, 889, 890, 891, 2648, 3155, 2683, 2647, 1193, 2684, 3859, 4116, 2868, -1646, 1048, 1897, 1197, 1311, 1311, 1311, 5449, 2917, 5450, 1311, 2104, 2311, 3860, 1539, 3024, 849, 1540, 3025, 4789, 40, 2311, 3579, 3096, 849, 3122, 3097, 849, 2378, 1181, 4878, 1198, 2509, 849, 5141, 3755, 3252, 1201, 5431, 3253, 2526, -1646, 1311, 1200, 849, 3360, 4175, 4176, 2104, 4928, -1646, 3652, 2424, 3560, 3764, 3561, 44, 1199, 2282, 3401, 1542, 3093, 2647, 811, 2807, 5382, 811, 1203, 3277, 2808, 3291, 1202, -1646, 745, 2809, 3452, -1711, -1711, 2104, -1645, 5031, 3461, 1208, 4117, 2104, 849, 1311, 3443, 1329, 5036, 3446, -1645, 4405, 3447, 3845, 3467, -1645, 48, 2104, 1214, 5280, 5281, 3481, 3186, 1544, 3340, 3482, 3483, 3484, 3861, 49, 1210, 831, 849, 32, 3323, 3468, 3278, 1336, 2104, 3319, 2376, 3294, 1332, -1686, 5299, 1545, 2606, 1337, -1686, 2401, 2311, 3439, 50, 936, 1342, 3469, 1358, 937, 2104, 4412, 1338, 1311, -1645, 40, 3123, 1547, 51, 2781, 3500, 1350, 2784, 2104, 3124, 2424, 3884, 3125, 3513, 3518, 3579, 2104, 3519, 3721, -1645, 3726, 3722, 2312, 3727, 1355, 849, 4790, 849, 3093, 849, 3093, 2312, 832, 1356, 5448, 3750, 44, 894, 3751, 3931, -1710, -1710, 3932, -1646, 2311, 2602, 3933, 1358, 2722, 3934, 2313, 3955, -1686, 4047, 2104, 4058, 4048, 1359, 4059, 2313, -1645, 3877, 1370, 3880, 4000, 1930, 4053, 1385, 4069, -1645, 2810, 2104, 1386, 4145, 4970, 2314, 4146, 48, 1389, 2022, 2811, 706, 2023, 1395, 2314, 3985, 5367, 5368, 4150, 3579, 49, 4151, 1401, -1686, 4155, 3579, 2430, 2932, 1461, 5481, 4179, 3594, 833, 2647, 4395, 1436, 4452, 2647, 1466, 1952, 2309, 2029, 4472, 50, 4501, 2104, 594, 2684, -2631, 2309, 1467, 4513, 861, 1214, 2104, 861, 3481, 707, 861, 1609, 3482, 3483, 3484, 4223, 3485, 4758, 3919, 849, 3920, 825, 1048, 2312, 1048, 2031, -2273, 1311, 4565, 2722, 1464, 2932, 1311, 4571, 4577, 3015, 4572, 2647, 3486, 2311, 4578, 4717, 4763, 2647, 4718, 4764, -2535, 4765, 4017, 4772, 2104, 2313, 2684, 1502, 1506, 1311, 1311, 1311, 4843, 4929, 1311, 4844, 2647, 4971, 4111, 825, 4972, 1507, 1311, 1311, 1311, 1311, 3868, 4335, 3870, 4336, 2314, 1358, 3579, -1634, 2312, 1311, 4046, 1369, 1311, 1371, 1311, 4987, -1645, 1508, 2684, 4994, 3541, 1519, 4995, 4597, 4715, 1311, 1311, 1521, 3487, 1311, 3993, 5004, 5010, 1048, 1897, 3905, 2313, 5012, 1531, 2309, 3905, 896, 4533, 1311, 4536, 1311, 1569, 1311, 5023, 834, 1534, 5024, 1570, 3978, 4216, 4089, 2311, 5067, 1585, 4127, 5068, 2314, 1596, -2631, 4112, -2535, 5107, 1311, -2631, 2068, 5140, 811, 5150, 5024, 5151, 2684, 3091, 3519, 3580, 5152, 1595, 1599, 2104, 3939, 5163, 2918, 3079, 5164, 4234, 1535, 4196, 3563, 3564, 3565, 811, 5169, 2309, 4113, 1897, 825, 1604, 5172, 1311, 2934, 3905, -2631, 1605, 1708, 1536, 2938, 3102, 5191, 4114, 2941, 2647, -2535, 1214, 1311, 1711, 3481, 1710, 2312, 4115, 3482, 3483, 3484, 1713, -2535, 1716, 3155, 2311, 3580, -2535, 5197, 3486, 3614, 2684, -2535, 3617, 2965, 2916, 1720, 5203, -2535, 3577, 2684, -2535, 1721, 4116, 2313, -2535, 5204, 2038, 5207, 2684, 1729, 2104, 5208, 1537, 5209, 2104, 5237, 5210, 5287, 5238, 3769, 5288, 5291, 5292, 5293, 1897, 2104, 2104, 5295, 2314, 5314, 2104, 5339, 5315, -2535, 5340, 1311, 4262, 3093, 4316, 3020, 4329, 1468, 1930, 5369, 1730, 2311, 3905, 1469, 1733, 5381, 3487, 3577, 5017, -2535, 5408, 1736, -2537, 5024, 1005, 5446, 1470, 1739, 5447, 2309, 2312, 5459, 1741, 5461, 2104, 849, 5462, 849, 849, 849, 3488, 3489, 3490, 2311, 3491, 3492, 3493, 3494, 3495, 3496, 4985, 5479, 1747, 4117, 5288, 1471, 1750, 3070, 2313, 3777, -2535, 1752, -2631, -2535, 1538, 2759, 2759, 2759, 2759, -2535, 1743, 2759, 2759, 2759, 2759, 2759, 2759, 2759, 2759, 2759, 2759, 4319, 3098, 2314, 1761, 5487, 1766, 4496, 5462, 3108, 1762, 1767, -176, 1769, 1770, 3113, 1772, 1774, 4050, 1775, 1790, 1804, 1005, 1811, 2312, 1472, 3128, 1797, 3594, 1473, 205, 3132, 1539, -2537, 1816, 1540, 1474, 1817, 2309, 1475, 3810, 1818, 1819, 1823, -2535, 1826, 2378, 2759, 2759, 1827, 1829, 3145, 2313, 1843, 1845, 1857, 3147, -2631, 1858, 1861, 3150, 1862, 1869, 1873, 1476, 1875, 1876, 1878, 2311, 1880, 1886, 811, 4201, 3167, 1888, 29, 1885, 2314, 1542, 1893, 1900, -2631, 1896, -2537, 1899, 2312, 3192, 1902, 2045, 2046, 2047, 2048, 2049, 2050, 1957, -2537, 1005, 1964, 1477, 750, -2537, 1927, 1966, 1967, 1973, -2537, 1974, -1860, -1867, 1981, 1982, -2537, 2309, 2313, -2537, 1983, -1857, 2312, -2537, 3487, -1858, 1984, 1544, 1985, 51, 1987, -2535, 1988, 3488, 3489, 3490, 1989, 3491, 3492, 3493, 3494, 3495, 3496, 2314, 1990, 1991, -1861, 1992, 1994, 1545, 2313, 1995, -2537, 1996, 4449, -2535, -1859, -2535, -2535, 1997, 1998, 1999, 1478, 2000, 1479, 2001, 2003, 2004, 2005, 1547, 2006, 2007, -2537, 40, 1480, 2314, 2008, 2009, 2309, 2056, 2010, 2054, 4239, 1481, 1311, 2058, 4691, 2072, 2059, 2068, 1311, 2084, 2092, -2535, 2107, 1482, -2535, -2535, -2535, 849, 2109, 1373, 1375, 2140, 3093, 3093, 1707, 2151, 2142, 44, 2309, 2153, 2154, -2537, 5162, 2155, -2537, 2156, 2172, 4367, 4368, 2173, -2537, 2174, 2175, 2177, 2722, 2312, 2178, 2179, 2180, 2181, 2182, 1483, 2183, 2022, 1484, 1485, 2023, 811, 811, 811, 2208, 2189, 2214, 2220, 2245, 2252, 2249, 2251, 48, 2253, 2254, 2256, 179, 2313, 811, 2257, 2273, 2275, 2274, 2286, 2287, 49, 2288, 2303, 1486, 2029, 2305, 3929, 2299, 2308, 2306, 2307, -2631, 179, 2309, -2537, 1930, 811, 2314, 2316, 2317, 2322, 2320, 2321, 50, 2327, 1930, 811, 811, 2331, 4482, 2328, 811, 2337, 2342, 3093, 2338, 2031, 51, -1405, 2339, -1405, 2343, 824, 811, 4405, 2348, 2344, 3925, 2345, 2351, 2354, 2365, 2309, 3488, 3489, 3490, 2372, 3491, 3492, 3493, 3494, 3495, 3496, 2375, 2355, 1481, 2356, 2387, 2360, 750, 1487, 2361, 2390, 2396, 3953, 2397, 2394, 2413, 2414, 2373, 2380, 3415, 2381, 2419, 2441, 1439, 4553, 2385, 2386, 2389, 2391, 2402, 1181, 2403, 2415, 2420, -2537, 2425, 2759, 3429, 4444, 4445, 4446, 4447, 4448, 2429, 2448, 3415, 849, 2452, 2454, 2455, 2457, 2461, 4083, 2456, 2462, 2463, 2464, 1440, -2537, 2465, -2537, -2537, 2471, 2472, 2473, 2474, 4604, 811, 2475, 2481, 2022, 2479, 2482, 2023, 2487, 2490, 2491, 2024, 2025, 2026, 811, 619, 2494, 811, -2631, 2499, 2508, 1553, 2519, -2631, 2505, 2480, 2523, 2527, 2027, 2532, -2537, 2543, 2524, -2537, -2537, -2537, 2029, 2546, 2549, 1311, 2550, 4663, 2559, 2030, 2569, 2571, 837, 2575, 1311, 2563, 1442, 2566, 2580, 2586, 1311, 2588, 1311, 2589, 2593, 1311, -2631, 2607, 2596, 2597, 1311, 1311, 1311, 1311, 2031, 2594, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 2598, 2600, 2599, 1311, 1311, 1443, 2609, 2610, 2611, 2612, 2625, 2626, 2660, 1311, 2668, 4736, 825, 1311, 2681, 2694, 4551, 1311, 2732, 2727, 2776, 2023, 2782, 2038, 2786, 1311, 2795, 2815, 1311, 2801, 1311, 825, 3594, 2813, 2835, 2836, 2850, 1444, 2855, 1311, 2858, 2859, 1311, 1311, 2860, 2861, 832, 1311, 1311, 2887, 2910, 2874, 4087, 2886, 1311, 2888, 3594, 2889, 2903, 2921, 2922, 811, 811, 811, 594, 2924, 2950, 3580, 4109, 2953, 4595, 1445, 4109, 4123, 4109, 4091, 4092, 4093, 4094, 1311, 2955, 2957, 2958, 2974, 4487, 2964, 2969, 2979, 2981, 2985, 2989, 3000, 2975, 2999, 2032, 2977, 3016, 987, 3003, 2033, 183, 984, 3017, 1447, 1311, 1326, 1330, 3022, 3033, 985, 3040, 986, 3041, -2631, 5425, 5426, 3054, 3059, 2916, 3086, 1311, 2034, 2035, 3060, 3088, 3085, 3095, 3107, 3103, 3127, 3577, 3131, 3187, 3577, 3206, 4524, 2036, 3207, 4174, 1930, 1930, 3199, 2450, 3210, 35, 833, 2266, 4635, 1449, 3219, 3225, 3230, 3231, 3232, 4700, 3238, 3243, 1450, 4676, 849, 849, 849, 849, 3266, 3281, 1451, 3254, 3267, 3283, 2037, 3285, 3296, 3305, 2267, 3299, 3650, 3314, 3316, 5037, 3287, 3317, 3313, 3321, 2038, 3308, 1453, 2039, 3315, 2282, 3324, 3326, 1535, 3328, 3329, 1454, 3332, 3333, 3351, 1455, 3352, 3354, 3355, 3356, 3358, 3577, 4642, 4643, 4228, 4645, 3363, 1536, 3361, -2631, 3364, 3365, 3366, 2379, 3379, 1850, 2045, 2046, 2047, 2048, 2049, 2050, 3367, 3371, 3380, 3391, 3393, 3394, 3400, 3398, 3403, 3594, 3404, 3405, 3406, 3407, 1897, 1894, 3408, 1859, 3416, 4693, 2695, 3419, 5071, 3418, 3420, 3427, 1456, 3430, 1178, 3435, 3437, 3444, 3442, 3449, 3441, 1537, 4217, 3445, 3466, 3463, 3477, 4273, -2126, 2211, 3532, 3515, 3464, -2552, 2040, 3465, 2104, 2022, 3549, 3470, 2023, 3471, 3473, 3476, -2631, -2631, -2631, 3730, 3499, 5061, 4881, 5063, 3505, 3512, 2022, 3527, 3526, 2023, 3540, 3550, 3554, 3590, 3552, 4313, 3581, 3596, 3553, -1713, 3601, 2029, 3556, 3591, 3604, 3608, 3602, 3606, 2030, 3615, 3628, 3622, 3644, 3640, 3633, 3636, 4218, 3647, 2029, 3635, 3649, 3656, 3671, 3682, 3672, -2631, 3684, 849, 3689, 3688, 3690, 3691, 3641, 2031, 3707, 3706, 3694, 3709, 3715, 1538, 811, 3716, 849, 3717, 1311, 3725, 3735, 3754, 3752, 3756, 2031, 811, 1952, 3760, 3759, 1214, -2552, 4358, 3481, 3765, 3763, 3767, 3482, 3483, 3484, 2041, 3768, 2282, 2042, 2043, 2044, 3783, 2045, 2046, 2047, 2048, 2049, 2050, 3781, 4066, 3782, 3784, 811, 179, 3796, 3472, 3580, 1539, 3785, 3786, 1540, 3787, 3788, 3789, 3790, 3791, 3186, 3793, 3800, 3792, 3811, 2378, 3794, 4219, 3795, 4406, -2552, 3802, 3797, 3804, 3806, 3807, 5220, 5222, 2411, 811, 4926, 4076, -2552, 2450, 3813, 3817, 4416, -2552, 3820, 3809, 1311, 1311, -2552, 5214, 3814, 3815, 894, 1542, -2552, 3824, 3825, -2552, 3827, 3833, 3835, -2552, 3875, 2032, 3885, 3882, 3876, 4830, 2033, 3886, 3888, 3890, 3577, 3893, 3093, 3905, 3093, 3907, 3923, 3904, -2631, 3914, 3924, 811, 3928, -2631, 3917, 3927, 3943, 3952, -2552, 3972, 4849, 3959, 3930, 3973, 3974, 1544, 179, 824, 3963, 3975, 3960, 3965, 3976, 2036, 4993, 3986, 3977, 3984, -2552, 3997, 3998, 3987, 3961, 3988, 3999, 4854, 1311, 1545, 2759, 3979, -2631, 4009, 4001, 4002, 4003, 1214, 1976, 1311, 3481, 4004, 4005, 3502, -2631, -2631, -2631, 3481, -2125, 1547, 3501, 4220, 4060, 4071, 4221, 4084, 4989, 4043, 4018, 4129, 4044, -2552, 2038, 4072, -2552, 4125, 4045, 4101, 4139, 1311, -2552, 4052, 1311, 4075, 4142, 4148, 4736, 4144, 4166, 2038, 1311, 1311, 4090, 5316, 4102, 4110, 3486, 1311, 1311, 4131, 4133, 4135, 1311, 4158, 4187, 2016, 4202, 1311, 4189, 4195, 1311, 1311, 4190, 4204, 5073, 1311, 4512, 4203, 4205, 4207, 4209, 1311, 811, 811, 811, 811, 4212, 4226, 2424, 4109, 4123, 4109, 4211, 1311, 4109, -2552, 4229, 4526, 837, 4241, 179, 3580, 4242, 4243, 4254, 3580, 3980, 4255, 4257, 4244, 4256, 4541, 4258, 4268, 4259, 4270, 4271, 4281, 3487, 4282, 4287, 4305, 2040, 4290, 4307, 2309, 896, 4309, 4217, 5056, 5057, 3996, 4312, 1311, 4567, 4320, 4321, 3614, 4323, -2631, 4324, 4327, 2916, 4554, 4556, 4364, 4339, 4350, 4370, 4378, 750, 4384, 4385, 2647, 4388, 4390, 4391, 745, 4397, 4407, 1311, 4413, 4414, 4424, 4437, 4429, 4432, 3577, 4430, 4433, 1468, 3577, 4434, 4435, 5214, 4438, 1469, -2552, 4450, 4442, 3093, 3093, 4454, 4462, 4456, 4474, 4469, 4478, 5227, 4479, 4881, 4485, 4488, 4489, 5003, 4490, 4494, -2127, 2282, 4509, 4522, -2552, 4529, -2552, -2552, 5003, 4537, 4525, 4527, 4530, 4538, 4600, 4608, 4543, 4542, 4544, 4545, 4550, 1471, 4552, 4607, 2041, 4564, 4561, -2631, -2631, -2631, 4566, 2045, 2046, 2047, 2048, 2049, 2050, 4568, 4574, 4579, 4573, -2631, -2552, 4583, 4602, -2552, -2552, -2552, 2045, 2046, 2047, 2048, 2049, 2050, 4603, 4606, 4612, 5154, 4613, 2022, 4614, 4632, 2023, 4625, 1311, 4634, 2024, 2025, 2026, 4628, 4646, 4637, 4654, 3487, 5171, 1473, 4638, 4655, 5173, 4660, 5175, 4664, 1474, 2027, 4667, 1475, 849, 5065, 2759, 4673, 5286, 2029, 4668, 4674, 4682, 4683, 4677, 4692, 2030, 4688, 4689, 849, 4690, 4696, 4698, 4706, 4709, 4719, 4714, 4721, 1476, 4725, 2759, 3488, 3489, 3490, 4726, 3491, 3492, 3493, 3494, 3495, 3496, 2031, 4728, 5060, 4730, 4732, 4733, 4741, 4746, 4734, 4752, 1311, 4753, 4759, 4768, 1048, 5189, 4769, 4793, 4777, 4760, 4762, 1477, 4812, 4821, 4770, 4771, 594, 4818, 4824, 4835, 4840, 4783, 2282, 4786, 4845, 4846, 4797, 4851, 4815, 1214, 4837, 1930, 3481, 4839, 4857, 4197, 3482, 3483, 3484, 4876, 894, 4858, 4862, 4867, 4868, 4869, 1311, 4896, 4349, 2022, 4907, 4905, 2023, 4067, 4914, 4908, 4911, 4932, 4913, 849, 4933, 3323, 4940, 4942, 4945, 4950, 4712, 4975, 4973, 4977, 1478, 4952, 1479, 4976, 4996, 4992, 5186, 5002, 5017, 3594, 5021, 2029, 1480, 5040, 5170, 5006, 5009, 5042, -2631, 5013, 894, 1481, 5015, 179, 5032, 811, 5049, 5043, 596, 5087, 2032, 5055, 5089, 1482, 4853, 2033, 5095, 5102, 5099, 4855, 5114, 5100, 5109, 2031, 5120, 5121, 5129, 5133, 5134, 5135, 5136, 5137, 5144, 5145, 5146, 5161, 5174, 2034, 2035, 5147, 5178, 5182, -2631, -2631, -2631, 1311, 3491, 3492, 3493, 3494, 3495, 3496, 2036, 5183, 1484, 1485, 5153, 4895, 5177, 5196, 4295, 5219, 5225, 4298, 5200, 5226, 5231, 5233, 1977, 5236, 5240, 5243, 5244, 5264, 1311, 1311, 5265, 5267, 1311, 5272, 5266, 5273, 5301, 5282, 1486, 2037, 5309, 5284, 1986, 4085, 4079, 5303, 5311, 594, 5317, 5319, 4109, 5229, 5230, 2038, 3580, 5440, 2039, 1048, 2759, 3580, 5327, 5360, 3580, 594, 5326, 3186, 5328, 4799, 5346, 1311, 1311, 5365, 5372, 2002, 5393, 5417, 5418, 5379, 5385, 5390, 5399, 5419, 5427, 5429, 4174, 5433, 1311, -2631, 2014, 5451, 5452, 5455, -2631, 5454, 3486, 5456, 5469, 4174, 896, 849, 849, 849, 5470, 5477, 5480, 1487, 5478, 5482, 5483, 1360, 2426, 3290, 1567, 3577, 3588, 2091, 4380, 3160, 5440, 3700, 3577, 1566, 1465, 4232, 4225, 3577, 5312, 3084, 3577, -2631, 3198, 3245, 3832, 4893, 5213, 2424, 5440, 5391, 4366, 4951, 4672, 4925, 3638, 2040, 3402, 596, 5304, 861, 896, 4828, 3577, 5387, 5234, 5232, 596, 869, 3487, 5325, 5404, 3643, 4417, 4396, 596, 3577, 869, 596, 5194, 3719, 4359, 4230, 4931, 3264, 3265, 3892, 837, 837, 2038, 837, 869, 1555, 4383, 3255, 4694, 3900, 4936, 5392, 5432, 5484, 5474, 4909, 861, 3838, 4425, 811, 5330, 4856, 5051, 5060, 2498, 5202, 4859, 752, 4451, 1949, 2021, 4358, 5027, 5445, 811, 2022, 3415, 3629, 2023, 811, 2568, 3093, 2024, 2025, 2026, 2927, 4426, 4968, 2282, 5142, 2759, 4930, 2576, 2613, 1125, 2565, 2688, 4260, 1049, 2027, 2689, 3803, 2028, 4816, 2690, 811, 3896, 2029, 2041, 4406, 593, 2042, 2043, 2044, 2030, 2045, 2046, 2047, 2048, 2049, 2050, 4280, 5351, 849, 811, 4174, 5468, 1339, 3522, 4966, 1361, 2864, -2631, 2873, 2638, 4817, 4557, 5298, 1214, 2031, 4152, 3481, 2064, 3592, 2105, 3482, 3483, 3484, 2902, 3603, 1311, 2188, 2136, 1311, 4132, 1311, 2883, 5294, 825, 2137, 5176, 4548, 4503, 2022, 2901, 2141, 2023, 4105, 1048, 4535, 2024, 2025, 2026, 4520, 1311, 5008, 2146, 4099, 5160, 5159, 1311, 4153, 5471, 5371, 3580, 4100, 5428, 2027, 4799, 5285, 4054, 3577, 4988, 4814, 1311, 2029, 5296, 2840, 5297, 3458, 3547, 3545, 2030, 5020, 2587, 3221, 2849, 0, 0, 0, 5370, 0, 0, 0, 3488, 3489, 3490, 0, 3491, 3492, 3493, 3494, 3495, 3496, 0, 0, 811, 2031, 1930, 894, 0, -2631, 0, 0, 0, 0, 0, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 0, 2032, 3577, 0, 0, 1311, 2033, 0, 0, 0, 1311, 1311, 0, 0, 0, 849, 849, 849, 849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 0, 0, 2036, 0, 847, 1311, 0, 0, 0, 0, 2759, 2759, 594, 860, 0, 0, 0, 0, 0, 0, 0, 860, 0, 0, 860, 2029, 0, 0, 0, 0, 0, 0, -2631, 0, 811, 2037, 0, 3580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4619, 2032, 2038, 3486, 0, 2039, 2033, 0, 5123, 0, 2031, 0, 4629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 1311, 0, 0, 594, 0, 0, 1311, 0, 0, 3577, 5168, 0, 0, 0, 0, 0, 0, 1311, 3487, 0, 0, 1311, 0, 1311, 0, 1311, 5308, 0, 0, 2037, 4080, 0, 4174, 0, 0, 0, 0, 5179, 849, 0, 896, 0, 0, 2038, 0, 2040, 2039, 1214, 0, 0, 3481, 1311, 0, 0, 3482, 3483, 3484, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 3577, 869, 4504, 0, -2631, 0, 0, 0, 0, -2631, 0, 0, 0, 0, 869, 0, 0, 1930, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3577, 869, 0, 5357, 5358, 0, 596, 0, 0, 0, 0, 1096, 0, 0, 0, 596, 869, -2631, 0, 849, 0, 0, 596, 0, 869, 596, 5248, 0, 0, 0, 1311, 0, 0, 0, 0, 2040, 0, 1096, 869, 5260, 0, 0, 0, 0, 0, 0, 2041, 0, 869, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 0, 2038, 1311, 1311, 1311, 0, 3415, 0, 3186, 0, 0, 1311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1311, 0, 0, 5020, 0, 0, 0, 0, 2916, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3577, 0, 861, 0, 0, 0, 0, 3488, 3489, 3490, 0, 3491, 3492, 3493, 3494, 3495, 3496, 849, 0, 0, 0, 0, 596, 596, 1930, 0, 0, 0, 869, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 179, 0, 3486, 2785, 0, 0, -2631, 2282, 0, 869, 0, 596, 594, 0, 5331, 0, 0, 0, 1311, 0, 0, 0, 869, 0, 0, 0, 0, 0, 4174, 0, 0, 3415, 0, 3415, 861, 861, 1311, 0, 0, 0, 0, 5356, 0, 0, 183, 5353, 1311, 0, 0, 0, 5168, 0, 0, 5354, 0, 5355, 0, 0, 0, 0, 0, 0, 0, 0, 3487, 5485, 5486, 0, 0, 0, 0, 849, 0, 0, 0, 5416, 2802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3577, 0, 0, 0, 0, 0, 0, 0, 5260, 849, 849, -2631, 0, 0, 4174, 0, 0, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 5356, 0, 0, 183, 5353, 0, 0, 0, 0, 596, 596, 1703, 5354, 0, 5355, 0, 1311, 1311, 596, 0, 0, 847, 0, 0, 0, 1096, 0, 0, 1311, 596, 860, 0, 0, 1311, 0, 596, 0, 860, 596, 0, 860, 0, 0, 0, 0, 0, 0, 0, 0, 3577, 1096, 0, 0, 0, 0, 3577, 0, 0, 0, 0, 0, 0, 1311, 0, 0, 1096, 0, 0, 0, 0, 0, 179, 1311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 849, 0, 0, 4174, 0, 0, 0, 0, 0, 0, 0, 0, 5168, 0, 5356, 0, 594, 183, 5353, 0, 0, 0, 0, 596, 596, 596, 5354, 0, 5355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 861, 861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3488, 3489, 3490, 0, 3491, 3492, 3493, 3494, 3495, 3496, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 3577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 2027, 0, 0, 0, -128, 0, 0, 0, 2029, 0, 0, 869, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 596, 1, 0, 0, 0, 0, 0, 0, 869, 0, 0, 2, 0, 3, 4, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 2022, 0, 869, 2023, 6, 0, 0, 2024, 2025, 2026, 0, 1096, 0, 869, 0, 0, 7, 0, 8, 9, 0, 0, 0, 0, 2027, 10, 0, 11, 0, 869, 0, 0, 2029, 869, 0, 0, 0, 0, 12, 2030, 13, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 847, 0, 0, 0, 0, 0, 14, 1214, 0, 15, 3481, 860, 0, 2031, 3482, 3483, 3484, 860, 0, 0, 860, 0, 0, 16, 596, 17, 0, 0, 0, 18, 0, 0, 0, 0, 5165, 19, 0, 0, 0, 0, 0, 0, 0, 20, 2032, 21, 0, 0, 0, 2033, 0, 22, 596, 596, 596, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 2034, 2035, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 24, 0, 2036, 0, 0, 0, 0, 0, 1800, 1801, 1802, 2022, 0, 0, 2023, 0, 869, 0, 2024, 2025, 2026, 0, 0, 0, 869, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 869, 2032, 25, 26, 0, 2029, 2033, 0, 27, 0, 0, 2038, 2030, 0, 2039, 0, 0, 0, 0, 0, 28, 0, 596, 0, 0, 0, 596, 596, 2034, 2035, 0, 0, 29, 0, 0, 0, 0, 2031, 0, 0, 0, 596, 0, 2036, 0, 0, 0, 1096, 0, 0, 0, 0, 179, 1703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3486, 0, 0, 31, 2038, 0, 0, 2039, 0, 32, 33, 0, 34, 0, 0, 2040, 0, 35, 0, 0, 0, 3415, 36, 0, 0, 37, 0, 1096, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2032, 3487, 0, 0, 0, 2033, 0, 1096, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 2040, 45, 0, 0, 0, 0, 0, 1096, 0, 2036, 0, 46, 0, 0, 2698, 0, 0, 47, 0, 0, 2041, 0, 48, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 49, 0, 3834, 0, 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 50, 0, 0, 0, 0, 2699, 0, 0, 0, 869, 0, 0, 0, 0, 51, 0, 0, -128, 0, 0, 0, 2014, 0, 0, 596, 596, 596, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 2700, 2024, 2025, 2026, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 2027, 0, 0, 4011, 0, 2701, 0, 0, 2029, 0, 2014, 0, 0, 0, 0, 2030, 2702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802, 0, 0, 0, 0, 0, 2040, 0, 0, 2703, 0, 0, 0, 2031, 2704, 0, 3551, 0, 0, 0, 3488, 3489, 3490, 0, 3491, 3492, 3493, 3494, 3495, 3496, 0, 0, 3570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 2705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1703, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 3570, 2706, 0, 0, 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 2041, 0, 869, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 869, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, 596, 0, 0, 596, 0, 0, 1096, 2034, 2035, 0, 205, 2707, 596, 0, 2708, 0, 0, 0, 1096, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 2022, 0, 1096, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 2709, 0, 0, 2710, 0, 0, 0, 596, 596, 2711, 869, 869, 2027, 0, 0, 2037, 2712, 0, 0, 0, 2029, 0, 596, 0, 869, 596, 0, 2030, 0, 2038, 0, 0, 2039, 0, 1096, 1096, 0, 869, 869, 0, 0, 0, 0, 0, 0, 2713, 0, 0, 0, 0, 0, 2714, 2031, 869, 2715, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 2716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027, 596, 0, 0, 596, 596, 0, 0, 2029, 0, 0, 0, 0, 0, 2717, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 0, 596, 2031, 596, 0, 0, 0, 0, 596, 596, 0, 0, 0, 0, 0, 596, 596, 596, 0, 0, 0, 596, 0, 596, 596, 596, 596, 596, 596, 0, 596, 0, 596, 596, 0, 0, 596, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 1096, 596, 596, 596, 596, 1703, 0, 0, 0, 596, 0, 0, 0, 596, 0, 0, 596, 2034, 2035, 596, 596, 596, 596, 596, 596, 596, 596, 596, 0, 596, 0, 0, 2036, 0, 0, 0, 596, 0, 596, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 2032, 4063, 0, 2037, 0, 2033, 0, 0, 847, 0, 0, 847, 0, 869, 0, 0, 0, 2038, 0, 596, 2039, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 2036, 596, 596, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 860, 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 860, 0, 0, 860, 0, 2037, 1096, 0, 0, 0, 1096, 1096, 0, 2029, 0, 0, 0, 869, 0, 2038, -2631, 0, 1703, 869, 179, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 869, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 179, 0, 869, 0, 0, 596, 0, 0, 0, 0, 0, 0, 860, 0, 0, 860, 860, 596, 0, 0, 0, 1096, 0, 0, 596, 0, 0, 596, 596, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 4507, 0, 0, 0, 0, 0, 869, 869, 0, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 1703, 869, 0, 4168, 1703, -2631, 0, 0, 0, 0, -2631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 1703, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 869, 1439, 0, 0, 0, 0, 0, 869, -2631, 0, 0, 869, 0, 0, 0, 0, 869, 0, 0, 2041, 1439, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 1440, 869, 0, 0, 0, 0, 869, 0, 0, 0, 869, 0, 0, 1703, 0, 0, 0, 0, 0, 1440, 2038, 2014, 0, 869, 0, 0, 0, 0, 0, 0, 1441, 0, 0, 0, 0, 0, 869, 4098, 0, 0, 4103, 0, 0, 0, 0, 0, 869, 0, 0, 1509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 0, 0, 179, 596, 596, 596, 663, 0, 0, 596, 0, 0, 0, 0, 0, 749, 0, 0, 1442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1443, 0, 0, 0, 0, 0, 0, 596, 1096, 0, 0, 0, 0, 0, 3342, 0, -2631, 1703, 0, 1443, 1842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 847, 0, 0, 1439, 1444, 0, 0, 860, 1860, 0, 860, 860, 0, 0, 0, 0, 0, 0, 1871, 596, 0, 0, 1874, 1444, 0, 0, 1877, 0, 1879, 0, 0, 0, 0, 0, 1887, 0, 0, 1440, 1445, 0, 1895, 2022, 0, 1898, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 1445, 1096, 0, 0, 1096, 0, 0, 0, 2027, 869, 0, 0, 1446, 1447, 0, 0, 2029, 0, 596, 0, 0, 0, 0, 2030, 0, 0, -2631, 0, 0, 0, 0, 1510, 1447, 2045, 2046, 2047, 2048, 2049, 2050, 1442, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 1448, 0, 0, 0, 35, 0, 0, 0, 1449, 0, 0, 0, 0, 0, 869, 0, 0, 1450, 0, 1511, 0, 0, 0, 35, 1443, 1451, 0, 1449, 0, 0, 0, 0, 0, 1452, 0, 0, 1450, 0, 0, 0, 0, 0, 0, 0, 1451, 1453, 0, 0, 0, 0, 0, 0, 1512, 0, 1454, 3343, 869, 0, 1455, 0, 1444, 0, 0, 0, 1453, 0, 0, 0, 0, 0, 0, 0, 1096, 1454, 869, 0, 0, 1455, 0, 3342, 0, 0, 869, 0, 0, 0, 596, 0, 0, 1096, 0, 0, 596, 0, 1445, 596, 0, 0, 596, 0, 1439, 0, 0, 0, 1096, 0, 0, 0, 2032, 0, 0, 1456, 0, 2033, 0, 596, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 1447, 0, 0, 0, 1456, 0, 0, 3570, 1440, 2034, 2035, 0, 0, 0, 0, 0, 0, 596, 596, 596, 0, 0, 596, 0, 2036, 0, 0, 0, 0, 0, 596, 596, 596, 596, 0, 179, 0, 0, 1703, 0, 0, 35, 0, 596, 1703, 3344, 596, 0, 596, 0, 0, 0, 0, 0, 1450, 0, 0, 2037, 0, 596, 596, 0, 1451, 596, 0, 0, 0, 1442, 0, 0, 2267, 2038, 0, 0, 2039, 0, 0, 596, 0, 596, 0, 596, 1453, 0, 0, 0, 0, 0, 0, 0, 0, 1454, 0, 0, 0, 1455, 0, 0, 0, 0, 0, 596, 1443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 3345, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022, 3343, 0, 2023, 596, 0, 1444, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 1456, 0, 0, 596, 3346, 0, 0, 0, 2027, 0, 0, 0, 0, 2040, 0, 0, 2029, 596, 0, 2022, 0, 0, 2023, 2030, 1445, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 0, 1096, 0, 0, 1096, 0, 1096, 0, 2027, 0, 0, 1096, 0, 2031, 0, 0, 2029, 0, 0, 0, 0, 1447, 0, 2030, 0, 736, 869, 869, 0, 0, 0, 736, 596, 0, 0, 0, 0, 0, 0, 3570, 0, 0, 0, 3570, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 869, 0, 0, 869, 0, 0, 847, 1096, 0, 35, 0, 0, 860, 1449, 0, 860, 0, 0, 860, 0, 179, 179, 1450, 0, 2041, 0, 1096, 2042, 2043, 2044, 1451, 2045, 2046, 2047, 2048, 2049, 2050, 0, 2267, 0, 0, 4470, 0, 0, 0, 0, 0, 0, 0, 0, 1453, 1096, 0, 0, 0, 0, 0, 0, 0, 1454, 0, 0, 981, 1455, 0, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 0, 1468, 0, 0, 0, 0, 3345, 1469, 0, 0, 0, 0, 1703, 1703, 1703, 0, 0, 0, 0, 0, 1571, 2034, 2035, 0, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 869, 2036, 0, 1047, 663, 1456, 0, 0, 0, 3346, 1096, 0, 1096, 0, 1471, 0, 0, 0, 0, 0, 869, 2034, 2035, 0, 0, 0, 0, 0, 0, 1082, 0, 0, 0, 0, 2037, 0, 2036, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 593, 2038, 2022, 0, 2039, 2023, 0, 0, 1082, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 0, 1572, 0, 1473, 2037, 0, 0, 0, 2027, 0, 1474, 0, 0, 1475, 0, 0, 2029, 0, 2038, 0, 0, 2039, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 1185, 0, 0, 593, 1096, 0, 1476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 869, 0, 1205, 0, 0, 596, 0, 0, 0, 0, 1314, 596, 0, 1323, 1047, 1325, 1477, 2040, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 1703, 1096, 0, 0, 0, 2040, 0, 869, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 2608, 869, 0, 0, 0, 1478, 0, 1479, 2615, 0, 0, 0, 0, 0, 0, 0, 0, 1480, 0, 0, 0, 0, 0, 1703, 0, 0, 1481, 0, 2627, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 1482, 0, 0, 0, 0, 0, 0, 0, 2041, 1096, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 2034, 2035, 0, 0, 4508, 0, 0, 0, 869, 1096, 0, 0, 0, 0, 0, 2036, 0, 1573, 0, 0, 1484, 1485, 2041, 1096, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 4757, 0, 0, 0, 0, 3570, 0, 0, 0, 2037, 3570, 1574, 0, 3570, 0, 0, 0, 0, 0, 0, 869, 1715, 0, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 1732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 1740, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1487, 0, 0, 0, 0, 596, 0, 0, 1096, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 596, 0, 596, 0, 0, 596, 0, 0, 0, 1096, 596, 596, 596, 596, 0, 2040, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 0, 0, 0, 596, 596, 0, 0, 0, 1096, 0, 2862, 0, 0, 596, 0, 0, 0, 596, 0, 1703, 0, 596, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 596, 0, 596, 0, 0, 0, 0, 0, 0, 0, 1096, 596, 179, 0, 596, 596, 0, 0, 0, 596, 596, 0, 0, 0, 0, 0, 596, 0, 0, 1047, 0, 0, 0, 0, 0, 0, 596, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 1047, 0, 0, 179, 596, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 4767, 0, 0, 596, 0, 0, 0, 0, 1954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222, 596, 0, 0, 0, 2223, 0, 1096, 0, 1955, 0, 0, 0, 0, 0, 1047, 0, 0, 0, 596, 0, 0, 3570, 736, 1439, 736, 0, 736, 0, 0, 0, 0, 2014, 736, 1166, 1167, 0, 0, 0, 0, 2224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 2225, 0, 0, 0, 0, 1440, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 2226, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027, 1526, 0, 0, 2018, 0, 0, 0, 2029, 0, 0, 0, 0, 2020, 1703, 2030, 0, 0, 0, 1703, 1096, 1703, 2227, 0, 0, 0, 0, 2062, 0, 0, 1442, 0, 0, 2228, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 1703, 1096, 0, 1047, 0, 0, 2079, 2080, 0, 0, 2229, 1047, 1047, 0, 0, 2230, 0, 0, 0, 1703, 0, 0, 1443, 0, 0, 1047, 0, 0, 0, 0, 0, 0, 0, 0, 3570, 869, 0, 0, 869, 0, 0, 0, 0, 0, 179, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 2231, 0, 0, 0, 926, 1445, 0, 0, 0, 0, 593, 0, 0, 593, 0, 596, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 0, 0, 0, 1468, 0, 0, 0, 179, 2232, 1469, 1527, 1447, 0, 0, 869, 869, 1535, 0, 1096, 0, 0, 2034, 2035, 0, 869, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 1536, 2036, 0, 0, 0, 0, 205, 2233, 869, 0, 0, 0, 0, 1528, 0, 0, 1471, 35, 0, 0, 0, 1449, 0, 593, 0, 0, 0, 0, 0, 0, 1450, 1096, 0, 0, 2037, 1096, 596, 596, 1451, 2234, 0, 0, 0, 0, 0, 2235, 1529, 2330, 2038, 0, 1537, 2039, 2236, 0, 0, 2237, 0, 0, 1453, 0, 0, 0, 0, 0, 0, 0, 0, 1454, 0, 0, 1473, 1455, 0, 0, 0, 0, 0, 1474, 0, 0, 1475, 0, 2383, 869, 0, 0, 0, 2238, 2388, 3357, 0, 0, 0, 0, 2239, 0, 3362, 0, 0, 0, 0, 0, 2240, 0, 0, 1476, 0, 0, 596, 2241, 0, 0, 0, 0, 0, 0, 3381, 0, 0, 596, 0, 0, 0, 0, 1456, 0, 3387, 0, 0, 3388, 0, 3389, 3390, 0, 2242, 3392, 1538, 0, 2040, 1477, 0, 3396, 0, 3397, 0, 0, 3399, 0, 1468, 596, 0, 0, 596, 0, 1469, 0, 0, 0, 0, 0, 596, 596, 0, 1096, 0, 0, 0, 596, 596, 0, 0, 0, 596, 1096, 736, 0, 0, 596, 0, 0, 596, 596, 0, 0, 1539, 596, 0, 1540, 0, 0, 0, 596, 0, 0, 0, 179, 1471, 0, 1541, 0, 1479, 0, 0, 596, 0, 0, 0, 0, 0, 3438, 1480, 596, 0, 0, 0, 596, 0, 0, 0, 1481, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 1542, 1482, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 596, 2045, 2046, 2047, 2048, 2049, 2050, 1473, 0, 0, 0, 4776, 0, 0, 1474, 2453, 0, 1475, 0, 0, 0, 0, 0, 0, 0, 0, 1543, 596, 0, 1484, 1485, 1544, 2470, 0, 0, 593, 0, 0, 0, 0, 0, 0, 1476, 0, 0, 1096, 0, 0, 0, 0, 2489, 0, 0, 1545, 0, 0, 2520, 5415, 0, 1546, 2525, 0, 869, 0, 0, 0, 0, 1703, 0, 0, 0, 0, 0, 1547, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 940, 1096, 0, 0, 0, 0, 988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 1096, 2570, 0, 0, 0, 0, 736, 869, 0, 0, 0, 736, 736, 0, 2578, 0, 0, 0, 0, 0, 0, 1487, 0, 596, 0, 736, 1082, 0, 0, 0, 1478, 0, 1479, 0, 869, 0, 2022, 0, 2592, 2023, 0, 0, 1480, 2024, 2025, 2026, 0, 0, 0, 0, 0, 1481, 0, 179, 0, 0, 0, 0, 0, 0, 2027, 0, 0, 1482, 0, 1096, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 2621, 1082, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 2031, 1600, 0, 0, 1484, 1485, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 3648, 0, 0, 869, 0, 0, 1601, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 593, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1318, 0, 0, 0, 0, 0, 0, 2744, 0, 1166, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 1341, 0, 0, 1096, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1487, 1365, 0, 0, 0, 0, 0, 0, 869, 2032, 0, 3708, 736, 3710, 2033, 736, 736, 0, 0, 2789, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1499, 0, 0, 0, 2036, 0, 0, 0, 596, 596, 0, 2857, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 596, 0, 0, 2037, 0, 596, 0, 0, 596, 596, 0, 0, 0, 0, 0, 596, 596, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 596, 0, 0, 0, 0, 869, 0, 869, 0, 0, 0, 596, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3798, 0, 0, 2027, 0, 0, 3805, 0, 0, 0, 0, 2029, 0, 0, 0, 1096, 869, 0, 2030, 0, 0, 1047, 0, 1754, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 4679, 0, 0, 2031, 0, 0, 0, 736, 0, 0, 0, 0, 1792, 1795, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 1703, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 2984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3001, 0, 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4955, 0, 0, 0, 0, 3034, 0, 0, 0, 0, 0, 0, 0, 596, 2041, 1096, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 2032, 2582, 4779, 0, 0, 2033, 0, 0, 0, 596, 1096, 2590, 596, 2591, 596, 0, 0, 0, 1325, 2595, 0, 0, 0, 0, 0, 0, 2601, 2034, 2035, 0, 0, 0, 0, 596, 0, 1325, 0, 0, 0, 596, 0, 0, 2036, 596, 3962, 1318, 3964, 0, 3966, 1096, 0, 0, 0, 596, 593, 0, 0, 3970, 0, 0, 0, 593, 0, 1962, 0, 0, 593, 0, 0, 593, 4795, 0, 1318, 0, 0, 2037, 0, 0, 0, 1468, 0, 0, 0, 0, 0, 1469, 0, 0, 0, 2038, 0, 593, 2039, 0, 1703, 0, 3195, 0, 3995, 0, 0, 0, 1096, 0, 593, 0, 0, 1096, 1096, 0, 0, 0, 596, 0, 0, 0, 0, 596, 596, 869, 0, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 3224, 869, 0, 3224, 0, 3224, 0, 0, 0, 3224, 0, 3224, 3224, 0, 0, 0, 0, 0, 0, 0, 3224, 3224, 3224, 596, 860, 0, 0, 0, 2733, 2734, 596, 0, 0, 0, 0, 2748, 2749, 0, 0, 0, 0, 0, 0, 0, 0, 3250, 0, 2323, 0, 2040, 0, 1473, 0, 0, 0, 596, 0, 0, 1474, 0, 0, 1475, 0, 2787, 0, 0, 0, 860, 1468, 0, 0, 0, 0, 0, 1469, 3300, 0, 0, 0, 2093, 0, 0, 0, 0, 0, 0, 1476, 1571, 0, 0, 0, 0, 1096, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3331, 0, 0, 0, 0, 596, 0, 0, 596, 1471, 0, 596, 1047, 1477, 0, 0, 0, 0, 2148, 0, 0, 0, 596, 0, 0, 0, 596, 0, 596, 593, 596, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 596, 0, 4826, 0, 0, 1572, 0, 1473, 0, 2892, 2892, 1047, 0, 0, 1474, 0, 1478, 1475, 1479, 0, 0, 0, 0, 0, 0, 1703, 0, 869, 1480, 0, 0, 0, 593, 0, 0, 0, 0, 1481, 0, 0, 0, 0, 1476, 2276, 0, 0, 0, 0, 0, 1482, 0, 0, 0, 2300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 1477, 596, 0, 0, 0, 0, 0, 0, 2336, 3428, 596, 2324, 0, 0, 1484, 1485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3440, 0, 0, 0, 0, 2359, 0, 0, 2362, 0, 596, 596, 596, 0, 0, 3448, 0, 0, 2325, 596, 1703, 0, 0, 1096, 0, 0, 0, 0, 0, 596, 0, 0, 0, 1478, 0, 1479, 0, 0, 869, 0, 1468, 0, 0, 0, 0, 1480, 1469, 5101, 0, 0, 0, 0, 596, 0, 1481, 0, 0, 0, 0, 2410, 0, 0, 0, 0, 3036, 869, 1482, 0, 0, 0, 0, 0, 593, 2428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1487, 0, 0, 1471, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 3157, 596, 0, 1484, 1485, 0, 0, 596, 0, 0, 0, 0, 0, 0, 2027, 0, 0, 596, 0, 0, 0, 0, 2029, 596, 596, 596, 0, 0, 593, 2030, 0, 0, 0, 3158, 0, 596, 0, 1047, 1473, 0, 0, 736, 0, 0, 0, 1474, 0, 0, 1475, 736, 0, 0, 736, 0, 2031, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 1476, 0, 0, 0, 0, 0, 0, 2451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 596, 0, 0, 1487, 0, 0, 0, 0, 0, 0, 1477, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 596, 596, 0, 0, 0, 0, 4441, 2502, 2027, 0, 4443, 0, 596, 0, 0, 0, 2029, 596, 0, 0, 0, 0, 0, 2030, 0, 0, 1703, 0, 0, 0, 0, 0, 1047, 0, 0, 0, 2545, 0, 593, 0, 2032, 0, 1478, 2558, 1479, 2033, 596, 0, 2031, 0, 0, 0, 3654, 0, 1480, 0, 596, 0, 0, 0, 0, 0, 0, 1481, 0, 0, 0, 2034, 2035, 0, 0, 3665, 0, 0, 596, 1482, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 596, 0, 1703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 860, 1703, 0, 596, 596, 0, 0, 2246, 0, 2037, 1484, 1485, 0, 0, 0, 0, 0, 3724, 0, 0, 0, 0, 0, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3368, 3370, 2247, 0, 2636, 0, 3378, 0, 0, 0, 0, 0, 0, 0, 2032, 5334, 0, 0, 0, 2033, 0, 0, 3747, 0, 3749, 0, 0, 2022, 0, 0, 2023, 593, 0, 3762, 2024, 2025, 2026, 860, 860, 0, 0, 2034, 2035, 0, 1318, 1318, 0, 0, 0, 0, 0, 2027, 0, 0, 0, 0, 2036, 0, 0, 2029, 0, 2687, 0, 0, 0, 0, 2030, 736, 0, 1487, 0, 0, 0, 0, 0, 2040, 0, 0, 2022, 0, 4586, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 2037, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 3801, 0, 0, 2027, 2038, 0, 593, 2039, 0, 0, 0, 2029, 593, 0, 3799, 0, 0, 0, 2030, 0, 0, 0, 0, 4610, 4611, 0, 0, 602, 0, 0, 0, 0, 0, 652, 602, 0, 0, 0, 0, 704, 0, 602, 3224, 2031, 0, 0, 0, 602, 0, 755, 0, 0, 0, 3818, 0, 0, 3831, 3831, 0, 0, 0, 2848, 0, 0, 0, 0, 3847, 0, 822, 822, 0, 2854, 1047, 0, 1047, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 4861, 0, 2040, 0, 0, 0, 0, 0, 1365, 0, 2032, 0, 0, 0, 0, 2033, 0, 4652, 4653, 1365, 1365, 593, 0, 1468, 0, 0, 0, 0, 3903, 1469, 0, 0, 0, 0, 5473, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 1318, 0, 0, 860, 860, 0, 3034, 0, 2032, 3938, 1047, 0, 0, 2033, 0, 0, 0, 0, 1471, 3586, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 2034, 2035, 0, 0, 0, 0, 3954, 0, 0, 3599, 3599, 2038, 0, 2041, 2039, 2036, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 4901, 0, 0, 0, 0, 856, 0, 1473, 0, 0, 0, 0, 0, 898, 1474, 0, 900, 1475, 2037, 905, 906, 0, 909, 4748, 911, 4749, 4750, 917, 0, 919, 0, 0, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 4754, 1476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 2040, 0, 0, 0, 0, 1477, 0, 4010, 3038, 0, 0, 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, 0, 2029, 0, 3061, 0, 0, 0, 4019, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3087, 0, 0, 0, 0, 0, 0, 2040, 0, 4042, 2031, 0, 0, 4064, 0, 0, 0, 0, 2022, 0, 1478, 2023, 1479, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 1480, 0, 0, 0, 0, 0, 0, 0, 0, 1481, 2027, 1955, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 1482, 0, 2041, 0, 2030, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 5205, 0, 3161, 3162, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 3029, 0, 0, 1484, 1485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 2032, 0, 0, 5228, 1486, 2033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848, 850, 0, 0, 854, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 910, 0, 0, 0, 0, 0, 0, 920, 0, 0, 0, 0, 0, 0, 3284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1487, 2032, 0, 0, 2037, 0, 2033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 0, 2039, 0, 0, 3847, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 4984, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 736, 0, 4266, 0, 0, 0, 0, 0, 0, 2022, 4274, 0, 2023, 4275, 0, 4276, 2024, 2025, 2026, 0, 0, 0, 0, 0, 3881, 0, 0, 0, 0, 0, 2037, 0, 0, 2027, 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 2038, 0, 0, 2039, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 4315, 0, 5029, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 3224, 0, 0, 2031, 3224, 3224, 0, 3224, 0, 999, 0, 0, 0, 0, 0, 0, 1012, 1013, 0, 0, 1019, 0, 1022, 1023, 0, 0, 0, 1025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1044, 3956, 0, 5066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 4369, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 4420, 5333, 0, 3847, 0, 0, 2032, 0, 0, 0, 0, 2033, 0, 736, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 4459, 4459, 4459, 5403, 4459, 4459, 4459, 4459, 4459, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 0, 2039, 822, 0, 0, 0, 0, 0, 0, 0, 3562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1365, 0, 0, 0, 0, 1430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 990, 0, 993, 0, 0, 0, 996, 0, 2022, 0, 1955, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 1021, 0, 0, 0, 0, 0, 0, 1026, 0, 0, 0, 0, 2027, 0, 2040, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 4547, 0, 4549, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 1714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1731, 0, 0, 0, 0, 1735, 0, 0, 0, 0, 0, 0, 0, 0, 1738, 0, 0, 0, 0, 1745, 0, 4587, 1749, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 736, 0, 0, 0, 5458, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 4609, 0, 0, 0, 1803, 0, 736, 0, 0, 0, 0, 2027, 0, 736, 0, 0, 0, 0, 2032, 2029, 0, 4624, 0, 2033, 0, 2022, 2030, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 5383, 0, 0, 0, 2034, 2035, 0, 0, 2027, 0, 2031, 3753, 2875, 0, 0, 0, 2029, 0, 0, 2036, 0, 0, 0, 2030, 0, 0, 0, 4649, 4650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3224, 0, 3224, 3224, 0, 0, 3224, 4651, 0, 0, 2031, 0, 0, 0, 2037, 0, 1166, 1167, 0, 0, 0, 0, 0, 0, 1500, 1501, 0, 0, 2038, 2022, 0, 2039, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 602, 0, 602, 0, 602, 0, 602, 0, 602, 602, 602, 0, 0, 2027, 0, 602, 0, 0, 0, 2876, 0, 2029, 0, 0, 0, 0, 1950, 0, 2030, 0, 4708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1963, 2032, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 4735, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 2032, 0, 1734, 0, 2036, 2033, 0, 4740, 0, 0, 0, 0, 0, 0, 0, 0, 3872, 3873, 3874, 0, 0, 4459, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 1756, 1757, 3883, 736, 0, 0, 2037, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 1955, 2039, 0, 3899, 1798, 0, 3501, 0, 0, 0, 0, 3502, 0, 3909, 3911, 0, 0, 0, 3916, 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 2038, 0, 0, 2039, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 2034, 2035, 0, 0, 5472, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 2036, 0, 0, 0, 0, 2022, 1866, 1868, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027, 0, 0, 0, 2037, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 3847, 2038, 0, 0, 2039, 0, 0, 0, 2040, 0, 0, 3991, 0, 0, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 2244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3224, 0, 0, 0, 0, 0, 0, 0, 0, 4894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2877, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 2447, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 0, 736, 0, 0, 0, 0, 736, 0, 2335, 0, 736, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4622, 4623, 0, 0, 2032, 4626, 4627, 0, 0, 2033, 0, 0, 0, 4095, 4096, 4097, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 2034, 2035, 0, 0, 1955, 0, 0, 0, 0, 0, 0, 2027, 0, 0, 3460, 2036, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 3799, 0, 0, 0, 0, 2037, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4055, 0, 0, 0, 0, 0, 0, 1955, 0, 0, 0, 0, 1955, 1955, 0, 0, 0, 0, 0, 0, 1047, 0, 0, 0, 5075, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 1468, 0, 0, 0, 0, 0, 1469, 0, 0, 0, 0, 0, 0, 2027, 0, 2265, 0, 0, 0, 0, 2040, 2029, 0, 0, 0, 0, 0, 0, 2030, 2032, 0, 0, 0, 0, 2033, 0, 0, 4056, 0, 0, 2304, 0, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 0, 0, 2031, 0, 2493, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473, 0, 2037, 0, 0, 0, 0, 1474, 0, 0, 1475, 0, 0, 0, 0, 0, 2038, 2041, 0, 2039, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 4338, 1476, 5363, 0, 0, 2406, 2407, 2408, 2409, 0, 0, 4351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2032, 0, 0, 1047, 0, 2033, 0, 5217, 1477, 5218, 0, 0, 0, 5223, 5224, 4382, 0, 0, 2619, 0, 2620, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 2631, 0, 2632, 0, 736, 2036, 0, 0, 2040, 0, 0, 2558, 0, 0, 0, 0, 602, 0, 602, 0, 602, 0, 602, 0, 602, 0, 0, 0, 602, 0, 1478, 0, 1479, 0, 0, 0, 0, 0, 2037, 0, 0, 0, 1480, 0, 0, 0, 0, 0, 0, 0, 0, 1481, 2038, 0, 0, 2039, 0, 0, 0, 2636, 0, 0, 0, 1482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5364, 0, 0, 5290, 0, 2459, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3201, 2483, 0, 1484, 1485, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 3202, 0, 0, 2528, 2529, 2530, 2531, 0, 2040, 0, 2027, 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4515, 4516, 4517, 4518, 0, 2022, 2031, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 1468, 0, 0, 0, 0, 0, 1469, 1487, 0, 0, 0, 0, 0, 2027, 0, 0, 3506, 1047, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2041, 1471, 0, 2042, 2043, 2044, 2031, 2045, 2046, 2047, 2048, 2049, 2050, 2629, 0, 0, 0, 2919, 2920, 2633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 2935, 2936, 0, 0, 0, 2939, 2940, 0, 0, 0, 2943, 0, 0, 0, 0, 0, 0, 2032, 5439, 1473, 0, 0, 2033, 0, 2954, 0, 1474, 0, 0, 1475, 0, 2963, 0, 0, 0, 2966, 2967, 0, 0, 2970, 2971, 0, 0, 0, 2034, 2035, 2976, 0, 0, 0, 0, 0, 0, 0, 1476, 0, 0, 0, 0, 2036, 0, 2995, 0, 2997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2032, 5439, 3021, 0, 0, 2033, 0, 3023, 1477, 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 5439, 0, 3028, 0, 0, 0, 0, 2038, 2034, 2035, 2039, 3035, 0, 0, 3039, 2799, 0, 3042, 3045, 3047, 0, 0, 0, 2036, 3055, 3058, 0, 0, 3474, 0, 0, 0, 0, 0, 3071, 0, 0, 0, 0, 3080, 0, 0, 0, 3083, 862, 871, 0, 0, 1478, 0, 1479, 0, 862, 0, 871, 862, 2037, 0, 0, 3099, 1480, 0, 0, 0, 0, 0, 3109, 3110, 871, 1481, 2038, 0, 3114, 2039, 0, 0, 5211, 0, 0, 0, 0, 1482, 0, 3129, 3130, 0, 0, 0, 3133, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 3140, 0, 0, 3143, 0, 0, 0, 0, 3146, 0, 0, 0, 0, 3148, 3149, 0, 0, 0, 3152, 3676, 0, 3156, 1484, 1485, 0, 3163, 3164, 3165, 3166, 0, 3168, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 0, 1469, 0, 3193, 3194, 4742, 3196, 0, 1535, 0, 0, 0, 3677, 0, 0, 0, 3204, 3205, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 1536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 2982, 2983, 0, 0, 0, 0, 0, 0, 1537, 3258, 1487, 2996, 2022, 2998, 0, 2023, 0, 3002, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 1473, 0, 0, 0, 0, 0, 0, 1474, 2027, 3295, 1475, 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 2041, 2030, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 1476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 1538, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027, 0, 0, 3517, 0, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1539, 0, 0, 1540, 0, 3139, 2031, 0, 3142, 0, 0, 0, 0, 0, 1541, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 3511, 1480, 0, 4899, 0, 2022, 0, 0, 2023, 0, 1481, 0, 2024, 2025, 2026, 0, 0, 0, 4912, 2032, 0, 1542, 1482, 1318, 2033, 0, 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, 0, 2029, 0, 5438, 0, 0, 0, 0, 2030, 0, 2034, 2035, 0, 4949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3134, 2036, 3227, 1484, 1485, 1544, 0, 0, 0, 2031, 3234, 3451, 0, 3237, 2022, 0, 0, 2023, 0, 3239, 0, 2024, 2025, 2026, 0, 0, 0, 1545, 0, 0, 3251, 2032, 0, 3135, 2037, 871, 2033, 0, 2027, 0, 0, 871, 5438, 0, 0, 0, 2029, 1547, 2038, 0, 0, 2039, 0, 2030, 871, 0, 0, 0, 2034, 2035, 5438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 3297, 0, 2036, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 862, 871, 0, 0, 0, 0, 0, 862, 0, 871, 862, 0, 0, 0, 0, 3320, 1487, 0, 0, 0, 0, 0, 2037, 871, 0, 0, 5035, 0, 0, 0, 0, 0, 0, 871, 0, 2032, 2038, 0, 0, 2039, 2033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3383, 0, 3385, 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 2033, 2037, 0, 0, 0, 2027, 0, 0, 4062, 871, 0, 0, 0, 2029, 5113, 2038, 0, 2040, 2039, 0, 2030, 0, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, 2041, 2031, 871, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 3651, 3450, 0, 0, 3653, 0, 0, 0, 0, 0, 3655, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3666, 3668, 0, 0, 2040, 3668, 0, 0, 0, 0, 3679, 3680, 3681, 0, 3683, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 0, 0, 0, 0, 4007, 3705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3711, 3712, 3713, 3714, 0, 0, 1705, 2032, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, 2040, 0, 0, 0, 862, 0, 0, 862, 2034, 2035, 3731, 0, 0, 3736, 3737, 3738, 0, 0, 0, 0, 870, 0, 0, 2036, 0, 0, 0, 0, 0, 870, 2041, 3758, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 870, 0, 0, 0, 0, 0, 0, 0, 3766, 0, 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 2023, 0, 0, 0, 2024, 2025, 2026, 0, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 2029, 0, 0, 0, 0, 0, 0, 2030, 0, 0, 3808, 0, 0, 0, 0, 0, 0, 0, 3812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 2040, 0, 3826, 1468, 0, 0, 0, 0, 3657, 1469, 3658, 3659, 3660, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3869, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 3906, 0, 943, 0, 0, 3912, 0, 944, 0, 0, 871, 0, 0, 0, 871, 0, 0, 0, 2032, 0, 0, 0, 2041, 2033, 0, 2042, 2043, 2044, 1473, 2045, 2046, 2047, 2048, 2049, 2050, 1474, 0, 0, 1475, 3951, 0, 0, 945, 0, 0, -2631, -2631, 0, 0, 0, 0, 0, 0, 0, 0, 946, 947, 0, 0, 0, 2036, 0, 0, 1476, 0, 0, 948, 0, 0, 0, 949, 0, 0, 0, 0, 0, 0, 0, 3967, 0, 3968, 0, 0, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, -2631, 0, 0, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 3992, 0, 952, 0, 0, 0, 0, 0, 0, 0, 953, 0, 871, 0, 0, 0, 0, 0, 0, 0, 871, 871, 954, 0, 0, 0, 0, 955, 0, 0, 0, 0, 0, 0, 871, 0, 1478, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1480, 0, 3819, 0, 0, 956, 0, 0, 0, 1481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1482, 0, 0, 0, 0, 0, 0, 0, 2040, 957, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 0, 870, 0, 0, 0, 0, 0, 870, 0, 0, 0, 958, 0, 0, 0, 0, 0, 0, 0, 3732, 870, 0, 1484, 1485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 959, 0, 0, 0, 0, 0, 870, 3733, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, 0, 0, 870, 0, 0, 0, 0, 205, 961, 0, 0, 962, 870, 0, 0, 0, 0, 2041, 0, 0, 2042, 2043, 2044, 0, 2045, 2046, 2047, 2048, 2049, 2050, 0, 0, 0, 0, 0, 0, 0, 963, 0, 0, 964, 0, 0, 0, 965, 0, 966, 0, 1487, 0, 0, 0, 0, 967, 0, 4185, 968, 4186, 0, 0, 0, 0, 0, 3971, 4188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 969, 0, 0, 0, 0, 4198, 0, 970, 0, 0, 0, 0, 0, 971, 0, 0, 972, 0, 0, 0, 973, 4206, 870, 0, 0, 0, 0, 0, 974, 0, 975, 0, 0, 0, 0, 976, 0, 0, 0, 0, 4227, 0, 0, 0, 0, 0, 870, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4231, 870, 977, 0, 0, 0, 0, 0, 0, 0, 4240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4277, 4278, 4279, 0, 0, 0, 0, 4283, 4284, 4285, 4286, 0, 0, 0, 4288, 4289, 0, 0, 0, 0, 4296, 4297, 0, 4299, 4300, 4301, 4302, 4303, 4304, 0, 4306, 0, 0, 0, 0, 0, 0, 0, 0, 4314, 0, 0, 4317, 4318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3668, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4191, 4192, 4193, 4194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, 862, 0, 871, 871, 0, 0, 0, 0, 4453, 0, 0, 0, 0, 0, 862, 0, 871, 862, 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, 871, 871, 0, 870, 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 616, 0, 0, 0, 862, 0, 0, 862, 862, 0, 0, 617, 0, 0, 0, -852, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618, 870, 0, 0, 0, 0, 619, 0, 0, 4337, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 870, 0, 620, 4340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 1705, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4590, 0, 0, 0, 4591, 4592, 4593, 4594, 0, 0, 4596, 626, 0, 0, 0, 0, 0, 0, 0, 0, -569, 0, 871, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 870, 0, 0, 0, 0, 4615, 4616, 4617, 0, 4618, 0, 4620, 4621, 870, 0, 0, 0, 627, 0, 0, 628, 0, 0, 4630, 4631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 871, 0, 0, 0, 0, 0, 0, 0, 0, 4636, 0, 0, 0, 630, 0, 0, 0, 0, 871, 0, -440, 0, 0, 1705, 871, 1704, 0, 0, 871, 0, 0, 0, 4647, 0, 0, 0, 871, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 0, 0, 871, -440, 0, 0, 633, 0, 0, 0, 0, 664, 0, 0, 0, 0, 665, 0, 0, 0, 0, 0, 0, 0, 862, 634, 0, 862, 862, 0, 0, 0, 635, 0, 0, 0, 0, 0, -440, 0, 0, 636, 637, 0, 638, 639, 0, 0, 871, 0, 0, 666, 0, 0, 0, 640, 0, 0, 0, 4699, 641, 0, 0, 0, 667, 0, 642, 871, 871, 643, 0, 0, 644, 0, 0, 0, 0, 0, 0, 668, 0, 0, 0, 0, 0, -440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 1705, 871, 0, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4751, 0, 0, 670, 0, 0, 0, 0, 871, 0, 1705, 0, 0, 0, 671, 871, 0, 0, 0, 0, 0, 871, 672, 0, 0, 0, 0, 0, 871, 0, 0, 0, 871, 0, 673, 0, 0, 871, 0, 674, 0, 0, 0, 0, 0, 0, 675, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 871, 0, 0, 676, 871, 0, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 4644, 0, 0, 602, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 680, 0, 0, 0, 4850, 0, 0, 0, 0, 0, 205, 681, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 4860, 0, 0, 0, 0, 4865, 4866, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 684, 0, 4713, 0, 685, 0, 686, 0, 0, 0, 0, 870, 0, 687, 0, 0, 688, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 689, 4927, 871, 0, 0, 0, 0, 690, 0, 0, 0, 0, 0, 691, 0, 0, 692, 0, 0, 0, 693, 4944, 0, 4946, 0, 0, 0, 0, 694, 0, 695, 0, 0, 0, 0, 696, 0, 0, 4962, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 3668, 0, 698, 0, 0, 0, 0, 4983, 0, 0, 0, 0, 870, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 870, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 5022, 0, 0, 0, 0, 862, 0, 0, 862, 0, 0, 862, 0, 4831, 4832, 4832, 0, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1294, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 0, 0, 0, 0, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 871, 0, 0, 3668, 0, 0, 0, 0, 0, 0, 0, 0, 4967, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1616, 1620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 5206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 871, 0, 870, 0, 0, 0, 0, 1704, 870, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 871, 0, 0, 871, 0, 0, 5235, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 5246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5062, 0, 5064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 1705, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 5307, 0, 0, 0, 0, 0, 1704, 870, 871, 0, 1704, 0, 191, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 192, 0, 870, 0, 1704, 1095, 193, 0, 0, 870, 0, 0, 0, 0, 5329, 870, 0, 871, 0, 0, 0, 0, 870, 194, 0, 0, 870, 0, 0, 0, 1095, 870, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 1095, 0, 0, 0, 0, 0, 870, 0, 0, 197, 0, 870, 0, 0, 198, 870, 4832, 0, 1704, 0, 0, 199, 0, 0, 0, 0, 0, 0, 870, 0, 1979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 871, 0, 0, 5396, 0, 0, 1993, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 202, 0, 2011, 2012, 2013, 0, 2015, 0, 0, 5242, 0, 0, 0, 0, 0, 1705, 0, 0, 0, 0, 0, 0, 871, 0, 871, 0, 2057, 0, 0, 0, 1704, 0, 0, 0, 203, 0, 0, 871, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 1705, 0, 0, 0, 0, 0, 205, 206, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2115, 0, 0, 208, 2127, 2132, 209, 0, 0, 0, 210, 871, 211, 0, 0, 1095, 0, 870, 5313, 212, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 216, 217, 0, 0, 218, 0, 0, 0, 219, 871, 0, 0, 0, 0, 0, 0, 0, 0, 220, 870, 0, 0, 0, 221, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 871, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 870, 5389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 4832, 4832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 2171, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1616, 1616, 1616, 0, 0, 0, 0, 0, 0, 0, 4832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 0, 0, 870, 870, 1705, 0, 1705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 870, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1705, 1619, 1619, 1619, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 871, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 1704, 1704, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 1095, 0, 0, 0, 871, 871, 0, 0, 0, 870, 0, 0, 0, 0, 871, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 1094, 871, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750, 0, 2752, 0, 0, 2764, 2767, 2772, 0, 1095, 0, 0, 2778, 0, 0, 2783, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 871, 0, 870, 0, 2790, 2791, 2792, 2793, 1095, 0, 0, 0, 2800, 0, 0, 0, 2812, 0, 0, 2814, 1095, 0, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 0, 2830, 0, 1094, 0, 0, 0, 0, 1294, 0, 1616, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 870, 0, 870, 0, 0, 0, 0, 0, 1095, 1095, 0, 0, 0, 0, 0, 870, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2012, 2013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 2078, 1087, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 870, 2968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 1705, 0, 0, 870, 0, 0, 870, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2923, 0, 0, 0, 2171, 2929, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 3215, 3216, 1616, 0, 0, 0, 3220, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 3249, 1095, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 1087, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 1704, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 1094, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 870, 0, 871, 870, 871, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 1085, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 1094, 0, 0, 1087, 0, 0, 0, 0, 0, 870, 870, 0, 1094, 1705, 0, 0, 0, 0, 862, 870, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 3456, 0, 0, 0, 0, 3462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 1094, 1094, 0, 0, 2015, 0, 0, 0, 0, 2171, 0, 0, 2171, 0, 0, 2772, 0, 2772, 2772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3520, 0, 0, 3523, 0, 3525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3543, 0, 3546, 0, 3548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2115, 0, 0, 0, 0, 0, 0, 0, 1705, 1095, 0, 0, 0, 0, 0, 2132, 0, 1094, 0, 0, 0, 0, 0, 1087, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3637, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 870, 0, 0, 0, 0, 1704, 0, 0, 0, 1094, 1085, 0, 0, 1094, 1094, 0, 0, 1087, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 870, 1085, 1085, 0, 0, 0, 0, 0, 0, 1705, 0, 871, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171, 0, 0, 2929, 0, 2929, 0, 0, 0, 0, 2171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 1095, 0, 0, 0, 1705, 0, 0, 0, 1088, 0, 0, 0, 1616, 0, 0, 0, 1087, 0, 1616, 0, 0, 0, 871, 0, 0, 2171, 0, 0, 0, 0, 0, 0, 0, 1087, 1088, 0, 862, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 862, 862, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 1085, 1085, 0, 0, 870, 0, 870, 1095, 0, 1087, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 870, 0, 1094, 0, 0, 1094, 0, 0, 1705, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2929, 1085, 0, 0, 4008, 0, 0, 0, 0, 0, 0, 0, 0, 4012, 0, 0, 0, 0, 0, 4013, 0, 4014, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 1705, 4038, 4039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 1705, 2778, 862, 862, 1095, 0, 0, 1087, 0, 4065, 1088, 0, 4068, 0, 4070, 0, 0, 0, 0, 0, 0, 0, 0, 4074, 0, 2929, 0, 0, 0, 0, 0, 4081, 4082, 0, 1094, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4128, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4141, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 4154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 1704, 0, 0, 1087, 0, 0, 0, 1087, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 1085, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1094, 0, 0, 1094, 0, 1094, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 870, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 2929, 0, 1085, 0, 0, 1088, 0, 0, 4427, 4428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2929, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 870, 0, 0, 0, 0, 0, 0, 0, 4468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4473, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 4491, 4493, 0, 0, 0, 0, 1087, 4497, 4498, 1087, 0, 0, 4499, 1088, 0, 0, 0, 4502, 0, 0, 4505, 4506, 1095, 0, 0, 4510, 0, 0, 0, 0, 0, 4514, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 2929, 0, 870, 0, 2171, 0, 1085, 0, 0, 1085, 0, 1085, 0, 1294, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 1087, 0, 0, 0, 0, 1094, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 1090, 0, 0, 0, 0, 1094, 1085, 0, 1704, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 1088, 0, 0, 4633, 1095, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 4670, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1088, 1087, 1095, 0, 1087, 0, 1087, 0, 0, 0, 0, 1087, 0, 0, 0, 1085, 0, 1091, 0, 1090, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 1087, 4773, 4774, 0, 0, 4775, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 4810, 4811, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1085, 0, 0, 1088, 4822, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 1087, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 4739, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 1091, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 1088, 0, 0, 0, 1088, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 1085, 0, 0, 1087, 0, 1090, 0, 0, 0, 2778, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5005, 0, 1090, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 1094, 2015, 0, 0, 0, 0, 0, 0, 0, 2929, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 1087, 0, 5054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 2929, 0, 0, 0, 0, 1094, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 1093, 0, 1095, 0, 0, 1087, 0, 0, 1085, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 1090, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 4810, 1088, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 5195, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 1094, 1095, 1095, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 1085, 0, 1090, 0, 0, 1088, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 5249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 1090, 1085, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 5277, 5277, 5277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4739, 1095, 0, 4810, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 1091, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1087, 0, 5338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5277, 1085, 1093, 0, 0, 1090, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 1091, 1091, 0, 0, 0, 0, 0, 0, 0, 1093, 1087, 5430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 1090, 0, 5277, 0, 1090, 1090, 0, 0, 0, 0, 0, 0, 5457, 0, 0, 1087, 0, 0, 0, 1087, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1085, 0, 1088, 0, 1088, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 1093, 0, 0, 1088, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 1091, 0, 0, 0, 1091, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 1087, 0, 1085, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 1094, 0, 1093, 1088, 0, 1094, 1094, 0, 1087, 0, 1091, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 1093, 1093, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 1090, 0, 0, 1090, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 1090, 1085, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0, 0, 1093, 1088, 0, 0, 1093, 1093, 0, 0, 0, 0, 1091, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 1085, 1085, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 1090, 0, 0, 1090, 0, 1090, 0, 0, 1085, 0, 1090, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 1087, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 1090, 1087, 0, 0, 0, 0, 1087, 1087, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 1091, 0, 1091, 0, 0, 1088, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 1093, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 1091, 1088, 0, 0, 0, 1087, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 1093, 0, 1091, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 1088, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 1093, 0, 1093, 0, 0, 0, 1091, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1091, 0, 0, 0, 0, 0, 1093, 0, 1093, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 2052, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 2760, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 2052, 2052, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 1088, 0, 0, 0, 0, 1088, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 1093, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 1093, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 2052, 0, 0, 2760, 2760, 0, 3497, 0, 2760, 0, 0, 0, 2052, 0, 0, 2052, 0, 0, 0, 1091, 2052, 0, 0, 0, 0, 0, 2052, 0, 0, 1093, 0, 2052, 0, 1093, 0, 0, 0, 0, 2052, 2052, 2052, 2052, 0, 0, 0, 2760, 2760, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 2052, 0, 0, 0, 0, 0, 0, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 1093, 1090, 0, 0, 0, 0, 1090, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 2052, 0, 0, 1091, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 1091, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 2052, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3497, 3497, 0, 0, 2760, 2760, 2760, 2760, 0, 0, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 3497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 2052, 0, 2052, 0, 0, 3497, 3497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 2760, 2760, 2052, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 1093, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 2052, 2052, 2052, 0, 0, 0, 0, 1093, 3497, 3497, 3497, 3497, 0, 0, 0, 0, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 2052, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 2052, 0, 2052, 0, 0, 0, 2052, 0, 0, 3497, 3497, 0, 0, 2052, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 2052, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 2052, 0, 0, 0, 2052, 2052, 2052, 0, 0, 2052, 0, 0, 2052, 2052, 0, 0, 0, 2052, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3497, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 2052, 2052, 0, 0, 0, 0, 0, 0, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2760, 0, 0, 3497, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3497, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2760, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3497, 3497, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 2052, 227, 228, 229, 230, 231, 232, 233, 234, 1610, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 1611, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 1612, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 1613, 0, 0, 0, 0, 0, 0, 1282, 1614, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 40, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 44, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 1145, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 49, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 50, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 5016, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 2762, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 4016, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 599, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 4088, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 4106, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, -1771, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, -1771, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, -1771, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, -1771, 379, 380, 381, 382, 383, 0, 0, 384, 385, -1771, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1771, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, -1771, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 0, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1358, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 2157, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 2158, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 2160, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 2162, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 2270, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 2157, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 2158, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 2160, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 2162, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 0, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 589, 590, 591, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 3338, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 40, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 44, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 1145, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 49, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 50, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 2768, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 2769, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 2770, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 2771, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 1976, 2723, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 1281, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 2125, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 3217, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 2769, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 2128, 2129, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 2890, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 4140, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 4480, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 4492, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 4800, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 4801, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 4802, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 4803, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 5274, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 5275, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 5276, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 5275, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 5276, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 1278, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 4998, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2754, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 0, 0, 0, 0, 0, 2755, 2756, 0, 0, 0, 0, 0, 0, 0, 2757, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, -2631, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 5275, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, -2631, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 0, 0, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, -2631, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 0, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, -2631, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 5276, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, -2631, 0, 0, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2754, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 0, 0, 0, 0, 0, 2755, 2756, 0, 0, 226, 1211, 659, 1212, 1213, 2757, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2879, 2880, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 0, 0, 0, 0, 0, 2881, 2882, 0, 0, 0, 0, 0, 0, 0, 2757, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 0, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2754, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 0, 0, 0, 0, 0, 2755, 2756, 0, 0, 226, 1211, 659, 1212, 1213, 2757, 719, 1215, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2754, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 226, 1211, 659, 1212, 1213, 0, 719, 1215, 0, 0, 0, 0, 0, 0, 2757, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 4049, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2754, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 226, 1211, 659, 1212, 1213, 0, 719, 1215, 0, 0, 0, 0, 0, 0, 2757, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 0, 415, 416, 417, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 2754, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 4523, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 226, 1211, 659, 1212, 1213, 1214, 719, 1215, 0, 0, 0, 0, 0, 0, 2757, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 1216, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1217, 249, 1218, 1219, 0, 252, 253, 254, 255, 256, 257, 1220, 1221, 258, 259, 1222, 1223, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 1233, 1234, 297, 1235, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 0, 319, 0, 320, 321, 322, 323, 1236, 325, 326, 327, 1237, 1238, 329, 0, 330, 331, 1239, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 1241, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 1242, 1243, 0, 1244, 0, 374, 0, 0, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 0, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1248, 409, 1249, 411, 412, 413, 414, 1250, 415, 416, 0, 418, 1251, 1252, 420, 1253, 422, 423, 424, 0, 425, 426, 0, 0, 1254, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1257, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 1258, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 0, 510, 511, 1260, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1262, 1263, 0, 0, 541, 542, 1264, 544, 1265, 1266, 546, 547, 548, 549, 550, 551, 552, 0, 1267, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 1269, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 226, 0, 0, 0, 0, 1279, 1280, 0, 0, 0, 0, 0, 0, 0, 1282, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 1221, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 1237, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 3566, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 1252, 420, 421, 422, 423, 424, 0, 425, 426, 0, 808, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 3567, 491, 492, 493, 494, 495, 496, 497, 498, 40, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 44, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 1264, 544, 1265, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 1145, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 49, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 3568, 589, 590, 591, 0, 0, 50, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3569, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 1221, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 1237, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 3566, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 1252, 420, 421, 422, 423, 424, 0, 425, 426, 0, 808, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 3567, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 1264, 544, 1265, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 3568, 589, 590, 591, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3569, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 1221, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 1237, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 1252, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 3567, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 1264, 544, 1265, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 3568, 589, 590, 591, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 1221, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 1237, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 1252, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 1264, 544, 1265, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4169, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 1221, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 1237, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 1252, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 1264, 544, 1265, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 0, 0, 863, 1492, 659, 0, 0, 0, 719, 0, 0, 0, 0, 0, 0, 0, 5256, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1905, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 1906, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 1907, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 863, 0, 0, 0, 0, 1493, 1494, 5069, 0, 0, 0, 0, 0, 0, 5070, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 3, 4, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 40, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 44, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 1145, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 49, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 50, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4852, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 40, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 44, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 1145, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 49, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 50, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1340, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2912, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4085, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 0, 0, 0, 0, 1058, 1492, 659, 0, 0, 877, 719, 0, 0, 0, 0, 4540, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 1623, 235, 236, 237, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 238, 239, 1631, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 1632, 252, 253, 254, 255, 256, 257, 1633, 1634, 258, 259, 1062, 1063, 262, 1635, 263, 264, 265, 266, 0, 1636, 268, 1637, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1638, 278, 279, 280, 281, 282, 283, 1639, 284, 285, 286, 287, 1640, 1641, 1642, 288, 1643, 1644, 1645, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 1646, 298, 1647, 299, 300, 301, 302, 303, 304, 1648, 305, 306, 307, 308, 1649, 1650, 309, 310, 1066, 312, 313, 1651, 314, 315, 316, 1652, 317, 318, 319, 1653, 320, 321, 322, 323, 0, 325, 326, 327, 0, 1654, 329, 1655, 330, 331, 1067, 333, 1656, 334, 1657, 335, 336, 1658, 337, 338, 339, 340, 341, 1659, 342, 0, 1660, 0, 345, 346, 1661, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1662, 357, 358, 359, 360, 361, 362, 363, 1663, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 1664, 1071, 1665, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1666, 1667, 384, 0, 386, 387, 388, 1668, 389, 390, 391, 1669, 1670, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 3839, 1671, 415, 416, 417, 418, 1672, 0, 420, 1074, 422, 423, 424, 1673, 425, 426, 1674, 1675, 3840, 428, 429, 1676, 1677, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 1678, 446, 447, 0, 449, 0, 451, 452, 453, 1679, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 1680, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1681, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 1682, 499, 500, 501, 502, 503, 1683, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 1684, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 1685, 529, 530, 1686, 531, 532, 533, 534, 535, 536, 537, 1687, 538, 1078, 1079, 1688, 1689, 541, 542, 0, 544, 0, 1690, 546, 547, 548, 549, 550, 551, 552, 1691, 1692, 553, 554, 555, 556, 557, 1693, 1694, 558, 559, 560, 561, 562, 0, 1080, 1695, 565, 566, 567, 568, 569, 570, 1696, 1697, 571, 1698, 1699, 572, 573, 574, 575, 576, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 0, 0, 883, 884, 885, 0, 3841, 3842, 888, 889, 890, 891, 1058, 1492, 659, 0, 0, 877, 719, 0, 0, 0, 0, 0, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 1623, 235, 236, 237, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 238, 239, 1631, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 1632, 252, 253, 254, 255, 256, 257, 1633, 1634, 258, 259, 1062, 1063, 262, 1635, 263, 264, 265, 266, 0, 1636, 268, 1637, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1638, 278, 279, 280, 281, 282, 283, 1639, 284, 285, 286, 287, 1640, 1641, 1642, 288, 1643, 1644, 1645, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 1646, 298, 1647, 299, 300, 301, 302, 303, 304, 1648, 305, 306, 307, 308, 1649, 1650, 309, 310, 1066, 312, 313, 1651, 314, 315, 316, 1652, 317, 318, 319, 1653, 320, 321, 322, 323, 0, 325, 326, 327, 0, 1654, 329, 1655, 330, 331, 1067, 333, 1656, 334, 1657, 335, 336, 1658, 337, 338, 339, 340, 341, 1659, 342, 0, 1660, 0, 345, 346, 1661, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1662, 357, 358, 359, 360, 361, 362, 363, 1663, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 1664, 1071, 1665, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1666, 1667, 384, 0, 386, 387, 388, 1668, 389, 390, 391, 1669, 1670, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 4261, 1671, 415, 416, 417, 418, 1672, 0, 420, 1074, 422, 423, 424, 1673, 425, 426, 1674, 1675, 3840, 428, 429, 1676, 1677, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 1678, 446, 447, 0, 449, 0, 451, 452, 453, 1679, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 1680, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1681, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 1682, 499, 500, 501, 502, 503, 1683, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 1684, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 1685, 529, 530, 1686, 531, 532, 533, 534, 535, 536, 537, 1687, 538, 1078, 1079, 1688, 1689, 541, 542, 0, 544, 0, 1690, 546, 547, 548, 549, 550, 551, 552, 1691, 1692, 553, 554, 555, 556, 557, 1693, 1694, 558, 559, 560, 561, 562, 0, 1080, 1695, 565, 566, 567, 568, 569, 570, 1696, 1697, 571, 1698, 1699, 572, 573, 574, 575, 576, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 3841, 3842, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 881, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 882, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 886, 887, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 1008, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 1009, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 886, 887, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 1108, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 1109, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1110, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 886, 887, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 1722, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 1723, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 886, 887, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 886, 887, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 2990, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 2991, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, 599, 0, 883, 884, 885, 877, 886, 887, 888, 889, 890, 891, 878, 879, 880, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 4829, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1622, 0, 0, 883, 884, 885, 0, 886, 887, 888, 889, 890, 891, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1623, 235, 236, 237, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 238, 239, 1631, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1632, 252, 253, 254, 255, 256, 257, 1633, 1634, 258, 259, 260, 261, 262, 1635, 263, 264, 265, 266, 267, 1636, 268, 1637, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1638, 278, 279, 280, 281, 282, 283, 1639, 284, 285, 286, 287, 1640, 1641, 1642, 288, 1643, 1644, 1645, 289, 290, 291, 292, 293, 294, 295, 296, 297, 1646, 298, 1647, 299, 300, 301, 302, 303, 304, 1648, 305, 306, 307, 308, 1649, 1650, 309, 310, 311, 312, 313, 1651, 314, 315, 316, 1652, 317, 318, 319, 1653, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1654, 329, 1655, 330, 331, 332, 333, 1656, 334, 1657, 335, 336, 1658, 337, 338, 339, 340, 341, 1659, 342, 343, 1660, 344, 345, 346, 1661, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1662, 357, 358, 359, 360, 361, 362, 363, 1663, 364, 365, 366, 367, 368, 369, 370, 371, 372, 1664, 373, 1665, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1666, 1667, 384, 385, 386, 387, 388, 1668, 389, 390, 391, 1669, 1670, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 1671, 415, 416, 417, 418, 1672, 419, 420, 421, 422, 423, 424, 1673, 425, 426, 1674, 1675, 427, 428, 429, 1676, 1677, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 1678, 446, 447, 448, 449, 450, 451, 452, 453, 1679, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 1680, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1681, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 1682, 499, 500, 501, 502, 503, 1683, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 1684, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 1685, 529, 530, 1686, 531, 532, 533, 534, 535, 536, 537, 1687, 538, 539, 540, 1688, 1689, 541, 542, 543, 544, 545, 1690, 546, 547, 548, 549, 550, 551, 552, 1691, 1692, 553, 554, 555, 556, 557, 1693, 1694, 558, 559, 560, 561, 562, 563, 564, 1695, 565, 566, 567, 568, 569, 570, 1696, 1697, 571, 1698, 1699, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 5221, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 2157, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 2158, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 2159, 430, 431, 2160, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 2162, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 3334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 2163, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 2157, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 2158, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 2159, 430, 431, 2160, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 2162, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 863, 1492, 659, 0, 0, 0, 719, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 2163, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 2085, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1905, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 1906, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 1907, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 1492, 659, 0, 0, 0, 719, 1493, 1494, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 2090, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1905, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 1906, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 1907, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 1492, 659, 0, 0, 0, 719, 1493, 1494, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1905, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 1906, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 1907, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 659, 0, 0, 0, 719, 1493, 1494, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 2944, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1905, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 1906, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 1907, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 719, 731, 732, 0, 0, 0, 0, 0, 0, 227, 720, 229, 230, 231, 232, 233, 234, 721, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 722, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 723, 332, 333, 0, 334, 0, 724, 0, 725, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 726, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 727, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 728, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 729, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 730, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1622, 5435, 659, 0, 0, 0, 719, 731, 732, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1623, 235, 236, 237, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 238, 239, 1631, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1632, 252, 253, 254, 255, 256, 257, 1633, 1634, 258, 259, 260, 261, 262, 1635, 263, 264, 265, 266, 267, 1636, 268, 1637, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1638, 278, 279, 280, 281, 282, 283, 1639, 284, 285, 286, 287, 1640, 1641, 1642, 288, 1643, 1644, 1645, 289, 290, 291, 292, 293, 294, 295, 296, 297, 1646, 298, 1647, 299, 300, 301, 302, 303, 304, 1648, 305, 306, 307, 308, 1649, 1650, 309, 310, 311, 312, 313, 1651, 314, 315, 316, 1652, 317, 318, 319, 1653, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1654, 329, 1655, 330, 331, 332, 333, 1656, 334, 1657, 335, 336, 1658, 337, 338, 339, 340, 341, 1659, 342, 343, 1660, 344, 345, 346, 1661, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1662, 357, 358, 359, 360, 361, 362, 363, 1663, 364, 365, 366, 367, 368, 369, 370, 371, 372, 1664, 373, 1665, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1666, 1667, 384, 385, 386, 387, 388, 1668, 389, 390, 391, 1669, 1670, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 1671, 415, 416, 417, 418, 1672, 419, 420, 421, 422, 423, 424, 1673, 425, 426, 1674, 1675, 427, 428, 429, 1676, 1677, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 1678, 446, 447, 448, 449, 450, 451, 452, 453, 1679, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 1680, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1681, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 1682, 499, 500, 501, 502, 503, 1683, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 1684, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 1685, 529, 530, 1686, 531, 532, 533, 534, 535, 536, 537, 1687, 538, 539, 540, 1688, 1689, 541, 542, 543, 544, 545, 1690, 546, 547, 548, 549, 550, 551, 552, 1691, 1692, 553, 554, 555, 556, 557, 1693, 1694, 558, 559, 560, 561, 562, 563, 564, 1695, 565, 566, 567, 568, 569, 570, 1696, 1697, 571, 1698, 1699, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1623, 235, 236, 237, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 238, 239, 1631, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1632, 252, 253, 254, 255, 256, 257, 1633, 1634, 258, 259, 260, 261, 262, 1635, 263, 264, 265, 266, 267, 1636, 268, 1637, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1638, 278, 279, 280, 281, 282, 283, 1639, 284, 285, 286, 287, 1640, 1641, 1642, 288, 1643, 1644, 1645, 289, 290, 291, 292, 293, 294, 295, 296, 297, 1646, 298, 1647, 299, 300, 301, 302, 303, 304, 1648, 305, 306, 307, 308, 1649, 1650, 309, 310, 311, 312, 313, 1651, 314, 315, 316, 1652, 317, 318, 319, 1653, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1654, 329, 1655, 330, 331, 332, 333, 1656, 334, 1657, 335, 336, 1658, 337, 338, 339, 340, 341, 1659, 342, 343, 1660, 344, 345, 346, 1661, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1662, 357, 358, 359, 360, 361, 362, 363, 1663, 364, 365, 366, 367, 368, 369, 370, 371, 372, 1664, 373, 1665, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1666, 1667, 384, 385, 386, 387, 388, 1668, 389, 390, 391, 1669, 1670, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 1671, 415, 416, 417, 418, 1672, 419, 420, 421, 422, 423, 424, 1673, 425, 426, 1674, 1675, 427, 428, 429, 1676, 1677, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 1678, 446, 447, 448, 449, 450, 451, 452, 453, 1679, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 1680, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1681, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 1682, 499, 500, 501, 502, 503, 1683, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 1684, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 1685, 529, 530, 1686, 531, 532, 533, 534, 535, 536, 537, 1687, 538, 539, 540, 1688, 1689, 541, 542, 543, 544, 545, 1690, 546, 547, 548, 549, 550, 551, 552, 1691, 1692, 553, 554, 555, 556, 557, 1693, 1694, 558, 559, 560, 561, 562, 563, 564, 1695, 565, 566, 567, 568, 569, 570, 1696, 1697, 571, 1698, 1699, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 3062, 232, 233, 234, 1623, 235, 236, 237, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 238, 239, 1631, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1632, 252, 253, 254, 255, 256, 257, 1633, 1634, 258, 259, 260, 261, 262, 1635, 263, 264, 265, 266, 267, 1636, 268, 1637, 269, 270, 271, 272, 273, 274, 275, 276, 277, 1638, 278, 279, 280, 281, 282, 283, 1639, 284, 285, 286, 287, 1640, 1641, 1642, 288, 1643, 1644, 1645, 289, 290, 291, 292, 293, 294, 295, 296, 297, 1646, 298, 1647, 299, 300, 301, 302, 303, 304, 1648, 305, 306, 307, 308, 1649, 1650, 309, 310, 311, 3063, 313, 1651, 314, 315, 316, 1652, 317, 318, 319, 1653, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1654, 329, 1655, 330, 331, 332, 333, 1656, 334, 1657, 335, 336, 1658, 337, 338, 339, 340, 341, 1659, 342, 343, 1660, 344, 345, 346, 1661, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 1662, 357, 358, 359, 360, 361, 362, 363, 1663, 364, 365, 366, 367, 368, 369, 370, 371, 372, 1664, 373, 1665, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 1666, 1667, 384, 385, 386, 387, 388, 1668, 389, 390, 391, 1669, 1670, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 1671, 415, 416, 417, 418, 1672, 419, 420, 421, 422, 423, 424, 1673, 425, 426, 1674, 1675, 427, 428, 429, 1676, 1677, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 1678, 446, 447, 448, 449, 450, 451, 452, 453, 1679, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 1680, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 1681, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 1682, 499, 500, 501, 502, 503, 1683, 3064, 505, 506, 507, 508, 509, 510, 511, 512, 513, 1684, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 1685, 529, 530, 1686, 531, 532, 533, 534, 535, 536, 537, 1687, 538, 539, 540, 1688, 1689, 541, 542, 543, 544, 545, 1690, 546, 547, 548, 549, 550, 551, 552, 1691, 1692, 553, 554, 555, 556, 557, 1693, 1694, 558, 559, 560, 561, 562, 563, 564, 1695, 565, 566, 567, 568, 569, 570, 1696, 1697, 571, 1698, 1699, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 1221, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 1224, 0, 1225, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 1237, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 1240, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 1245, 386, 387, 388, 0, 389, 390, 391, 1246, 1247, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 1252, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 1255, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 1256, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 1259, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 1261, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 1264, 544, 1265, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 1268, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 1270, 1271, 1272, 1273, 583, 1274, 1275, 1276, 1277, 588, 589, 590, 591, 863, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1905, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 1906, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 1907, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 901, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 921, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 922, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 2422, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 3412, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 1027, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1103, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1116, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 864, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1128, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 1129, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 865, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 3, 4, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 2070, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1891, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1051, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1100, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1114, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1118, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 385, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 2197, 263, 264, 265, 266, 267, 0, 0, 2277, 269, 270, 271, 272, 273, 0, 275, 276, 277, 2198, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 2278, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 2200, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 2279, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 2201, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 2202, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 2197, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 2198, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 2278, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 2200, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 3268, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 2201, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 2202, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 776, 233, 234, 738, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 739, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 777, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 740, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 741, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 738, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 739, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 2951, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 740, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 741, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 2197, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 2198, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 2278, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 2200, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 2201, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 2202, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 738, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 739, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 740, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 741, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1932, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 1933, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 1934, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 1935, 335, 0, 0, 0, 1936, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 1937, 1938, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 1939, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 1940, 488, 489, 490, 491, 492, 1941, 494, 495, 496, 497, 498, 0, 1942, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 1943, 531, 0, 1944, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 1945, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 739, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 740, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 741, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 914, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 915, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 808, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 3043, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 3044, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 3056, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 3057, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 600, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 650, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 651, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 768, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 769, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 770, 540, 0, 0, 771, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 802, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 803, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 804, 540, 0, 0, 805, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 808, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 872, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 873, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1043, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1315, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 1326, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 1327, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 793, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 1319, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 796, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1437, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 808, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 1497, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1498, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 768, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 2841, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 2842, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 2843, 531, 0, 533, 2844, 535, 2845, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 2846, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 4106, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 4120, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 754, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 766, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 789, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 790, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 793, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 794, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 796, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 819, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 897, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 907, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 925, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 992, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 998, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1015, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1018, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1020, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1056, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1120, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1122, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1132, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1135, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1138, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 793, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 1319, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 796, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1753, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1791, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1793, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1863, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1865, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 1867, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 1970, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 2149, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 0, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 793, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 1319, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 2184, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 796, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 2261, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 2262, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 2263, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 2340, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 2262, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 2263, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 2357, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 2262, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 2263, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 2556, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 2560, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 2635, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 2962, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 788, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 791, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 792, 485, 486, 487, 488, 489, 490, 491, 492, 793, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 2262, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 795, 540, 0, 0, 2263, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 797, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 3031, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 3046, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 3048, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 3190, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 3226, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 345, 346, 0, 347, 348, 349, 350, 4381, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 2157, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 2158, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 2160, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 2162, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 247, 248, 0, 250, 251, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 329, 0, 330, 331, 332, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 343, 0, 344, 0, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 366, 367, 368, 369, 370, 371, 372, 0, 373, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 385, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 413, 414, 0, 415, 416, 0, 418, 0, 419, 420, 421, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 432, 0, 434, 0, 436, 437, 438, 439, 440, 441, 442, 0, 444, 445, 0, 446, 447, 448, 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 489, 0, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 506, 507, 508, 0, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 539, 540, 0, 0, 541, 542, 543, 544, 545, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 563, 564, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 2257, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 3940, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 2329, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 1076, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 3748, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 1076, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 5289, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 1076, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 1068, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 1076, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 1126, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 1076, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 1076, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 2161, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 1059, 249, 1060, 1061, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 1062, 1063, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 1064, 1065, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 1066, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 1067, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 1069, 1070, 0, 1071, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1072, 409, 1073, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 1074, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 1075, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 0, 507, 508, 509, 510, 511, 1077, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 1078, 1079, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 1080, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 243, 244, 245, 246, 0, 0, 249, 0, 0, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 0, 0, 262, 0, 263, 264, 265, 266, 0, 0, 268, 0, 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 284, 285, 286, 287, 0, 0, 0, 288, 0, 0, 0, 289, 290, 291, 292, 293, 294, 0, 0, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 0, 333, 0, 334, 0, 335, 336, 0, 337, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 365, 0, 367, 368, 369, 370, 0, 0, 0, 0, 0, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 0, 0, 384, 0, 386, 387, 388, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 409, 0, 411, 412, 413, 0, 0, 415, 416, 417, 418, 0, 0, 420, 0, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 0, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 0, 507, 508, 509, 510, 511, 0, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 0, 538, 0, 0, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 0, 0, 565, 566, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 4953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591, 0, 227, 228, 229, 230, 231, 232, 233, 234, 0, 235, 236, 237, 0, 0, 0, 0, 0, 0, 0, 238, 239, 0, 240, 241, 242, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 252, 253, 254, 255, 256, 257, 0, 0, 258, 259, 0, 0, 262, 0, 263, 264, 265, 266, 0, 0, 0, 0, 269, 270, 271, 272, 273, 0, 275, 276, 277, 0, 278, 279, 280, 281, 282, 283, 0, 0, 285, 286, 287, 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 0, 0, 297, 0, 298, 0, 299, 300, 301, 302, 303, 304, 0, 305, 306, 307, 308, 0, 0, 309, 310, 311, 312, 313, 0, 314, 315, 316, 0, 317, 318, 319, 0, 320, 321, 322, 323, 0, 325, 326, 327, 0, 0, 329, 0, 330, 331, 0, 333, 0, 334, 0, 335, 0, 0, 0, 338, 339, 340, 341, 0, 342, 0, 0, 0, 345, 346, 0, 347, 348, 349, 350, 351, 0, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 0, 364, 0, 0, 367, 368, 369, 370, 0, 0, 0, 0, 0, 374, 0, 0, 377, 0, 379, 380, 381, 382, 383, 0, 0, 384, 0, 0, 387, 0, 0, 389, 390, 391, 0, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 0, 411, 412, 413, 0, 0, 415, 416, 0, 418, 0, 0, 420, 0, 422, 423, 424, 0, 425, 426, 0, 0, 427, 428, 429, 0, 0, 430, 431, 0, 0, 434, 0, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 446, 447, 0, 449, 0, 451, 452, 453, 0, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 0, 465, 466, 467, 468, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, 481, 482, 0, 484, 485, 486, 487, 488, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 499, 500, 501, 502, 503, 0, 504, 505, 0, 507, 508, 0, 510, 511, 0, 513, 0, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 0, 528, 0, 529, 530, 0, 531, 0, 533, 534, 535, 536, 537, 0, 538, 0, 0, 0, 0, 541, 542, 0, 544, 0, 0, 546, 547, 548, 549, 550, 551, 552, 0, 0, 553, 554, 555, 556, 557, 0, 0, 558, 559, 560, 561, 562, 0, 0, 0, 565, 0, 567, 568, 569, 570, 0, 0, 571, 0, 0, 572, 573, 574, 575, 576, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, 590, 591 }; static const yytype_int16 yycheck[] = { 6, 44, 0, 203, 627, 0, 0, 36, 1171, 51, 908, 1149, 935, 198, 0, 787, 0, 23, 1106, 25, 789, 206, 203, 29, 209, 22, 21, 181, 34, 35, 36, 28, 38, 1423, 1549, 41, 42, 849, 44, 939, 46, 2496, 739, 740, 741, 683, 924, 1076, 745, 838, 1468, 909, 2853, 933, 812, 189, 811, 13, 45, 697, 1064, 1065, 937, 2568, 1461, 1021, 6, 1079, 2694, 1203, 1074, 875, 2509, 1708, 796, 2390, 1787, 2903, 1468, 2165, 2166, 1474, 3640, 818, 1957, 3008, 23, 765, 618, 2411, 1976, 208, 18, 3319, 3595, 3254, 3062, 3347, 3064, 36, 3350, 1612, 2670, 3692, 0, 222, 861, 3265, 3300, 3540, 2912, 3569, 701, 696, 706, 0, 660, 995, 3035, 2328, 4419, 999, 4174, 3929, 3912, 21, 1004, 3636, 3728, 2877, 168, 3575, 681, 35, 2064, 684, 1014, 4576, 1485, 669, 42, 4524, 4411, 1010, 3917, 2020, 3873, 2785, 1401, 3330, 1028, 183, 0, 0, 1452, 2129, 0, 50, 2922, 1026, 0, 0, 8, 707, 1799, 2097, 660, 3317, 0, 15, 0, 183, 0, 0, 217, 2850, 2108, 4734, 1889, 0, 1573, 0, 835, 189, 190, 191, 192, 942, 194, 3916, 0, 41, 198, 4362, 200, 2131, 835, 203, 4681, 4956, 206, 3616, 859, 209, 3503, 3640, 212, 0, 214, 5, 1348, 217, 35, 4, 1512, 221, 4596, 223, 9, 4540, 4722, 4542, 5, 0, 0, 5, 57, 908, 2903, 1233, 1234, 1529, 1579, 1580, 1997, 916, 0, 3574, 9, 3576, 5, 4410, 899, 49, 11, 926, 5, 904, 792, 1253, 5, 1263, 1062, 1063, 13, 14, 4636, 11, 13, 14, 5, 9, 2455, 1073, 2457, 57, 5, 112, 2461, 4050, 2463, 2464, 816, 0, 87, 0, 5, 114, 2916, 2472, 2473, 2474, 9, 1095, 9, 829, 40, 5, 1610, 1611, 2499, 988, 32, 4643, 4644, 13, 14, 5, 792, 26, 4930, 26, 5, 1415, 5, 158, 5, 42, 117, 163, 117, 79, 164, 207, 5, 26, 175, 105, 72, 5, 57, 170, 163, 105, 74, 3, 22, 57, 133, 5, 3930, 105, 3, 4, 5, 5, 3010, 163, 9, 70, 106, 163, 264, 57, 4, 1149, 187, 112, 269, 9, 5, 165, 112, 5, 270, 3998, 3999, 1035, 4001, 4002, 4003, 4004, 4005, 264, 39, 144, 4667, 289, 62, 144, 163, 163, 57, 42, 211, 5132, 38, 285, 57, 270, 300, 117, 105, 264, 165, 343, 163, 163, 289, 11, 300, 303, 201, 252, 187, 131, 5274, 339, 163, 163, 357, 2610, 11, 2612, 4833, 4834, 1141, 22, 289, 1365, 187, 187, 1222, 1223, 72, 323, 84, 254, 116, 334, 32, 11, 385, 187, 5, 191, 285, 627, 397, 316, 74, 40, 36, 323, 112, 131, 163, 141, 163, 1249, 84, 112, 11, 1343, 399, 420, 39, 436, 356, 430, 40, 1331, 159, 112, 4723, 86, 4958, 271, 26, 29, 187, 339, 187, 72, 323, 33, 250, 384, 63, 64, 4850, 40, 269, 4571, 311, 1113, 4797, 274, 678, 399, 4578, 26, 72, 53, 268, 26, 193, 442, 33, 399, 57, 480, 33, 5123, 254, 476, 465, 128, 329, 158, 57, 476, 419, 72, 419, 5262, 1535, 397, 625, 478, 208, 1189, 163, 476, 631, 328, 131, 121, 476, 476, 163, 225, 442, 185, 305, 1329, 1401, 644, 1283, 252, 1334, 1335, 442, 145, 476, 206, 267, 57, 425, 1177, 418, 5419, 74, 74, 1348, 215, 74, 1282, 74, 26, 1188, 343, 84, 444, 476, 476, 1311, 228, 252, 1151, 476, 375, 298, 1463, 476, 424, 1204, 163, 476, 3728, 29, 397, 163, 259, 163, 476, 254, 343, 5335, 353, 359, 259, 11, 343, 359, 114, 480, 1131, 29, 119, 3264, 5030, 329, 3752, 4895, 476, 405, 385, 439, 329, 606, 180, 187, 385, 259, 1149, 612, 259, 614, 418, 616, 418, 618, 611, 620, 329, 611, 611, 384, 385, 465, 627, 476, 476, 476, 611, 632, 611, 634, 5131, 435, 480, 397, 429, 1746, 641, 1440, 1131, 5121, 431, 117, 4072, 410, 480, 329, 5402, 1450, 397, 439, 480, 329, 1518, 4110, 476, 1389, 4099, 4114, 397, 480, 665, 356, 441, 397, 669, 1208, 707, 1544, 480, 674, 1547, 476, 462, 678, 711, 385, 681, 467, 468, 684, 4948, 476, 607, 462, 25, 838, 5442, 479, 1610, 1611, 1612, 425, 474, 3884, 476, 700, 478, 476, 1555, 1565, 3925, 465, 5331, 479, 479, 475, 472, 4487, 382, 751, 5266, 476, 706, 5062, 478, 1208, 479, 4015, 476, 472, 467, 468, 476, 418, 720, 201, 722, 3643, 724, 1608, 397, 1383, 476, 1536, 730, 3926, 1539, 1540, 476, 4153, 2061, 467, 468, 467, 468, 1383, 751, 2955, 476, 3906, 705, 480, 5253, 479, 397, 479, 5184, 425, 1438, 476, 959, 766, 4098, 329, 4100, 1927, 441, 480, 1356, 476, 812, 955, 3930, 329, 476, 4826, 476, 961, 476, 959, 964, 786, 787, 1326, 789, 790, 476, 462, 26, 794, 382, 1334, 1335, 373, 374, 826, 480, 467, 468, 366, 842, 476, 480, 808, 1460, 1348, 1893, 812, 467, 468, 329, 944, 707, 818, 5193, 826, 858, 474, 4406, 1499, 4462, 478, 366, 3972, 165, 830, 366, 5206, 22, 1617, 480, 828, 5130, 1326, 828, 828, 5337, 842, 480, 3153, 2925, 5161, 2927, 828, 4675, 828, 3, 1934, 469, 470, 471, 472, 1855, 858, 2246, 3291, 138, 1513, 1945, 5127, 2277, 469, 470, 471, 472, 3628, 397, 397, 326, 1743, 397, 876, 397, 349, 1530, 163, 881, 882, 467, 468, 469, 470, 471, 472, 1506, 480, 326, 117, 476, 734, 480, 420, 3566, 20, 422, 3569, 480, 199, 476, 339, 5401, 341, 145, 5341, 5342, 1375, 208, 912, 913, 2882, 275, 3833, 112, 234, 480, 252, 105, 1720, 3834, 105, 222, 120, 27, 175, 480, 2177, 83, 819, 5307, 5, 935, 936, 2324, 828, 2444, 2866, 5104, 131, 264, 944, 105, 790, 418, 275, 828, 794, 163, 3, 2883, 5, 955, 5433, 191, 213, 959, 325, 961, 356, 5126, 964, 58, 480, 402, 289, 305, 5263, 3640, 851, 66, 34, 2267, 201, 165, 430, 979, 308, 275, 3614, 135, 47, 153, 828, 828, 2857, 2913, 828, 5254, 4713, 5370, 828, 828, 327, 252, 2755, 2756, 285, 1001, 828, 2760, 828, 341, 828, 828, 1008, 1009, 3752, 5444, 4838, 828, 175, 828, 912, 913, 4612, 315, 4572, 269, 144, 164, 828, 356, 1830, 1831, 3231, 3232, 1030, 1031, 1032, 310, 1034, 3952, 1036, 1037, 1038, 2548, 2797, 2798, 26, 3230, 467, 468, 469, 470, 471, 472, 5343, 158, 112, 4478, 5347, 66, 107, 225, 2190, 255, 293, 722, 723, 724, 400, 3, 727, 728, 729, 252, 406, 356, 388, 84, 439, 3895, 737, 4529, 91, 231, 160, 1975, 4534, 271, 269, 4537, 480, 4525, 283, 240, 66, 252, 57, 4522, 1823, 81, 285, 462, 111, 289, 416, 126, 202, 128, 359, 1796, 1106, 5400, 1108, 1109, 22, 356, 273, 172, 397, 480, 28, 477, 351, 182, 480, 3324, 1042, 2017, 187, 441, 458, 117, 179, 323, 4559, 142, 145, 285, 323, 228, 432, 123, 2161, 175, 107, 1141, 126, 4572, 2061, 83, 4913, 288, 476, 160, 5443, 385, 107, 480, 349, 476, 389, 289, 391, 2028, 476, 224, 1151, 418, 4946, 81, 142, 356, 4968, 2063, 5463, 1171, 1172, 5466, 3254, 2566, 1176, 424, 1178, 1942, 1943, 4401, 465, 4950, 160, 397, 480, 4431, 259, 240, 385, 4912, 243, 418, 1194, 478, 347, 435, 136, 476, 1200, 385, 22, 1203, 385, 5031, 1206, 123, 28, 4395, 5036, 201, 179, 5259, 5260, 275, 252, 339, 325, 131, 1220, 362, 418, 22, 179, 385, 3895, 95, 4949, 1861, 24, 426, 174, 4408, 423, 480, 388, 359, 390, 264, 112, 424, 179, 1875, 439, 1974, 1282, 1976, 2165, 4209, 1250, 45, 1829, 1982, 114, 193, 1888, 4168, 22, 1988, 1989, 1990, 124, 424, 3344, 2014, 609, 462, 22, 1998, 1999, 356, 134, 240, 2003, 334, 243, 2352, 1278, 1279, 1280, 476, 1282, 112, 49, 240, 476, 252, 243, 474, 301, 22, 164, 478, 1818, 339, 347, 28, 361, 5, 66, 287, 1302, 240, 172, 4734, 319, 81, 2177, 1886, 81, 131, 1506, 1896, 1154, 1858, 1156, 1903, 1158, 1351, 1160, 4824, 1162, 1163, 1164, 301, 141, 371, 625, 1169, 1873, 258, 131, 1876, 631, 4760, 349, 116, 103, 157, 1340, 4793, 1368, 1369, 476, 1371, 112, 644, 1385, 123, 1933, 2426, 123, 291, 1937, 4151, 26, 5403, 1941, 349, 703, 1944, 1368, 1369, 329, 1371, 1904, 131, 310, 4952, 1370, 287, 385, 285, 1374, 1375, 385, 131, 1995, 2142, 347, 284, 81, 255, 252, 1385, 1386, 1387, 424, 1389, 205, 356, 347, 1936, 284, 480, 1939, 1940, 340, 259, 131, 167, 413, 112, 390, 465, 457, 77, 202, 213, 347, 323, 1412, 426, 474, 85, 476, 477, 478, 8, 480, 3, 11, 285, 123, 83, 439, 4852, 418, 208, 259, 3993, 4857, 4858, 84, 200, 363, 413, 781, 284, 2309, 4110, 3941, 113, 356, 4114, 158, 1447, 252, 462, 91, 40, 1452, 356, 397, 1455, 26, 169, 47, 4612, 275, 323, 112, 476, 2333, 285, 124, 1467, 1468, 145, 2362, 180, 5024, 411, 390, 187, 134, 1477, 296, 237, 1480, 419, 155, 72, 422, 323, 285, 252, 254, 104, 457, 1152, 4712, 259, 1155, 474, 1157, 167, 1159, 478, 1161, 83, 457, 323, 1165, 153, 1506, 311, 1508, 476, 180, 356, 1512, 287, 328, 1435, 287, 397, 356, 273, 114, 285, 192, 2392, 323, 2607, 394, 2444, 169, 1529, 4609, 1531, 1997, 1570, 1534, 301, 356, 480, 5033, 5034, 2005, 284, 356, 155, 145, 254, 2407, 4699, 420, 4724, 139, 317, 3861, 135, 106, 359, 126, 356, 285, 323, 2098, 126, 168, 128, 115, 275, 4995, 84, 2366, 126, 1570, 128, 4651, 327, 328, 3455, 2374, 225, 251, 2377, 345, 1581, 1582, 1583, 1584, 1585, 151, 3896, 287, 3905, 2342, 2343, 356, 182, 2346, 5024, 323, 412, 187, 1599, 480, 2276, 356, 1520, 254, 217, 214, 285, 1525, 114, 1610, 1611, 1612, 356, 418, 115, 390, 211, 266, 390, 332, 2490, 228, 238, 166, 285, 241, 285, 3137, 356, 311, 237, 183, 3820, 3025, 224, 346, 3824, 3825, 191, 3827, 1520, 2274, 324, 2505, 323, 1525, 413, 3728, 231, 285, 168, 2190, 187, 2119, 2438, 2439, 2440, 114, 2183, 254, 319, 115, 323, 327, 323, 399, 2528, 2529, 2530, 2531, 352, 3752, 349, 191, 1869, 1870, 1594, 356, 2540, 1859, 1598, 271, 183, 319, 3475, 1814, 2362, 323, 3394, 195, 390, 163, 356, 259, 1870, 356, 254, 356, 264, 5129, 476, 372, 285, 2565, 375, 3211, 264, 1708, 385, 1710, 228, 3217, 0, 3504, 1594, 187, 311, 164, 1598, 2395, 356, 1722, 1723, 3591, 3482, 3483, 3484, 3485, 479, 183, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 323, 1742, 4929, 1765, 327, 4966, 252, 349, 254, 426, 197, 2504, 2428, 339, 211, 341, 274, 4669, 420, 3963, 1761, 3965, 439, 306, 341, 212, 341, 1789, 11, 3157, 365, 361, 143, 356, 4927, 222, 1777, 1778, 1779, 1780, 168, 4957, 389, 385, 391, 462, 3544, 3545, 323, 1790, 343, 4944, 327, 5346, 2524, 338, 1797, 254, 1799, 476, 1995, 285, 2960, 273, 5300, 388, 315, 390, 351, 416, 1811, 439, 323, 1814, 476, 285, 402, 1818, 189, 114, 465, 356, 1823, 2348, 426, 402, 480, 402, 4746, 72, 4983, 384, 385, 478, 462, 4456, 5266, 439, 404, 323, 228, 350, 254, 386, 339, 356, 439, 259, 414, 3930, 2580, 420, 4522, 323, 311, 349, 439, 1858, 1859, 4529, 462, 2660, 32, 158, 4534, 168, 2558, 4537, 1869, 1870, 460, 389, 1873, 391, 476, 1876, 385, 467, 468, 469, 470, 471, 472, 4844, 402, 104, 333, 480, 165, 4559, 385, 385, 1893, 1894, 5447, 413, 5141, 309, 416, 1900, 195, 1902, 4572, 5124, 439, 303, 2776, 476, 158, 402, 5340, 4361, 2782, 1903, 1952, 439, 5346, 285, 263, 237, 166, 198, 4884, 432, 4886, 228, 1927, 462, 4890, 4891, 43, 181, 426, 1934, 2933, 1936, 254, 346, 1939, 1940, 159, 1942, 1943, 1967, 1945, 4566, 4742, 4568, 4380, 5125, 4400, 1952, 65, 5106, 432, 323, 480, 252, 1959, 254, 35, 431, 215, 8, 1957, 1966, 1967, 1957, 1957, 1970, 15, 16, 17, 1974, 193, 1976, 1957, 4939, 1957, 54, 1981, 1982, 476, 158, 3326, 4189, 4190, 1988, 1989, 1990, 441, 13, 14, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 389, 2003, 391, 2005, 2006, 181, 389, 2009, 391, 158, 462, 315, 1904, 3644, 2688, 2689, 5447, 477, 238, 476, 480, 241, 2024, 2025, 2026, 2027, 2757, 416, 104, 2031, 2032, 2571, 181, 1966, 2036, 439, 2232, 2039, 2769, 4350, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2230, 2052, 1973, 2233, 2234, 74, 2232, 2058, 2059, 2858, 2061, 285, 4980, 4212, 4734, 84, 1513, 2068, 2852, 4218, 24, 2801, 1913, 2657, 1915, 239, 1917, 480, 1919, 5255, 1921, 5268, 2571, 1530, 1925, 315, 389, 2626, 391, 255, 256, 45, 338, 5246, 2223, 3853, 2097, 4893, 344, 323, 476, 153, 49, 2104, 903, 351, 158, 2108, 2109, 2839, 441, 439, 475, 416, 4935, 190, 2923, 480, 2119, 439, 350, 402, 921, 4793, 22, 924, 5038, 2128, 2129, 432, 28, 462, 356, 4321, 462, 4323, 4324, 2626, 2855, 4327, 386, 2142, 462, 402, 349, 476, 93, 3305, 2149, 325, 2151, 153, 480, 5, 2147, 385, 158, 3315, 3011, 11, 5336, 2273, 408, 238, 346, 441, 241, 19, 2192, 74, 2194, 118, 477, 225, 3, 480, 5329, 252, 285, 84, 385, 237, 2183, 349, 3037, 37, 462, 477, 135, 3699, 480, 2192, 139, 2194, 23, 2813, 30, 31, 2190, 66, 476, 3907, 432, 4, 389, 72, 391, 2245, 9, 284, 2211, 2102, 159, 4, 266, 162, 323, 84, 9, 385, 327, 426, 2223, 225, 2225, 2226, 271, 5023, 237, 2230, 177, 2232, 2233, 2234, 439, 2236, 191, 2238, 141, 2351, 476, 2242, 478, 5396, 2245, 112, 475, 114, 35, 356, 153, 480, 88, 328, 83, 158, 4, 462, 5445, 239, 426, 9, 30, 31, 266, 4935, 2267, 54, 181, 269, 4580, 476, 402, 439, 274, 350, 2277, 3690, 5190, 92, 2768, 899, 2770, 2771, 2285, 2286, 904, 80, 3676, 2755, 2756, 53, 2293, 3211, 2760, 370, 462, 1595, 3928, 3217, 167, 2302, 205, 432, 2342, 2343, 3435, 136, 2346, 346, 476, 471, 259, 2425, 2947, 2948, 476, 104, 478, 2858, 215, 2322, 225, 91, 476, 4995, 2327, 2328, 195, 9, 471, 2797, 2798, 339, 340, 476, 3012, 478, 2596, 2597, 2598, 2342, 2343, 111, 3732, 2346, 3297, 2348, 2349, 477, 476, 164, 480, 141, 5024, 3697, 343, 3699, 187, 3366, 3367, 269, 309, 266, 193, 153, 2950, 439, 480, 441, 158, 2372, 275, 126, 2375, 128, 477, 145, 477, 480, 167, 480, 476, 3253, 197, 3258, 474, 254, 476, 3251, 5302, 283, 259, 53, 477, 2396, 2397, 480, 151, 212, 339, 340, 477, 190, 474, 476, 476, 478, 478, 222, 2411, 3087, 2413, 2414, 389, 430, 391, 205, 463, 464, 465, 432, 467, 468, 469, 470, 471, 472, 477, 3299, 477, 480, 80, 480, 301, 248, 477, 225, 2977, 480, 43, 2442, 2443, 2444, 477, 477, 479, 2448, 480, 234, 317, 238, 477, 2454, 241, 480, 269, 349, 234, 5129, 477, 2462, 291, 480, 2465, 252, 2504, 4655, 459, 1767, 2471, 4971, 3105, 477, 272, 5387, 480, 1775, 266, 2480, 478, 2482, 477, 3641, 3642, 480, 4690, 275, 2977, 1787, 389, 3124, 391, 385, 211, 2496, 477, 284, 2499, 480, 2501, 254, 5298, 2504, 269, 334, 259, 2508, 272, 412, 2511, 264, 477, 339, 340, 480, 141, 4827, 477, 158, 333, 480, 2523, 2524, 2704, 459, 4836, 2707, 153, 3914, 2710, 4612, 477, 158, 426, 480, 8, 5156, 5157, 11, 2541, 328, 3934, 15, 16, 17, 413, 439, 269, 141, 2551, 319, 2553, 477, 383, 43, 480, 2550, 343, 2510, 272, 153, 5183, 350, 1862, 459, 158, 343, 234, 2698, 462, 474, 469, 477, 477, 478, 480, 3919, 211, 2580, 205, 349, 411, 370, 476, 2007, 477, 162, 2010, 480, 419, 1889, 3284, 422, 477, 477, 5266, 480, 480, 477, 225, 477, 480, 388, 480, 480, 2607, 420, 2609, 2610, 2611, 2612, 388, 205, 476, 5411, 477, 385, 2813, 480, 477, 339, 340, 480, 412, 234, 3625, 477, 477, 3524, 480, 416, 477, 225, 477, 480, 477, 480, 477, 480, 416, 266, 3275, 53, 3277, 3444, 2647, 3517, 163, 477, 275, 404, 480, 207, 477, 4736, 441, 480, 426, 476, 8, 414, 430, 11, 476, 441, 3419, 5280, 5281, 477, 5340, 439, 480, 478, 266, 477, 5346, 343, 480, 476, 5476, 477, 2877, 275, 480, 477, 443, 477, 480, 187, 480, 476, 40, 477, 462, 477, 480, 2698, 480, 47, 476, 146, 477, 2704, 8, 480, 2707, 11, 476, 2710, 3585, 15, 16, 17, 4224, 187, 4474, 439, 2719, 441, 2757, 3260, 388, 3262, 72, 476, 2727, 477, 3623, 323, 480, 2732, 477, 477, 343, 480, 480, 209, 234, 477, 477, 477, 480, 480, 480, 0, 477, 3477, 477, 480, 416, 480, 476, 478, 2755, 2756, 2757, 477, 477, 2760, 480, 480, 477, 92, 2801, 480, 146, 2768, 2769, 2770, 2771, 3260, 439, 3262, 441, 441, 477, 5447, 479, 388, 2781, 3511, 832, 2784, 834, 2786, 477, 412, 269, 480, 477, 139, 187, 480, 4207, 5245, 2797, 2798, 323, 271, 2801, 3434, 477, 477, 3343, 480, 480, 416, 477, 269, 476, 480, 2813, 4115, 2815, 4117, 2817, 187, 2819, 477, 412, 146, 480, 146, 3408, 3698, 3556, 234, 477, 269, 3580, 480, 441, 323, 182, 164, 91, 477, 2839, 187, 480, 477, 2843, 477, 480, 477, 480, 343, 480, 2850, 477, 158, 146, 480, 3343, 477, 2154, 3727, 480, 3729, 35, 3668, 2844, 2845, 2846, 2866, 477, 476, 197, 480, 2907, 223, 477, 2874, 2172, 480, 224, 114, 420, 54, 2178, 3751, 477, 212, 2182, 480, 141, 8, 2889, 239, 11, 269, 388, 222, 15, 16, 17, 476, 153, 402, 3770, 234, 2903, 158, 477, 209, 2907, 480, 163, 2910, 2208, 2912, 263, 477, 169, 2850, 480, 172, 432, 248, 416, 176, 477, 271, 477, 480, 346, 480, 477, 104, 477, 480, 477, 480, 477, 480, 343, 480, 477, 477, 477, 480, 480, 480, 477, 441, 477, 480, 477, 480, 205, 480, 2953, 3752, 2955, 3808, 2254, 3830, 22, 2960, 477, 158, 234, 480, 28, 215, 477, 271, 2903, 480, 225, 477, 477, 0, 480, 2273, 477, 41, 66, 480, 476, 388, 477, 254, 477, 480, 2987, 480, 2989, 2990, 2991, 463, 464, 465, 234, 467, 468, 469, 470, 471, 472, 4759, 477, 35, 333, 480, 70, 254, 2306, 416, 343, 266, 443, 361, 269, 190, 3482, 3483, 3484, 3485, 275, 476, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3816, 2331, 441, 269, 477, 254, 4062, 480, 2338, 158, 43, 43, 254, 407, 2344, 254, 83, 3515, 285, 432, 158, 2351, 146, 388, 120, 2355, 432, 3254, 124, 304, 2360, 238, 91, 146, 241, 131, 476, 476, 134, 343, 146, 429, 476, 330, 297, 252, 3544, 3545, 476, 146, 2380, 416, 34, 476, 443, 2385, 209, 146, 146, 2389, 480, 146, 146, 159, 146, 146, 146, 234, 146, 146, 3103, 343, 2402, 146, 256, 158, 441, 284, 146, 269, 460, 146, 141, 146, 388, 2415, 385, 467, 468, 469, 470, 471, 472, 35, 153, 2425, 223, 193, 385, 158, 476, 158, 158, 269, 163, 476, 5, 5, 476, 476, 169, 476, 416, 172, 158, 5, 388, 176, 271, 5, 476, 328, 476, 476, 476, 412, 476, 463, 464, 465, 476, 467, 468, 469, 470, 471, 472, 441, 476, 476, 5, 476, 476, 350, 416, 476, 205, 476, 3979, 436, 5, 438, 439, 476, 476, 476, 252, 476, 254, 476, 476, 476, 476, 370, 476, 476, 225, 349, 264, 441, 476, 476, 476, 281, 476, 440, 343, 273, 3211, 207, 4370, 35, 480, 480, 3217, 95, 223, 474, 35, 285, 477, 478, 479, 3226, 480, 158, 266, 158, 3231, 3232, 4127, 356, 264, 385, 476, 62, 397, 266, 4998, 397, 269, 343, 397, 3878, 3879, 431, 275, 397, 343, 478, 4147, 388, 397, 397, 343, 225, 397, 323, 397, 8, 326, 327, 11, 3266, 3267, 3268, 397, 465, 84, 343, 146, 348, 269, 269, 426, 220, 397, 397, 0, 416, 3283, 259, 397, 388, 419, 289, 269, 439, 269, 264, 356, 40, 476, 3333, 339, 180, 397, 397, 47, 21, 476, 330, 3305, 3306, 441, 84, 480, 146, 285, 187, 462, 420, 3315, 3316, 3317, 397, 4048, 420, 3321, 269, 385, 3324, 397, 72, 476, 477, 397, 479, 385, 51, 3333, 4718, 106, 397, 3329, 397, 397, 269, 53, 476, 463, 464, 465, 53, 467, 468, 469, 470, 471, 472, 245, 397, 273, 397, 343, 397, 385, 423, 397, 308, 289, 3356, 289, 388, 42, 42, 397, 397, 2668, 397, 343, 477, 56, 4142, 397, 397, 397, 397, 397, 3419, 397, 397, 480, 412, 397, 3853, 2686, 3973, 3974, 3975, 3976, 3977, 397, 481, 2694, 3398, 209, 269, 209, 209, 209, 3552, 443, 269, 209, 209, 90, 436, 269, 438, 439, 269, 209, 209, 209, 4216, 3419, 397, 35, 8, 407, 146, 11, 24, 269, 146, 15, 16, 17, 3432, 112, 254, 3435, 182, 420, 146, 431, 146, 187, 439, 476, 146, 231, 32, 264, 474, 254, 269, 477, 478, 479, 40, 254, 254, 3457, 35, 4331, 158, 47, 35, 215, 183, 345, 3466, 476, 149, 476, 476, 34, 3472, 395, 3474, 395, 474, 3477, 224, 146, 397, 397, 3482, 3483, 3484, 3485, 72, 474, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 397, 397, 476, 3501, 3502, 184, 146, 420, 146, 420, 146, 146, 263, 3511, 397, 4430, 3550, 3515, 258, 163, 4135, 3519, 476, 435, 245, 11, 245, 271, 480, 3527, 395, 397, 3530, 476, 3532, 3569, 3728, 476, 172, 154, 163, 220, 399, 3541, 480, 477, 3544, 3545, 180, 180, 205, 3549, 3550, 213, 35, 480, 3554, 359, 3556, 270, 3752, 480, 420, 278, 53, 3563, 3564, 3565, 3566, 477, 343, 3569, 3570, 476, 4204, 254, 3574, 3575, 3576, 3558, 3559, 3560, 3561, 3581, 420, 213, 213, 397, 4051, 259, 259, 239, 476, 402, 432, 158, 397, 346, 182, 397, 259, 3591, 215, 187, 3591, 3591, 148, 286, 3606, 43, 365, 269, 254, 3591, 148, 3591, 223, 361, 5373, 5374, 223, 223, 3620, 388, 3622, 209, 210, 339, 269, 397, 480, 148, 269, 148, 3566, 323, 181, 3569, 397, 4102, 224, 397, 3640, 3641, 3642, 353, 3644, 311, 327, 275, 329, 4281, 331, 477, 35, 209, 420, 420, 4385, 215, 307, 340, 4351, 3661, 3662, 3663, 3664, 146, 158, 348, 465, 264, 432, 257, 35, 160, 264, 356, 308, 2974, 146, 146, 4837, 386, 146, 353, 264, 271, 476, 368, 274, 476, 3690, 420, 439, 35, 254, 35, 377, 254, 269, 269, 381, 215, 178, 178, 158, 35, 3640, 4290, 4291, 3709, 4293, 474, 54, 477, 460, 459, 459, 477, 5227, 243, 347, 467, 468, 469, 470, 471, 472, 477, 477, 477, 215, 353, 158, 254, 269, 187, 3930, 187, 187, 187, 187, 480, 480, 443, 480, 23, 4378, 170, 476, 4881, 397, 163, 242, 434, 439, 480, 269, 53, 263, 385, 215, 402, 104, 105, 432, 163, 477, 476, 3759, 281, 112, 163, 290, 477, 0, 361, 477, 480, 8, 397, 477, 11, 477, 477, 477, 15, 16, 17, 3085, 477, 4872, 4660, 4874, 477, 477, 8, 459, 477, 11, 476, 476, 280, 237, 476, 3804, 436, 461, 476, 270, 270, 40, 476, 476, 233, 426, 418, 436, 47, 269, 53, 465, 191, 476, 269, 269, 167, 146, 40, 272, 397, 443, 397, 199, 397, 47, 259, 3836, 254, 397, 146, 273, 476, 72, 146, 348, 356, 146, 348, 190, 3849, 348, 3851, 223, 3853, 191, 148, 397, 465, 420, 72, 3860, 480, 291, 225, 8, 91, 3866, 11, 417, 291, 397, 15, 16, 17, 460, 397, 3876, 463, 464, 465, 235, 467, 468, 469, 470, 471, 472, 397, 32, 397, 235, 3891, 611, 269, 480, 3895, 238, 235, 397, 241, 397, 343, 397, 397, 343, 3905, 343, 254, 397, 3206, 252, 397, 254, 343, 3914, 141, 356, 397, 146, 397, 397, 5078, 5079, 42, 3924, 4688, 139, 153, 3928, 477, 475, 3923, 158, 209, 397, 3935, 3936, 163, 5070, 477, 477, 4135, 284, 169, 209, 209, 172, 209, 175, 477, 176, 477, 182, 3, 407, 480, 4573, 187, 158, 43, 325, 3895, 105, 3963, 480, 3965, 158, 35, 477, 182, 476, 146, 3972, 146, 187, 477, 397, 158, 175, 205, 146, 4613, 475, 465, 343, 343, 328, 706, 707, 420, 343, 475, 420, 343, 224, 4778, 353, 343, 272, 225, 209, 209, 144, 477, 144, 209, 4623, 4007, 350, 4474, 480, 224, 137, 209, 209, 209, 8, 474, 4018, 11, 209, 209, 163, 15, 16, 17, 11, 281, 370, 158, 372, 431, 163, 375, 436, 4764, 477, 480, 172, 477, 266, 271, 476, 269, 462, 477, 163, 270, 4048, 275, 477, 4051, 477, 330, 82, 4972, 425, 158, 271, 4059, 4060, 480, 5219, 476, 480, 209, 4066, 4067, 477, 477, 476, 4071, 407, 35, 4803, 397, 4076, 420, 215, 4079, 4080, 420, 53, 4881, 4084, 4085, 199, 388, 146, 476, 4090, 4091, 4092, 4093, 4094, 167, 407, 3394, 4098, 4099, 4100, 372, 4102, 4103, 330, 348, 4106, 826, 397, 828, 4110, 397, 397, 397, 4114, 3412, 397, 477, 343, 343, 4120, 477, 323, 477, 476, 439, 53, 271, 388, 426, 148, 361, 158, 72, 476, 4135, 146, 105, 4867, 4868, 3437, 407, 4142, 4166, 477, 209, 4146, 209, 361, 209, 209, 4151, 4144, 4145, 194, 476, 213, 476, 397, 385, 443, 269, 480, 318, 477, 480, 4166, 35, 289, 4169, 267, 269, 3, 477, 480, 407, 4110, 476, 480, 22, 4114, 397, 476, 5315, 475, 28, 412, 169, 353, 4189, 4190, 105, 209, 163, 163, 477, 476, 5089, 477, 5068, 53, 437, 437, 4786, 477, 480, 281, 4207, 477, 476, 436, 212, 438, 439, 4797, 212, 477, 476, 279, 387, 4211, 4221, 276, 476, 53, 176, 477, 70, 264, 4220, 460, 407, 465, 463, 464, 465, 397, 467, 468, 469, 470, 471, 472, 163, 72, 188, 439, 460, 474, 193, 181, 477, 478, 479, 467, 468, 469, 470, 471, 472, 259, 259, 465, 4992, 53, 8, 388, 397, 11, 480, 4270, 66, 15, 16, 17, 480, 146, 397, 477, 271, 5009, 124, 397, 209, 5013, 476, 5015, 119, 131, 32, 165, 134, 4292, 4876, 4759, 112, 5165, 40, 163, 35, 187, 264, 420, 35, 47, 476, 353, 4307, 420, 254, 160, 158, 353, 439, 264, 53, 159, 78, 4783, 463, 464, 465, 388, 467, 468, 469, 470, 471, 472, 72, 439, 4869, 35, 163, 269, 158, 196, 476, 272, 4339, 207, 163, 425, 4881, 5035, 369, 212, 289, 476, 476, 193, 438, 127, 477, 477, 4355, 84, 269, 317, 397, 476, 4361, 476, 35, 146, 476, 397, 477, 8, 476, 4370, 11, 477, 476, 3671, 15, 16, 17, 158, 4573, 476, 476, 476, 476, 476, 4385, 35, 259, 8, 191, 236, 11, 32, 353, 476, 476, 146, 477, 4398, 105, 4400, 132, 435, 35, 477, 4397, 367, 407, 477, 252, 273, 254, 367, 35, 53, 5032, 75, 480, 4612, 425, 40, 264, 388, 5006, 476, 476, 180, 47, 476, 4623, 273, 476, 1151, 476, 4434, 158, 420, 6, 252, 182, 388, 476, 285, 4622, 187, 269, 5, 388, 4623, 443, 477, 152, 72, 476, 145, 476, 340, 340, 66, 272, 66, 127, 439, 439, 476, 476, 209, 210, 424, 35, 356, 463, 464, 465, 4474, 467, 468, 469, 470, 471, 472, 224, 163, 326, 327, 425, 4665, 480, 388, 3786, 259, 132, 3789, 314, 193, 269, 269, 1216, 476, 353, 35, 35, 272, 4503, 4504, 272, 188, 4507, 165, 476, 165, 436, 477, 356, 257, 53, 480, 1236, 476, 139, 477, 397, 4522, 339, 376, 4525, 117, 418, 271, 4529, 5399, 274, 5070, 4998, 4534, 5, 339, 4537, 4538, 477, 4540, 353, 4542, 476, 4544, 4545, 142, 276, 1267, 21, 480, 480, 324, 476, 476, 476, 32, 259, 476, 4559, 145, 4561, 182, 1282, 397, 163, 277, 187, 339, 209, 75, 367, 4572, 4573, 4574, 4575, 4576, 367, 439, 476, 423, 439, 165, 165, 828, 1597, 2508, 913, 4522, 2858, 1335, 3888, 2395, 5462, 3037, 4529, 912, 867, 3727, 3701, 4534, 5210, 2317, 4537, 224, 2420, 2478, 3245, 4663, 5068, 3907, 5480, 5315, 3876, 4718, 4341, 4687, 2954, 361, 2647, 189, 5189, 4622, 4623, 4572, 4559, 5304, 5098, 5097, 198, 199, 271, 5230, 5340, 2958, 3924, 3909, 206, 4572, 208, 209, 5042, 3063, 3867, 3722, 4694, 2493, 2493, 3295, 1368, 1369, 271, 1371, 222, 909, 3892, 2487, 4379, 3307, 4703, 5317, 5390, 5480, 5462, 4680, 4665, 3253, 3932, 4668, 5243, 4625, 4855, 5210, 1756, 5051, 4628, 28, 3982, 1178, 3, 4680, 4823, 5408, 4683, 8, 3982, 2932, 11, 4688, 1802, 4690, 15, 16, 17, 2166, 3934, 4733, 4697, 4972, 5164, 4692, 1811, 1869, 694, 1800, 1960, 3751, 661, 32, 1960, 3189, 35, 4552, 1961, 4714, 3299, 40, 460, 4718, 6, 463, 464, 465, 47, 467, 468, 469, 470, 471, 472, 3770, 5271, 4732, 4733, 4734, 5450, 807, 480, 4730, 829, 2098, 361, 2109, 1904, 4555, 4146, 5182, 8, 72, 3620, 11, 1312, 2874, 1355, 15, 16, 17, 2145, 2889, 4759, 1419, 1377, 4762, 3584, 4764, 2119, 5174, 4803, 1378, 5017, 4132, 32, 8, 2144, 1380, 11, 3569, 5315, 4116, 15, 16, 17, 4099, 4783, 4794, 1385, 3566, 4995, 4994, 4789, 3621, 5456, 5288, 4793, 3566, 5377, 32, 4797, 5164, 3519, 4734, 4762, 4548, 4803, 40, 5177, 2056, 5178, 2728, 2818, 2816, 47, 4812, 1834, 2448, 2059, -1, -1, -1, 5284, -1, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 4835, 72, 4837, 5032, -1, 460, -1, -1, -1, -1, -1, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, -1, 182, 4793, -1, -1, 4862, 187, -1, -1, -1, 4867, 4868, -1, -1, -1, 4872, 4873, 4874, 4875, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, 224, -1, 189, 4903, -1, -1, -1, -1, 5373, 5374, 4910, 198, -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, 209, 40, -1, -1, -1, -1, -1, -1, 47, -1, 4932, 257, -1, 4935, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4242, 182, 271, 209, -1, 274, 187, -1, 4945, -1, 72, -1, 4254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, 4992, -1, -1, 4995, -1, -1, 4998, -1, -1, 4935, 5002, -1, -1, -1, -1, -1, -1, 5009, 271, -1, -1, 5013, -1, 5015, -1, 5017, 5197, -1, -1, 257, 139, -1, 5024, -1, -1, -1, -1, 5021, 5030, -1, 5032, -1, -1, 271, -1, 361, 274, 8, -1, -1, 11, 5043, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 625, -1, -1, -1, -1, 4995, 631, 32, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, 644, -1, -1, 5078, 5079, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5024, 660, -1, 5272, 5273, -1, 665, -1, -1, -1, -1, 670, -1, -1, -1, 674, 675, 224, -1, 5109, -1, -1, 681, -1, 683, 684, 5116, -1, -1, -1, 5120, -1, -1, -1, -1, 361, -1, 696, 697, 5129, -1, -1, -1, -1, -1, -1, 460, -1, 707, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, -1, 271, 5155, 5156, 5157, -1, 4456, -1, 5161, -1, -1, 5164, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5174, -1, -1, 5177, -1, -1, -1, -1, 5182, -1, 1903, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5129, -1, 5197, -1, -1, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 5212, -1, -1, -1, -1, 786, 787, 5219, -1, -1, -1, 792, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 1957, -1, 209, 477, -1, -1, 361, 5245, -1, 816, -1, 818, 5250, -1, 5244, -1, -1, -1, 5256, -1, -1, -1, 829, -1, -1, -1, -1, -1, 5266, -1, -1, 4566, -1, 4568, 5272, 5273, 5274, -1, -1, -1, -1, 5271, -1, -1, 5271, 5271, 5284, -1, -1, -1, 5288, -1, -1, 5271, -1, 5271, -1, -1, -1, -1, -1, -1, -1, -1, 271, 5482, 5483, -1, -1, -1, -1, 5309, -1, -1, -1, 5349, 2033, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5266, -1, -1, -1, -1, -1, -1, -1, 5340, 5341, 5342, 460, -1, -1, 5346, -1, -1, -1, 467, 468, 469, 470, 471, 472, -1, 5349, -1, -1, 5349, 5349, -1, -1, -1, -1, 935, 936, 937, 5349, -1, 5349, -1, 5373, 5374, 944, -1, -1, 665, -1, -1, -1, 951, -1, -1, 5385, 955, 674, -1, -1, 5390, -1, 961, -1, 681, 964, -1, 684, -1, -1, -1, -1, -1, -1, -1, -1, 5340, 976, -1, -1, -1, -1, 5346, -1, -1, -1, -1, -1, -1, 5419, -1, -1, 991, -1, -1, -1, -1, -1, 2147, 5429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5444, -1, -1, 5447, -1, -1, -1, -1, -1, -1, -1, -1, 5456, -1, 5450, -1, 5460, 5450, 5450, -1, -1, -1, -1, 1036, 1037, 1038, 5450, -1, 5450, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5482, 5483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, 1076, -1, -1, -1, -1, -1, 5447, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 1113, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, 0, -1, -1, -1, 40, -1, -1, 1131, -1, -1, -1, 47, -1, -1, -1, -1, -1, 1141, 18, -1, -1, -1, -1, -1, -1, 1149, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, 8, -1, 1177, 11, 55, -1, -1, 15, 16, 17, -1, 1186, -1, 1188, -1, -1, 67, -1, 69, 70, -1, -1, -1, -1, 32, 76, -1, 78, -1, 1204, -1, -1, 40, 1208, -1, -1, -1, -1, 89, 47, 91, -1, -1, -1, -1, 1220, -1, -1, -1, -1, -1, 944, -1, -1, -1, -1, -1, 108, 8, -1, 111, 11, 955, -1, 72, 15, 16, 17, 961, -1, -1, 964, -1, -1, 125, 1250, 127, -1, -1, -1, 131, -1, -1, -1, -1, 35, 137, -1, -1, -1, -1, -1, -1, -1, 145, 182, 147, -1, -1, -1, 187, -1, 153, 1278, 1279, 1280, -1, 1282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, -1, 209, 210, -1, -1, -1, 1302, -1, -1, -1, -1, -1, -1, -1, 186, -1, 224, -1, -1, -1, -1, -1, 1036, 1037, 1038, 8, -1, -1, 11, -1, 1326, -1, 15, 16, 17, -1, -1, -1, 1334, 1335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 1348, 182, 226, 227, -1, 40, 187, -1, 232, -1, -1, 271, 47, -1, 274, -1, -1, -1, -1, -1, 244, -1, 1370, -1, -1, -1, 1374, 1375, 209, 210, -1, -1, 256, -1, -1, -1, -1, 72, -1, -1, -1, 1389, -1, 224, -1, -1, -1, 1395, -1, -1, -1, -1, 2550, 1401, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, -1, -1, 313, 271, -1, -1, 274, -1, 319, 320, -1, 322, -1, -1, 361, -1, 327, -1, -1, -1, 5183, 332, -1, -1, 335, -1, 1461, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, 348, 349, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, 360, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 182, 271, -1, -1, -1, 187, -1, 1502, -1, -1, -1, -1, -1, -1, 385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, 361, 405, -1, -1, -1, -1, -1, 1535, -1, 224, -1, 415, -1, -1, 25, -1, -1, 421, -1, -1, 460, -1, 426, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 439, -1, 477, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, 462, -1, -1, -1, -1, 74, -1, -1, -1, 1595, -1, -1, -1, -1, 476, -1, -1, 479, -1, -1, -1, 2757, -1, -1, 1610, 1611, 1612, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, 106, 15, 16, 17, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 32, -1, -1, 477, -1, 129, -1, -1, 40, -1, 2801, -1, -1, -1, -1, 47, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2818, -1, -1, -1, -1, -1, 361, -1, -1, 160, -1, -1, -1, 72, 165, -1, 2834, -1, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 2850, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1743, -1, -1, -1, -1, 1748, -1, -1, -1, -1, 2903, 237, -1, -1, 2907, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, -1, -1, -1, 460, -1, 1775, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 1787, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, -1, -1, -1, 1811, -1, -1, 1814, -1, -1, 1817, 209, 210, -1, 304, 305, 1823, -1, 308, -1, -1, -1, 1829, -1, -1, -1, 224, -1, -1, -1, -1, -1, 8, -1, 1841, 11, -1, -1, -1, 15, 16, 17, -1, -1, 334, -1, -1, 337, -1, -1, -1, 1858, 1859, 343, 1861, 1862, 32, -1, -1, 257, 350, -1, -1, -1, 40, -1, 1873, -1, 1875, 1876, -1, 47, -1, 271, -1, -1, 274, -1, 1885, 1886, -1, 1888, 1889, -1, -1, -1, -1, -1, -1, 379, -1, -1, -1, -1, -1, 385, 72, 1904, 388, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, 407, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 1936, -1, -1, 1939, 1940, -1, -1, 40, -1, -1, -1, -1, -1, 432, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, 1974, 72, 1976, -1, -1, -1, -1, 1981, 1982, -1, -1, -1, -1, -1, 1988, 1989, 1990, -1, -1, -1, 1994, -1, 1996, 1997, 1998, 1999, 2000, 2001, -1, 2003, -1, 2005, 2006, -1, -1, 2009, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, 2023, 2024, 2025, 2026, 2027, 2028, -1, -1, -1, 2032, -1, -1, -1, 2036, -1, -1, 2039, 209, 210, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, -1, 2052, -1, -1, 224, -1, -1, -1, 2059, -1, 2061, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, 182, 477, -1, 257, -1, 187, -1, -1, 1811, -1, -1, 1814, -1, 2098, -1, -1, -1, 271, -1, 2104, 274, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, 2119, -1, -1, -1, -1, -1, -1, -1, 224, 2128, 2129, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 1858, 1859, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2154, 1873, -1, -1, 1876, -1, 257, 2161, -1, -1, -1, 2165, 2166, -1, 40, -1, -1, -1, 2172, -1, 271, 47, -1, 2177, 2178, 3329, -1, -1, 2182, -1, -1, -1, -1, -1, -1, -1, 2190, -1, 361, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 3356, -1, 2208, -1, -1, 2211, -1, -1, -1, -1, -1, -1, 1936, -1, -1, 1939, 1940, 2223, -1, -1, -1, 2227, -1, -1, 2230, -1, -1, 2233, 2234, -1, -1, -1, -1, -1, -1, 2241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2254, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, 139, -1, -1, -1, -1, -1, 2273, 2274, -1, -1, -1, -1, -1, -1, -1, 2282, -1, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 2305, 2306, -1, 477, 2309, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2331, -1, 2333, -1, -1, -1, -1, 2338, -1, -1, -1, -1, -1, 2344, 56, -1, -1, -1, -1, -1, 2351, 224, -1, -1, 2355, -1, -1, -1, -1, 2360, -1, -1, 460, 56, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, 90, 2380, -1, -1, -1, -1, 2385, -1, -1, -1, 2389, -1, -1, 2392, -1, -1, -1, -1, -1, 90, 271, 3550, -1, 2402, -1, -1, -1, -1, -1, -1, 120, -1, -1, -1, -1, -1, 2415, 3566, -1, -1, 3569, -1, -1, -1, -1, -1, 2425, -1, -1, 120, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, -1, -1, 3591, 2442, 2443, 2444, 17, -1, -1, 2448, -1, -1, -1, -1, -1, 26, -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, -1, -1, -1, -1, -1, -1, 2480, 2481, -1, -1, -1, -1, -1, 35, -1, 361, 2490, -1, 184, 1081, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2223, -1, -1, 56, 220, -1, -1, 2230, 1101, -1, 2233, 2234, -1, -1, -1, -1, -1, -1, 1111, 2524, -1, -1, 1115, 220, -1, -1, 1119, -1, 1121, -1, -1, -1, -1, -1, 1127, -1, -1, 90, 254, -1, 1133, 8, -1, 1136, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, 254, 2563, -1, -1, 2566, -1, -1, -1, 32, 2571, -1, -1, 285, 286, -1, -1, 40, -1, 2580, -1, -1, -1, -1, 47, -1, -1, 460, -1, -1, -1, -1, 285, 286, 467, 468, 469, 470, 471, 472, 149, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, 323, -1, -1, -1, 327, -1, -1, -1, 331, -1, -1, -1, -1, -1, 2626, -1, -1, 340, -1, 323, -1, -1, -1, 327, 184, 348, -1, 331, -1, -1, -1, -1, -1, 356, -1, -1, 340, -1, -1, -1, -1, -1, -1, -1, 348, 368, -1, -1, -1, -1, -1, -1, 356, -1, 377, 215, 2668, -1, 381, -1, 220, -1, -1, -1, 368, -1, -1, -1, -1, -1, -1, -1, 2684, 377, 2686, -1, -1, 381, -1, 35, -1, -1, 2694, -1, -1, -1, 2698, -1, -1, 2701, -1, -1, 2704, -1, 254, 2707, -1, -1, 2710, -1, 56, -1, -1, -1, 2716, -1, -1, -1, 182, -1, -1, 434, -1, 187, -1, 2727, -1, -1, -1, -1, 2732, -1, -1, -1, -1, -1, 286, -1, -1, -1, 434, -1, -1, 3895, 90, 209, 210, -1, -1, -1, -1, -1, -1, 2755, 2756, 2757, -1, -1, 2760, -1, 224, -1, -1, -1, -1, -1, 2768, 2769, 2770, 2771, -1, 3923, -1, -1, 2776, -1, -1, 327, -1, 2781, 2782, 331, 2784, -1, 2786, -1, -1, -1, -1, -1, 340, -1, -1, 257, -1, 2797, 2798, -1, 348, 2801, -1, -1, -1, 149, -1, -1, 356, 271, -1, -1, 274, -1, -1, 2815, -1, 2817, -1, 2819, 368, -1, -1, -1, -1, -1, -1, -1, -1, 377, -1, -1, -1, 381, -1, -1, -1, -1, -1, 2839, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2850, -1, 400, -1, -1, -1, -1, -1, 2858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 215, -1, 11, 2874, -1, 220, 15, 16, 17, -1, -1, -1, -1, -1, -1, 434, -1, -1, 2889, 438, -1, -1, -1, 32, -1, -1, -1, -1, 361, -1, -1, 40, 2903, -1, 8, -1, -1, 11, 47, 254, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 2922, -1, -1, 2925, -1, 2927, -1, 32, -1, -1, 2932, -1, 72, -1, -1, 40, -1, -1, -1, -1, 286, -1, 47, -1, 22, 2947, 2948, -1, -1, -1, 28, 2953, -1, -1, -1, -1, -1, -1, 4110, -1, -1, -1, 4114, -1, -1, -1, -1, 72, -1, -1, -1, -1, 2974, -1, -1, 2977, -1, -1, 2698, 2981, -1, 327, -1, -1, 2704, 331, -1, 2707, -1, -1, 2710, -1, 4144, 4145, 340, -1, 460, -1, 3000, 463, 464, 465, 348, 467, 468, 469, 470, 471, 472, -1, 356, -1, -1, 477, -1, -1, -1, -1, -1, -1, -1, -1, 368, 3025, -1, -1, -1, -1, -1, -1, -1, 377, -1, -1, 608, 381, -1, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, 22, -1, -1, -1, -1, 400, 28, -1, -1, -1, -1, 3062, 3063, 3064, -1, -1, -1, -1, -1, 41, 209, 210, -1, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, 3085, 224, -1, 660, 661, 434, -1, -1, -1, 438, 3095, -1, 3097, -1, 70, -1, -1, -1, -1, -1, 3105, 209, 210, -1, -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, 257, -1, 224, -1, -1, 3124, -1, -1, -1, -1, -1, -1, -1, 2850, 271, 8, -1, 274, 11, -1, -1, 696, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 257, -1, -1, -1, 32, -1, 131, -1, -1, 134, -1, -1, 40, -1, 271, -1, -1, 274, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, 2903, 3186, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, 3206, -1, 780, -1, -1, 3211, -1, -1, -1, -1, 788, 3217, -1, 791, 792, 793, 193, 361, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4397, -1, -1, -1, -1, -1, 3253, 3254, -1, -1, -1, 361, -1, 3260, -1, 3262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3275, 1864, 3277, -1, -1, -1, 252, -1, 254, 1872, -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, 3299, -1, -1, 273, -1, 1892, -1, -1, -1, 182, -1, -1, -1, -1, 187, 285, -1, -1, -1, -1, -1, -1, -1, 460, 3323, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 209, 210, -1, -1, 477, -1, -1, -1, 3343, 3344, -1, -1, -1, -1, -1, 224, -1, 323, -1, -1, 326, 327, 460, 3358, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, 477, -1, -1, -1, -1, 4529, -1, -1, -1, 257, 4534, 356, -1, 4537, -1, -1, -1, -1, -1, -1, 3394, 951, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3412, -1, -1, -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3434, 991, -1, 3437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, 3457, -1, -1, 3460, -1, -1, -1, -1, -1, 3466, -1, -1, -1, -1, -1, 3472, -1, 3474, -1, -1, 3477, -1, -1, -1, 3481, 3482, 3483, 3484, 3485, -1, 361, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, -1, -1, -1, 3501, 3502, -1, -1, -1, 3506, -1, 2096, -1, -1, 3511, -1, -1, -1, 3515, -1, 3517, -1, 3519, -1, -1, -1, -1, -1, -1, -1, 3527, -1, -1, 3530, -1, 3532, -1, -1, -1, -1, -1, -1, -1, 3540, 3541, 4692, -1, 3544, 3545, -1, -1, -1, 3549, 3550, -1, -1, -1, -1, -1, 3556, -1, -1, 1131, -1, -1, -1, -1, -1, -1, 3566, -1, -1, 3569, -1, -1, -1, -1, -1, -1, -1, 1149, -1, -1, 4730, 3581, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, 477, -1, -1, 3606, -1, -1, -1, -1, 1183, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 3622, -1, -1, -1, 25, -1, 3628, -1, 1186, -1, -1, -1, -1, -1, 1208, -1, -1, -1, 3640, -1, -1, 4793, 720, 56, 722, -1, 724, -1, -1, -1, -1, 4803, 730, 731, 732, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3671, -1, -1, 73, -1, -1, -1, -1, 90, -1, -1, -1, -1, 8, -1, -1, 11, -1, 88, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 120, -1, -1, 1284, -1, -1, -1, 40, -1, -1, -1, -1, 1293, 3722, 47, -1, -1, -1, 3727, 3728, 3729, 129, -1, -1, -1, -1, 1307, -1, -1, 149, -1, -1, 140, -1, -1, -1, -1, -1, -1, 72, -1, -1, 3751, 3752, -1, 1326, -1, -1, 1329, 1330, -1, -1, 160, 1334, 1335, -1, -1, 165, -1, -1, -1, 3770, -1, -1, 184, -1, -1, 1348, -1, -1, -1, -1, -1, -1, -1, -1, 4935, 3786, -1, -1, 3789, -1, -1, -1, -1, -1, 4945, -1, -1, -1, 875, -1, -1, -1, -1, -1, -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 212, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, 223, 254, -1, -1, -1, -1, 3566, -1, -1, 3569, -1, 3853, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, -1, -1, -1, 22, -1, -1, -1, 5021, 271, 28, 285, 286, -1, -1, 3878, 3879, 35, -1, 3882, -1, -1, 209, 210, -1, 3888, -1, -1, -1, -1, -1, -1, 3895, -1, -1, -1, 54, 224, -1, -1, -1, -1, 304, 305, 3907, -1, -1, -1, -1, 323, -1, -1, 70, 327, -1, -1, -1, 331, -1, 3640, -1, -1, -1, -1, -1, -1, 340, 3930, -1, -1, 257, 3934, 3935, 3936, 348, 337, -1, -1, -1, -1, -1, 343, 356, 1502, 271, -1, 104, 274, 350, -1, -1, 353, -1, -1, 368, -1, -1, -1, -1, -1, -1, -1, -1, 377, -1, -1, 124, 381, -1, -1, -1, -1, -1, 131, -1, -1, 134, -1, 1553, 3982, -1, -1, -1, 385, 1559, 2576, -1, -1, -1, -1, 392, -1, 2583, -1, -1, -1, -1, -1, 400, -1, -1, 159, -1, -1, 4007, 407, -1, -1, -1, -1, -1, -1, 2603, -1, -1, 4018, -1, -1, -1, -1, 434, -1, 2613, -1, -1, 2616, -1, 2618, 2619, -1, 432, 2622, 190, -1, 361, 193, -1, 2628, -1, 2630, -1, -1, 2633, -1, 22, 4048, -1, -1, 4051, -1, 28, -1, -1, -1, -1, -1, 4059, 4060, -1, 4062, -1, -1, -1, 4066, 4067, -1, -1, -1, 4071, 4072, 1149, -1, -1, 4076, -1, -1, 4079, 4080, -1, -1, 238, 4084, -1, 241, -1, -1, -1, 4090, -1, -1, -1, 5244, 70, -1, 252, -1, 254, -1, -1, 4102, -1, -1, -1, -1, -1, 2696, 264, 4110, -1, -1, -1, 4114, -1, -1, -1, 273, -1, -1, 5271, -1, -1, -1, -1, -1, -1, -1, 284, 285, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, 4142, 467, 468, 469, 470, 471, 472, 124, -1, -1, -1, 477, -1, -1, 131, 1713, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 323, 4169, -1, 326, 327, 328, 1730, -1, -1, 3895, -1, -1, -1, -1, -1, -1, 159, -1, -1, 4187, -1, -1, -1, -1, 1748, -1, -1, 350, -1, -1, 1770, 5349, -1, 356, 1774, -1, 4204, -1, -1, -1, -1, 4209, -1, -1, -1, -1, -1, 370, -1, -1, 193, -1, -1, -1, -1, -1, -1, 606, 4226, -1, -1, -1, -1, 612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4242, -1, -1, -1, -1, 4247, 1804, -1, -1, -1, -1, 1329, 4254, -1, -1, -1, 1334, 1335, -1, 1817, -1, -1, -1, -1, -1, -1, 423, -1, 4270, -1, 1348, 1829, -1, -1, -1, 252, -1, 254, -1, 4281, -1, 8, -1, 1841, 11, -1, -1, 264, 15, 16, 17, -1, -1, -1, -1, -1, 273, -1, 5450, -1, -1, -1, -1, -1, -1, 32, -1, -1, 285, -1, 4312, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 1885, 1886, -1, -1, -1, -1, -1, -1, -1, -1, 4339, -1, -1, -1, -1, -1, -1, -1, 72, 323, -1, -1, 326, 327, -1, -1, 4355, -1, -1, -1, -1, -1, -1, -1, -1, 1440, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1450, 2963, -1, -1, 4378, -1, -1, 356, -1, -1, -1, 4385, -1, -1, -1, -1, -1, -1, 4110, -1, -1, -1, 4114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 789, -1, -1, -1, -1, -1, -1, 1987, -1, 1493, 1494, -1, -1, -1, -1, -1, -1, -1, -1, 808, -1, -1, 4430, -1, 4432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, 830, -1, -1, -1, -1, -1, -1, 4456, 182, -1, 3047, 1536, 3049, 187, 1539, 1540, -1, -1, 2023, -1, -1, -1, -1, -1, -1, 4474, -1, -1, -1, 4478, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, 876, -1, -1, -1, 224, -1, -1, -1, 4503, 4504, -1, 2078, 4507, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4522, -1, -1, -1, -1, -1, -1, 4529, -1, -1, 257, -1, 4534, -1, -1, 4537, 4538, -1, -1, -1, -1, -1, 4544, 4545, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4559, -1, 4561, -1, -1, -1, -1, 4566, -1, 4568, -1, -1, -1, 4572, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3185, -1, -1, 32, -1, -1, 3191, -1, -1, -1, -1, 40, -1, -1, -1, 4612, 4613, -1, 47, -1, -1, 2190, -1, 1001, -1, 4622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 4355, -1, -1, 72, -1, -1, -1, 1720, -1, -1, -1, -1, 1030, 1031, 1032, -1, -1, -1, -1, -1, -1, -1, -1, 4660, -1, -1, -1, -1, 4665, -1, -1, -1, -1, -1, 2227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2241, -1, -1, -1, 2261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4721, -1, -1, -1, -1, 2282, -1, -1, -1, -1, -1, -1, -1, 4734, 460, 4736, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 182, 1827, 477, -1, -1, 187, -1, -1, -1, 4759, 4760, 1837, 4762, 1839, 4764, -1, -1, -1, 2340, 1845, -1, -1, -1, -1, -1, -1, 1852, 209, 210, -1, -1, -1, -1, 4783, -1, 2357, -1, -1, -1, 4789, -1, -1, 224, 4793, 3382, 1176, 3384, -1, 3386, 4799, -1, -1, -1, 4803, 4522, -1, -1, 3395, -1, -1, -1, 4529, -1, 1194, -1, -1, 4534, -1, -1, 4537, 4538, -1, 1203, -1, -1, 257, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, 271, -1, 4559, 274, -1, 4844, -1, 2418, -1, 3436, -1, -1, -1, 4852, -1, 4572, -1, -1, 4857, 4858, -1, -1, -1, 4862, -1, -1, -1, -1, 4867, 4868, 4869, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 2452, 4881, -1, 2455, -1, 2457, -1, -1, -1, 2461, -1, 2463, 2464, -1, -1, -1, -1, -1, -1, -1, 2472, 2473, 2474, 4903, 4622, -1, -1, -1, 1984, 1985, 4910, -1, -1, -1, -1, 1991, 1992, -1, -1, -1, -1, -1, -1, -1, -1, 2481, -1, 120, -1, 361, -1, 124, -1, -1, -1, 4935, -1, -1, 131, -1, -1, 134, -1, 2019, -1, -1, -1, 4665, 22, -1, -1, -1, -1, -1, 28, 2527, -1, -1, -1, 1340, -1, -1, -1, -1, -1, -1, 159, 41, -1, -1, -1, -1, 4972, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2559, -1, -1, -1, -1, 4992, -1, -1, 4995, 70, -1, 4998, 2571, 193, -1, -1, -1, -1, 1386, -1, -1, -1, 5009, -1, -1, -1, 5013, -1, 5015, 4734, 5017, -1, -1, -1, -1, -1, -1, 5024, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 5043, -1, 477, -1, -1, 122, -1, 124, -1, 2128, 2129, 2626, -1, -1, 131, -1, 252, 134, 254, -1, -1, -1, -1, -1, -1, 5068, -1, 5070, 264, -1, -1, -1, 4793, -1, -1, -1, -1, 273, -1, -1, -1, -1, 159, 1467, -1, -1, -1, -1, -1, 285, -1, -1, -1, 1477, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2190, -1, -1, -1, -1, 193, 5120, -1, -1, -1, -1, -1, -1, 1508, 2684, 5129, 323, -1, -1, 326, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2701, -1, -1, -1, -1, 1531, -1, -1, 1534, -1, 5155, 5156, 5157, -1, -1, 2716, -1, -1, 356, 5164, 5165, -1, -1, 5168, -1, -1, -1, -1, -1, 5174, -1, -1, -1, 252, -1, 254, -1, -1, 5183, -1, 22, -1, -1, -1, -1, 264, 28, 4910, -1, -1, -1, -1, 5197, -1, 273, -1, -1, -1, -1, 1585, -1, -1, -1, -1, 2285, 5210, 285, -1, -1, -1, -1, -1, 4935, 1599, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, 70, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 323, 5250, -1, 326, 327, -1, -1, 5256, -1, -1, -1, -1, -1, -1, 32, -1, -1, 5266, -1, -1, -1, -1, 40, 5272, 5273, 5274, -1, -1, 4995, 47, -1, -1, -1, 356, -1, 5284, -1, 2858, 124, -1, -1, 2366, -1, -1, -1, 131, -1, -1, 134, 2374, -1, -1, 2377, -1, 72, -1, -1, 5024, -1, -1, -1, -1, -1, -1, -1, -1, 5315, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, 1710, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5340, -1, -1, -1, -1, -1, 5346, -1, -1, 423, -1, -1, -1, -1, -1, -1, 193, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, 5373, 5374, -1, -1, -1, -1, 3967, 1761, 32, -1, 3971, -1, 5385, -1, -1, -1, 40, 5390, -1, -1, -1, -1, -1, 47, -1, -1, 5399, -1, -1, -1, -1, -1, 2977, -1, -1, -1, 1790, -1, 5129, -1, 182, -1, 252, 1797, 254, 187, 5419, -1, 72, -1, -1, -1, 2981, -1, 264, -1, 5429, -1, -1, -1, -1, -1, -1, 273, -1, -1, -1, 209, 210, -1, -1, 3000, -1, -1, 5447, 285, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, 5460, -1, 5462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5197, 5480, -1, 5482, 5483, -1, -1, 323, -1, 257, 326, 327, -1, -1, -1, -1, -1, 3068, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2593, 2594, 356, -1, 1902, -1, 2599, -1, -1, -1, -1, -1, -1, -1, 182, 5250, -1, -1, -1, 187, -1, -1, 3095, -1, 3097, -1, -1, 8, -1, -1, 11, 5266, -1, 3122, 15, 16, 17, 5272, 5273, -1, -1, 209, 210, -1, 1942, 1943, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, 224, -1, -1, 40, -1, 1959, -1, -1, -1, -1, 47, 2660, -1, 423, -1, -1, -1, -1, -1, 361, -1, -1, 8, -1, 4185, 11, -1, -1, -1, 15, 16, 17, -1, 257, -1, 72, -1, -1, -1, -1, -1, -1, -1, 3188, -1, -1, 32, 271, -1, 5340, 274, -1, -1, -1, 40, 5346, -1, 3186, -1, -1, -1, 47, -1, -1, -1, -1, 4227, 4228, -1, -1, 8, -1, -1, -1, -1, -1, 14, 15, -1, -1, -1, -1, 20, -1, 22, 3230, 72, -1, -1, -1, 28, -1, 30, -1, -1, -1, 3225, -1, -1, 3244, 3245, -1, -1, -1, 2058, -1, -1, -1, -1, 3254, -1, 49, 50, -1, 2068, 3260, -1, 3262, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, 477, -1, 361, -1, -1, -1, -1, -1, 2097, -1, 182, -1, -1, -1, -1, 187, -1, 4313, 4314, 2108, 2109, 5447, -1, 22, -1, -1, -1, -1, 3308, 28, -1, -1, -1, -1, 5460, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, 2142, -1, -1, 5482, 5483, -1, 3323, -1, 182, 3342, 3343, -1, -1, 187, -1, -1, -1, -1, 70, 2856, -1, 2858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 209, 210, -1, -1, -1, -1, 3358, -1, -1, 2881, 2882, 271, -1, 460, 274, 224, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, 477, -1, -1, -1, -1, 196, -1, 124, -1, -1, -1, -1, -1, 204, 131, -1, 207, 134, 257, 210, 211, -1, 213, 4437, 215, 4439, 4440, 218, -1, 220, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, 4455, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 361, -1, -1, -1, -1, 193, -1, 3460, 2286, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, 2302, -1, -1, -1, 3481, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2322, -1, -1, -1, -1, -1, -1, 361, -1, 3506, 72, -1, -1, 3526, -1, -1, -1, -1, 8, -1, 252, 11, 254, -1, -1, 15, 16, 17, -1, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, 32, 3540, -1, -1, -1, -1, -1, -1, 40, -1, -1, 285, -1, 460, -1, 47, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, 477, -1, 2396, 2397, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, 326, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 182, -1, -1, 477, 356, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, 191, -1, -1, 194, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, 214, -1, -1, -1, -1, -1, -1, 221, -1, -1, -1, -1, -1, -1, 2501, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, 182, -1, -1, 257, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, 3728, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, 4755, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, 3254, -1, 3752, -1, -1, -1, -1, -1, -1, 8, 3760, -1, 11, 3763, -1, 3765, 15, 16, 17, -1, -1, -1, -1, -1, 3278, -1, -1, -1, -1, -1, 257, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, 271, -1, -1, 274, 47, -1, -1, -1, -1, -1, -1, -1, -1, 3807, -1, 4825, -1, -1, 361, -1, -1, -1, -1, -1, -1, -1, 3820, -1, -1, 72, 3824, 3825, -1, 3827, -1, 622, -1, -1, -1, -1, -1, -1, 629, 630, -1, -1, 633, -1, 635, 636, -1, -1, -1, 640, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 651, 3363, -1, 4877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, 3882, 692, -1, -1, -1, -1, -1, -1, -1, -1, -1, 702, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, 3927, 477, -1, 3930, -1, -1, 182, -1, -1, -1, -1, 187, -1, 3444, 734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 3997, 3998, 3999, 477, 4001, 4002, 4003, 4004, 4005, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, 819, -1, -1, -1, -1, -1, -1, -1, 2843, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2866, -1, -1, -1, -1, 855, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 614, -1, 616, -1, -1, -1, 620, -1, 8, -1, 4072, 11, -1, -1, -1, 15, 16, 17, -1, -1, 634, -1, -1, -1, -1, -1, -1, 641, -1, -1, -1, -1, 32, -1, 361, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 4131, -1, 4133, 927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, 948, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 960, -1, -1, -1, -1, 965, -1, -1, -1, -1, -1, -1, -1, -1, -1, 975, -1, -1, -1, -1, 980, -1, -1, -1, -1, -1, -1, -1, -1, 989, -1, -1, -1, -1, 994, -1, 4187, 997, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 3728, -1, -1, -1, 477, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, 4226, -1, -1, -1, 1039, -1, 3752, -1, -1, -1, -1, 32, -1, 3759, -1, -1, -1, -1, 182, 40, -1, 4247, -1, 187, -1, 8, 47, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, 5299, -1, -1, -1, 209, 210, -1, -1, 32, -1, 72, 3103, 36, -1, -1, -1, 40, -1, -1, 224, -1, -1, -1, 47, -1, -1, -1, 4310, 4311, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4321, -1, 4323, 4324, -1, -1, 4327, 4312, -1, -1, 72, -1, -1, -1, 257, -1, 3841, 3842, -1, -1, -1, -1, -1, -1, 881, 882, -1, -1, 271, 8, -1, 274, 11, -1, -1, -1, 15, 16, 17, -1, 1154, -1, 1156, -1, 1158, -1, 1160, -1, 1162, 1163, 1164, -1, -1, 32, -1, 1169, -1, -1, -1, 121, -1, 40, -1, -1, -1, -1, 1180, -1, 47, -1, 4391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1195, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930, -1, -1, 4429, 209, 210, -1, -1, -1, -1, -1, -1, -1, 361, -1, 182, -1, 979, -1, 224, 187, -1, 4432, -1, -1, -1, -1, -1, -1, -1, -1, 3266, 3267, 3268, -1, -1, 4462, -1, -1, -1, -1, -1, 209, 210, -1, -1, 1008, 1009, 3283, 3979, -1, -1, 257, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, 4478, 274, -1, 3306, 1034, -1, 158, -1, -1, -1, -1, 163, -1, 3316, 3317, -1, -1, -1, 3321, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, 271, -1, -1, 274, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 209, 210, -1, -1, 477, -1, -1, -1, -1, -1, -1, 1355, -1, -1, -1, 224, -1, -1, -1, -1, 8, 1108, 1109, 11, -1, -1, -1, 15, 16, 17, -1, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, 257, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, 4612, 271, -1, -1, 274, -1, -1, -1, 361, -1, -1, 3432, -1, -1, 3435, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, 1436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4655, -1, -1, -1, -1, -1, -1, -1, -1, 4664, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 420, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 475, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, 4211, -1, -1, -1, -1, 4216, -1, 1507, -1, 4220, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4245, 4246, -1, -1, 182, 4250, 4251, -1, -1, 187, -1, -1, -1, 3563, 3564, 3565, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, 209, 210, -1, -1, 4760, -1, -1, -1, -1, -1, -1, 32, -1, -1, 35, 224, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 4799, -1, -1, -1, -1, 257, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 298, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, -1, 4857, 4858, -1, -1, -1, -1, -1, -1, 4881, -1, -1, -1, 4885, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 32, -1, 1455, -1, -1, -1, -1, 361, 40, -1, -1, -1, -1, -1, -1, 47, 182, -1, -1, -1, -1, 187, -1, -1, 378, -1, -1, 1480, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, 72, -1, 1752, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 257, -1, -1, -1, -1, 131, -1, -1, 134, -1, -1, -1, -1, -1, 271, 460, -1, 274, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, 3849, 159, 157, -1, -1, 1581, 1582, 1583, 1584, -1, -1, 3860, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, 5070, -1, 187, -1, 5074, 193, 5076, -1, -1, -1, 5080, 5081, 3891, -1, -1, 1878, -1, 1880, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, 1897, -1, 1899, -1, 4612, 224, -1, -1, 361, -1, -1, 3924, -1, -1, -1, -1, 1913, -1, 1915, -1, 1917, -1, 1919, -1, 1921, -1, -1, -1, 1925, -1, 252, -1, 254, -1, -1, -1, -1, -1, 257, -1, -1, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, 273, 271, -1, -1, 274, -1, -1, -1, 3972, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, 5168, -1, 1722, 1723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 1742, -1, 326, 327, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, 356, -1, -1, 1777, 1778, 1779, 1780, -1, 361, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4091, 4092, 4093, 4094, -1, 8, 72, -1, 11, -1, -1, -1, 15, 16, 17, -1, 22, -1, -1, -1, -1, -1, 28, 423, -1, -1, -1, -1, -1, 32, -1, -1, 35, 5315, -1, -1, -1, 40, -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, 460, 70, -1, 463, 464, 465, 72, 467, 468, 469, 470, 471, 472, 1894, -1, -1, -1, 2155, 2156, 1900, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4881, -1, -1, -1, 2174, 2175, -1, -1, -1, 2179, 2180, -1, -1, -1, 2184, -1, -1, -1, -1, -1, -1, 182, 5399, 124, -1, -1, 187, -1, 2198, -1, 131, -1, -1, 134, -1, 2205, -1, -1, -1, 2209, 2210, -1, -1, 2213, 2214, -1, -1, -1, 209, 210, 2220, -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, 224, -1, 2235, -1, 2237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, 5462, 2256, -1, -1, 187, -1, 2261, 193, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, 5480, -1, 2275, -1, -1, -1, -1, 271, 209, 210, 274, 2284, -1, -1, 2287, 2031, -1, 2290, 2291, 2292, -1, -1, -1, 224, 2297, 2298, -1, -1, 292, -1, -1, -1, -1, -1, 2307, -1, -1, -1, -1, 2312, -1, -1, -1, 2316, 198, 199, -1, -1, 252, -1, 254, -1, 206, -1, 208, 209, 257, -1, -1, 2332, 264, -1, -1, -1, -1, -1, 2339, 2340, 222, 273, 271, -1, 2345, 274, -1, -1, 5060, -1, -1, -1, -1, 285, -1, 2356, 2357, -1, -1, -1, 2361, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, 2373, -1, -1, 2376, -1, -1, -1, -1, 2381, -1, -1, -1, -1, 2386, 2387, -1, -1, -1, 2391, 323, -1, 2394, 326, 327, -1, 2398, 2399, 2400, 2401, -1, 2403, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, 2416, 2417, 4434, 2419, -1, 35, -1, -1, -1, 356, -1, -1, -1, 2429, 2430, -1, -1, 361, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 2225, 2226, -1, -1, -1, -1, -1, -1, 104, 2491, 423, 2236, 8, 2238, -1, 11, -1, 2242, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, 131, 32, 2519, 134, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 460, 47, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 190, -1, -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, 35, -1, -1, -1, -1, 40, -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, 238, -1, -1, 241, -1, 2372, 72, -1, 2375, -1, -1, -1, -1, -1, 252, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, 163, 264, -1, 4668, -1, 8, -1, -1, 11, -1, 273, -1, 15, 16, 17, -1, -1, -1, 4683, 182, -1, 284, 285, 4688, 187, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, 5399, -1, -1, -1, -1, 47, -1, 209, 210, -1, 4714, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, 224, 2454, 326, 327, 328, -1, -1, -1, 72, 2462, 2720, -1, 2465, 8, -1, -1, 11, -1, 2471, -1, 15, 16, 17, -1, -1, -1, 350, -1, -1, 2482, 182, -1, 356, 257, 625, 187, -1, 32, -1, -1, 631, 5462, -1, -1, -1, 40, 370, 271, -1, -1, 274, -1, 47, 644, -1, -1, -1, 209, 210, 5480, -1, -1, -1, -1, -1, -1, -1, -1, -1, 660, 2523, -1, 224, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, 674, 675, -1, -1, -1, -1, -1, 681, -1, 683, 684, -1, -1, -1, -1, 2551, 423, -1, -1, -1, -1, -1, 257, 697, -1, -1, 4835, -1, -1, -1, -1, -1, -1, 707, -1, 182, 271, -1, -1, 274, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2609, -1, 2611, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, 182, -1, -1, -1, -1, 187, 257, -1, -1, -1, 32, -1, -1, 35, 792, -1, -1, -1, 40, 4932, 271, -1, 361, 274, -1, 47, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, 816, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, 460, 72, 829, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 2975, 2719, -1, -1, 2979, -1, -1, -1, -1, -1, 2985, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3003, 3004, -1, -1, 361, 3008, -1, -1, -1, -1, 3013, 3014, 3015, -1, 3017, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, 393, 3040, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3050, 3051, 3052, 3053, -1, -1, 937, 182, -1, -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 955, -1, 361, -1, -1, -1, 961, -1, -1, 964, 209, 210, 3086, -1, -1, 3089, 3090, 3091, -1, -1, -1, -1, 199, -1, -1, 224, -1, -1, -1, -1, -1, 208, 460, 3107, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 222, -1, -1, -1, -1, -1, -1, -1, 3127, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 274, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, 3199, -1, -1, -1, -1, -1, -1, -1, 3207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1113, -1, -1, -1, 361, -1, 3238, 22, -1, -1, -1, -1, 2987, 28, 2989, 2990, 2991, -1, 1131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3261, -1, -1, -1, -1, -1, -1, 1149, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, 1177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1188, -1, -1, -1, -1, -1, 3313, -1, 20, -1, -1, 3318, -1, 25, -1, -1, 1204, -1, -1, -1, 1208, -1, -1, -1, 182, -1, -1, -1, 460, 187, -1, 463, 464, 465, 124, 467, 468, 469, 470, 471, 472, 131, -1, -1, 134, 3352, -1, -1, 60, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, 73, 74, -1, -1, -1, 224, -1, -1, 159, -1, -1, 84, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, 3391, -1, 3393, -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, -1, 257, -1, -1, -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, 3433, -1, 140, -1, -1, -1, -1, -1, -1, -1, 148, -1, 1326, -1, -1, -1, -1, -1, -1, -1, 1334, 1335, 160, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, 1348, -1, 252, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, 3226, -1, -1, 191, -1, -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, 361, 216, -1, -1, -1, -1, -1, -1, -1, -1, 1401, -1, 625, -1, -1, -1, -1, -1, 631, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, 323, 644, -1, 326, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 660, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, -1, -1, 675, 356, -1, -1, -1, -1, -1, -1, 683, -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, 697, -1, -1, -1, -1, 304, 305, -1, -1, 308, 707, -1, -1, -1, -1, 460, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, 337, -1, -1, -1, 341, -1, 343, -1, 423, -1, -1, -1, -1, 350, -1, 3647, 353, 3649, -1, -1, -1, -1, -1, 3398, 3656, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, 3672, -1, 379, -1, -1, -1, -1, -1, 385, -1, -1, 388, -1, -1, -1, 392, 3688, 792, -1, -1, -1, -1, -1, 400, -1, 402, -1, -1, -1, -1, 407, -1, -1, -1, -1, 3707, -1, -1, -1, -1, -1, 816, 1595, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3725, 829, 432, -1, -1, -1, -1, -1, -1, -1, 3735, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3767, 3768, 3769, -1, -1, -1, -1, 3774, 3775, 3776, 3777, -1, -1, -1, 3781, 3782, -1, -1, -1, -1, 3787, 3788, -1, 3790, 3791, 3792, 3793, 3794, 3795, -1, 3797, -1, -1, -1, -1, -1, -1, -1, -1, 3806, -1, -1, 3809, 3810, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3833, 937, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1743, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, -1, -1, -1, -1, -1, 1775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1787, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3661, 3662, 3663, 3664, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3952, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1858, 1859, -1, 1861, 1862, -1, -1, -1, -1, 3986, -1, -1, -1, -1, -1, 1873, -1, 1875, 1876, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, 1888, 1889, -1, 1113, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 1904, -1, -1, -1, -1, 1131, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, 1149, -1, -1, -1, -1, 73, -1, -1, -1, 1936, -1, -1, 1939, 1940, -1, -1, 84, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, 1177, -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, 1188, -1, -1, -1, -1, 112, -1, -1, 3836, -1, -1, -1, -1, -1, -1, -1, 1204, -1, -1, -1, 1208, -1, 129, 3851, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 160, -1, -1, -1, -1, -1, -1, -1, 168, 2028, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4195, -1, -1, -1, 4199, 4200, 4201, 4202, -1, -1, 4205, 228, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, 2098, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, -1, -1, -1, 1334, 1335, -1, -1, -1, -1, 4237, 4238, 4239, -1, 4241, -1, 4243, 4244, 1348, -1, -1, -1, 271, -1, -1, 274, -1, -1, 4255, 4256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, 2154, -1, -1, -1, -1, -1, -1, -1, -1, 4282, -1, -1, -1, 308, -1, -1, -1, -1, 2172, -1, 315, -1, -1, 2177, 2178, 1401, -1, -1, 2182, -1, -1, -1, 4305, -1, -1, -1, 2190, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, -1, -1, 2208, 350, -1, -1, 353, -1, -1, -1, -1, 20, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, 2230, 372, -1, 2233, 2234, -1, -1, -1, 379, -1, -1, -1, -1, -1, 385, -1, -1, 388, 389, -1, 391, 392, -1, -1, 2254, -1, -1, 60, -1, -1, -1, 402, -1, -1, -1, 4384, 407, -1, -1, -1, 73, -1, 413, 2273, 2274, 416, -1, -1, 419, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, -1, 2305, 2306, -1, -1, 2309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4442, -1, -1, 129, -1, -1, -1, -1, 2331, -1, 2333, -1, -1, -1, 140, 2338, -1, -1, -1, -1, -1, 2344, 148, -1, -1, -1, -1, -1, 2351, -1, -1, -1, 2355, -1, 160, -1, -1, 2360, -1, 165, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, 1595, -1, -1, -1, -1, -1, -1, 2380, -1, -1, -1, -1, 2385, -1, -1, 191, 2389, -1, -1, 2392, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2415, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2425, -1, -1, -1, -1, 4292, -1, -1, 4552, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 284, -1, -1, -1, -1, -1, -1, -1, -1, 2490, 294, -1, -1, -1, 4614, -1, -1, -1, -1, -1, 304, 305, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, 4632, -1, -1, -1, -1, 4637, 4638, -1, 1743, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, 337, -1, 4398, -1, 341, -1, 343, -1, -1, -1, -1, 1767, -1, 350, -1, -1, 353, -1, -1, 1775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1787, -1, -1, -1, 372, 4689, 2571, -1, -1, -1, -1, 379, -1, -1, -1, -1, -1, 385, -1, -1, 388, -1, -1, -1, 392, 4709, -1, 4711, -1, -1, -1, -1, 400, -1, 402, -1, -1, -1, -1, 407, -1, -1, 4726, -1, -1, -1, -1, -1, -1, -1, -1, 419, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2626, 4746, -1, 432, -1, -1, -1, -1, 4753, -1, -1, -1, -1, 1861, 1862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1875, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1888, 1889, 2668, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1904, -1, -1, -1, 2686, -1, -1, -1, -1, -1, -1, -1, 2694, -1, -1, -1, -1, 4818, -1, -1, -1, -1, 2704, -1, -1, 2707, -1, -1, 2710, -1, 4574, 4575, 4576, -1, -1, -1, -1, -1, -1, 4840, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4851, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 786, 787, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2776, -1, -1, -1, -1, -1, 2782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4914, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2028, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 696, 2858, -1, -1, 4980, -1, -1, -1, -1, -1, -1, -1, -1, 4732, -1, -1, -1, -1, -1, 2098, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 935, 936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5040, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2154, -1, -1, -1, 5055, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2947, 2948, -1, 2172, -1, -1, -1, -1, 2177, 2178, -1, -1, -1, 2182, -1, -1, -1, -1, -1, -1, -1, 2190, -1, -1, -1, -1, -1, 2974, -1, -1, 2977, -1, -1, 5099, -1, -1, -1, -1, -1, 2208, -1, -1, -1, -1, -1, -1, -1, -1, 5114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4873, -1, 4875, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, 2254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2273, 2274, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3062, 3063, 3064, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, -1, 5196, -1, -1, -1, -1, -1, 2305, 2306, 3085, -1, 2309, -1, 88, -1, -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, -1, 3105, -1, 106, -1, 2331, -1, 2333, 951, 112, -1, -1, 2338, -1, -1, -1, -1, 5240, 2344, -1, 3124, -1, -1, -1, -1, 2351, 129, -1, -1, 2355, -1, -1, -1, 976, 2360, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, 148, -1, -1, 991, -1, -1, -1, -1, -1, 2380, -1, -1, 160, -1, 2385, -1, -1, 165, 2389, 5030, -1, 2392, -1, -1, 172, -1, -1, -1, -1, -1, -1, 2402, -1, 1220, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 2415, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2425, -1, -1, 3206, -1, -1, 5328, -1, -1, 1250, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1076, 237, -1, 1278, 1279, 1280, -1, 1282, -1, -1, 5109, -1, -1, -1, -1, -1, 3253, -1, -1, -1, -1, -1, -1, 3260, -1, 3262, -1, 1302, -1, -1, -1, 2490, -1, -1, -1, 271, -1, -1, 3275, -1, 3277, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, 3299, -1, -1, -1, -1, -1, 304, 305, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1370, -1, -1, 334, 1374, 1375, 337, -1, -1, -1, 341, 3343, 343, -1, -1, 1186, -1, 2571, 5212, 350, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, 379, -1, -1, -1, -1, 384, 385, -1, -1, 388, -1, -1, -1, 392, 3394, -1, -1, -1, -1, -1, -1, -1, -1, 402, 2626, -1, -1, -1, 407, -1, -1, -1, 3412, -1, -1, -1, -1, -1, -1, -1, 419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, 3434, -1, -1, 3437, -1, -1, -1, -1, -1, -1, -1, -1, 2668, 5309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2686, -1, -1, -1, -1, -1, -1, -1, 2694, -1, -1, -1, -1, -1, -1, 5341, 5342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3517, -1, -1, -1, -1, -1, -1, -1, -1, 696, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2776, -1, 1395, -1, -1, -1, 2782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1610, 1611, 1612, -1, -1, -1, -1, -1, -1, -1, 5444, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, 3671, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3722, -1, -1, 2947, 2948, 3727, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3751, 2974, -1, -1, 2977, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3770, 1610, 1611, 1612, -1, -1, -1, -1, -1, -1, -1, 951, -1, -1, -1, -1, 3786, -1, -1, 3789, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 991, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3062, 3063, 3064, -1, -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3085, -1, -1, -1, -1, -1, -1, -1, 696, -1, -1, 1713, -1, -1, -1, 3878, 3879, -1, -1, -1, 3105, -1, -1, -1, -1, 3888, -1, -1, 1730, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3124, -1, -1, -1, 1076, 3907, -1, 1748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1994, -1, 1996, -1, -1, 1999, 2000, 2001, -1, 1804, -1, -1, 2006, -1, -1, 2009, -1, -1, -1, -1, -1, -1, 1817, -1, -1, -1, 3982, -1, 3206, -1, 2024, 2025, 2026, 2027, 1829, -1, -1, -1, 2032, -1, -1, -1, 2036, -1, -1, 2039, 1841, -1, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, -1, 2052, -1, 1186, -1, -1, -1, -1, 2059, -1, 2061, -1, -1, -1, -1, -1, -1, -1, 3253, -1, -1, -1, -1, -1, -1, 3260, -1, 3262, -1, -1, -1, -1, -1, 1885, 1886, -1, -1, -1, -1, -1, 3275, -1, 3277, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3299, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2128, 2129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3343, -1, -1, -1, -1, 951, -1, -1, -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, -1, -1, -1, 1329, 696, -1, -1, -1, -1, -1, 991, -1, -1, -1, -1, -1, 3394, 2211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2023, -1, -1, -1, -1, -1, 3412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4204, -1, -1, -1, -1, 4209, -1, -1, 3434, -1, -1, 3437, -1, -1, -1, -1, -1, -1, 2061, -1, -1, 1395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4242, -1, -1, -1, -1, -1, -1, -1, -1, 1076, -1, -1, 4254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4281, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, -1, -1, -1, 3517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2161, -1, -1, -1, 2165, 2166, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1186, -1, -1, -1, 1535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4378, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2241, -1, 2442, 2443, 2444, -1, -1, -1, 2448, -1, -1, -1, -1, 951, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, 2480, 2282, -1, -1, -1, -1, -1, 3671, -1, -1, -1, -1, -1, 991, 4456, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3722, -1, -1, -1, -1, 3727, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3751, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1076, -1, -1, 1713, -1, -1, -1, -1, 3770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1, -1, -1, 3786, -1, 4566, 3789, 4568, -1, 1395, -1, -1, -1, -1, -1, -1, -1, 1748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2444, -1, -1, -1, -1, -1, -1, -1, 4613, -1, -1, -1, -1, -1, -1, -1, -1, 4622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, 1461, -1, -1, -1, -1, -1, 2481, -1, -1, -1, -1, 1817, -1, -1, 1186, -1, -1, -1, -1, -1, 3878, 3879, -1, 1829, 4660, -1, -1, -1, -1, 4665, 3888, -1, -1, -1, -1, 1841, -1, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, 3907, -1, -1, -1, 2727, -1, -1, -1, -1, 2732, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1535, -1, -1, -1, -1, 1885, 1886, -1, -1, 2757, -1, -1, -1, -1, 2563, -1, -1, 2566, -1, -1, 2768, -1, 2770, 2771, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2781, -1, -1, 2784, -1, 2786, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3982, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2815, -1, 2817, -1, 2819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 4844, 2684, -1, -1, -1, -1, -1, 2889, -1, 2023, -1, -1, -1, -1, -1, 1395, -1, -1, 2701, -1, -1, -1, -1, -1, -1, 4869, -1, -1, -1, -1, -1, -1, -1, 2716, -1, -1, -1, 4881, -1, -1, -1, -1, -1, -1, 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2953, -1, -1, -1, -1, -1, -1, -1, 1748, -1, 1461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, 4204, -1, -1, -1, -1, 4209, -1, -1, -1, 2161, 1817, -1, -1, 2165, 2166, -1, -1, 1535, -1, -1, -1, -1, 1829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, -1, -1, -1, 4242, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2227, -1, 4281, 1885, 1886, -1, -1, -1, -1, -1, -1, 5068, -1, 5070, 2241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2922, -1, -1, 2925, -1, 2927, -1, -1, -1, -1, 2932, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4378, -1, -1, -1, -1, 3000, -1, -1, -1, 5165, -1, -1, -1, 670, -1, -1, -1, 3211, -1, -1, -1, 1713, -1, 3217, -1, -1, -1, 5183, -1, -1, 3025, -1, -1, -1, -1, -1, -1, -1, 1730, 696, -1, 5197, 2023, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5210, -1, 1748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4456, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3095, -1, 3097, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, 5272, 5273, -1, -1, -1, -1, -1, -1, -1, 1817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, -1, -1, -1, -1, -1, 2481, -1, -1, -1, 5315, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2161, -1, -1, -1, 2165, 2166, -1, -1, 4566, -1, 4568, 3186, -1, 1885, 1886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3211, -1, -1, -1, -1, -1, 3217, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, 4613, -1, 2563, -1, -1, 2566, -1, -1, 5399, -1, -1, 2227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, 2241, -1, -1, 3457, -1, -1, -1, -1, -1, -1, -1, -1, 3466, -1, -1, -1, -1, -1, 3472, -1, 3474, -1, 4660, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 951, -1, -1, -1, -1, -1, -1, 2282, -1, -1, -1, -1, 5462, 3501, 3502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, 5480, 3519, 5482, 5483, 3323, -1, -1, 2023, -1, 3527, 991, -1, 3530, -1, 3532, -1, -1, -1, -1, -1, -1, -1, -1, 3541, -1, 3344, -1, -1, -1, -1, -1, 3549, 3550, -1, 2684, -1, -1, -1, -1, 3358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2701, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581, -1, -1, 2716, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3606, -1, -1, -1, -1, -1, -1, 1076, -1, -1, -1, -1, -1, -1, -1, -1, 3622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460, 4844, -1, -1, 2161, -1, -1, -1, 2165, 2166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481, -1, -1, -1, -1, 4869, -1, -1, -1, -1, -1, -1, -1, -1, 2481, -1, -1, 4881, -1, -1, -1, -1, -1, -1, -1, 3506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1186, -1, -1, -1, -1, -1, 2227, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540, -1, -1, -1, 2241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2563, -1, -1, 2566, -1, -1, -1, -1, 2282, -1, -1, -1, -1, -1, 2922, -1, -1, 2925, -1, 2927, -1, -1, -1, -1, 2932, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3000, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5068, -1, 5070, -1, -1, -1, -1, -1, -1, 3025, -1, -1, -1, 2684, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2701, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 670, 3728, -1, 2716, -1, -1, 1395, -1, -1, 3935, 3936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3752, 696, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3095, -1, 3097, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5165, -1, 2481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, 5183, -1, -1, -1, -1, -1, -1, -1, 4007, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4018, -1, -1, -1, -1, -1, -1, -1, 5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3186, -1, -1, -1, -1, 4059, 4060, -1, -1, -1, -1, 2563, 4066, 4067, 2566, -1, -1, 4071, 1535, -1, -1, -1, 4076, -1, -1, 4079, 4080, 3882, -1, -1, 4084, -1, -1, -1, -1, -1, 4090, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, -1, -1, -1, 3930, -1, 5315, -1, 3934, -1, 2922, -1, -1, 2925, -1, 2927, -1, 4142, -1, -1, 2932, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 696, 2684, -1, -1, -1, -1, 3323, -1, -1, 2981, -1, -1, -1, -1, -1, -1, -1, -1, 2701, -1, -1, -1, 951, -1, -1, -1, -1, 3344, 3000, -1, 5399, -1, -1, 2716, -1, -1, -1, -1, -1, -1, -1, 3358, -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, -1, 3025, -1, -1, -1, -1, -1, -1, -1, -1, 991, -1, -1, 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062, -1, -1, -1, -1, -1, 1730, -1, -1, 4270, 4072, -1, -1, -1, -1, -1, -1, 5462, -1, -1, -1, -1, -1, -1, 1748, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3095, -1, 3097, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460, -1, -1, -1, 1076, -1, -1, -1, -1, -1, -1, 4339, -1, 1804, -1, -1, -1, -1, -1, -1, -1, 3481, -1, -1, -1, -1, 1817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1829, -1, -1, -1, -1, -1, -1, -1, 3506, -1, -1, -1, 1841, -1, -1, -1, -1, -1, -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3186, -1, -1, -1, -1, -1, -1, -1, -1, 3540, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1885, 1886, 2922, 4226, -1, 2925, -1, 2927, -1, -1, -1, -1, 2932, -1, -1, -1, 3225, -1, 951, -1, 1186, -1, -1, -1, 4247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 991, -1, -1, 2981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628, -1, -1, -1, -1, -1, 3000, 4503, 4504, -1, -1, 4507, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3025, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, -1, 4544, 4545, -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, -1, 3344, -1, -1, 2023, 4561, -1, -1, -1, 1076, -1, -1, -1, -1, -1, 3358, -1, -1, -1, -1, -1, 696, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728, 3095, -1, 3097, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3752, -1, -1, -1, -1, -1, -1, -1, -1, 4430, -1, 4432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460, -1, 1186, -1, 4478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3186, -1, -1, -1, -1, -1, 3481, -1, -1, -1, 2161, -1, -1, -1, 2165, 2166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, -1, 3506, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3882, -1, -1, 3540, -1, -1, 3254, -1, 1502, -1, -1, -1, 4762, -1, 2227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4789, -1, 1535, -1, -1, -1, -1, -1, -1, 3930, -1, -1, -1, 3934, 4803, -1, -1, -1, -1, -1, -1, -1, 4612, -1, -1, -1, -1, -1, -1, -1, 2282, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, 951, -1, -1, -1, -1, -1, -1, -1, -1, 3628, -1, -1, -1, -1, 3344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, -1, 3358, -1, 4862, -1, -1, -1, -1, -1, -1, -1, -1, -1, 991, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4903, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062, -1, -1, -1, -1, 4736, -1, -1, -1, -1, 4072, 3728, -1, -1, -1, -1, -1, -1, -1, -1, 1461, -1, -1, -1, -1, -1, -1, 1076, -1, 4760, -1, -1, 3460, -1, -1, 3752, -1, -1, -1, 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481, -1, -1, 1730, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, 1748, -1, -1, -1, 3506, -1, -1, -1, -1, -1, -1, -1, -1, 5017, 2481, -1, -1, -1, -1, -1, 1535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540, 5043, -1, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, 4187, 4857, 4858, -1, -1, 1804, -1, -1, -1, -1, -1, -1, 1186, -1, -1, -1, -1, -1, 1817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1829, -1, -1, -1, -1, -1, -1, -1, -1, 4226, 3882, -1, 1841, -1, -1, 2563, -1, -1, 2566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247, -1, -1, -1, -1, 5120, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1885, 1886, 3930, -1, -1, -1, 3934, -1, -1, -1, -1, -1, -1, -1, 5155, 5156, 5157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4972, 4973, -1, 5174, -1, -1, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1, 2684, -1, -1, -1, -1, -1, -1, -1, -1, 3728, -1, -1, -1, -1, -1, -1, 1748, 2701, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2716, 3752, -1, 5256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5274, 4062, 1395, -1, -1, 2023, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, -1, 1817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, -1, -1, -1, 4478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, -1, -1, -1, -1, -1, -1, 1885, 1886, -1, -1, -1, -1, -1, -1, -1, 1502, 3882, 5385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1535, 2161, -1, 5419, -1, 2165, 2166, -1, -1, -1, -1, -1, -1, 5429, -1, -1, 3930, -1, -1, -1, 3934, -1, -1, 4226, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2922, 4247, -1, 2925, -1, 2927, -1, -1, -1, -1, 2932, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4612, -1, -1, 2227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2023, -1, -1, -1, -1, -1, 2981, -1, -1, -1, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3000, 2282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3025, -1, 4062, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4736, -1, -1, -1, -1, -1, -1, 1730, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4760, 1748, -1, -1, 3095, -1, 3097, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, 2161, -1, -1, -1, 2165, 2166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, 4187, -1, 4478, -1, -1, -1, -1, -1, -1, 1817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1829, -1, -1, -1, -1, -1, 2227, -1, -1, -1, 4852, -1, 1841, 3186, -1, 4857, 4858, -1, 4226, -1, 2241, -1, -1, -1, -1, -1, -1, 2481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, 1885, 1886, -1, -1, -1, 2282, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4312, -1, -1, -1, -1, 2563, -1, -1, 2566, -1, -1, 4612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3358, -1, -1, -1, -1, -1, -1, -1, -1, 2023, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, -1, 2684, -1, -1, -1, -1, -1, -1, -1, -1, 4736, -1, -1, -1, -1, -1, -1, -1, 2701, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2481, -1, 2716, 4760, -1, -1, -1, -1, -1, -1, 4478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, 3481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, -1, -1, -1, -1, -1, 2161, 3506, -1, -1, 2165, 2166, -1, -1, -1, -1, 2563, -1, -1, 2566, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, -1, 4857, 4858, -1, -1, -1, -1, -1, 3540, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2227, -1, -1, -1, -1, -1, 4612, -1, -1, -1, -1, -1, -1, -1, 2241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2282, -1, 3628, -1, -1, -1, -1, -1, -1, -1, 2684, -1, -1, -1, -1, 2922, -1, -1, 2925, -1, 2927, -1, -1, 4973, -1, 2932, -1, 2701, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2716, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2981, 4736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3000, -1, -1, -1, -1, -1, 4760, -1, -1, 3728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3025, -1, -1, -1, -1, -1, -1, -1, 3752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3095, -1, 3097, 4852, -1, -1, -1, -1, 4857, 4858, -1, 2481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, 1352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2922, -1, -1, 2925, -1, 2927, -1, -1, 3882, -1, 2932, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3186, -1, 2563, -1, -1, 2566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930, -1, -1, 2981, 3934, -1, -1, -1, 4973, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, 3000, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, 3025, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2684, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, 2701, -1, 3095, -1, 3097, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2716, -1, 4062, 3344, -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, 3358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1616, -1, -1, -1, 1620, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, -1, -1, -1, -1, 3186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, 3460, -1, -1, -1, -1, -1, -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481, -1, -1, -1, -1, -1, 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3506, 4226, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540, -1, -1, -1, -1, -1, -1, 2922, -1, -1, 2925, -1, 2927, -1, -1, -1, 3323, 2932, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3358, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3000, -1, -1, 3628, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3025, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4432, 3481, -1, -1, -1, -1, -1, 3095, -1, 3097, -1, -1, -1, -1, -1, 3728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3752, 1979, -1, -1, -1, -1, -1, 4478, -1, -1, -1, -1, -1, -1, -1, 1993, -1, -1, -1, 1997, -1, 3540, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2011, 2012, 2013, -1, 2015, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2057, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, 3882, -1, -1, -1, -1, -1, -1, 2115, -1, -1, -1, 4612, -1, -1, -1, -1, -1, -1, -1, 2127, -1, -1, -1, -1, 2132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930, -1, -1, -1, 3934, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728, -1, -1, -1, -1, -1, -1, -1, 3344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3358, -1, 3752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, 3460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481, -1, -1, -1, -1, -1, -1, -1, -1, 3882, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3506, -1, 4852, -1, -1, -1, -1, 4857, 4858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930, -1, 3540, -1, 3934, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4226, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247, -1, -1, -1, -1, -1, 3628, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4226, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4478, -1, 4247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2730, -1, -1, 3882, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2750, -1, 2752, -1, -1, 2755, 2756, -1, 2758, -1, 2760, -1, -1, -1, 2764, -1, -1, 2767, -1, -1, -1, 4312, 2772, -1, -1, -1, -1, -1, 2778, -1, -1, 3930, -1, 2783, -1, 3934, -1, -1, -1, -1, 2790, 2791, 2792, 2793, -1, -1, -1, 2797, 2798, -1, 2800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2812, -1, 2814, -1, -1, -1, -1, -1, -1, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, -1, -1, -1, -1, -1, -1, -1, 4612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2867, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4736, -1, -1, -1, -1, -1, 2968, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4612, -1, -1, -1, -1, -1, 4226, 4852, -1, -1, -1, -1, 4857, 4858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4736, -1, -1, -1, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3215, 3216, -1, -1, 4760, 3220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3249, -1, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, -1, 4857, 4858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3456, -1, -1, -1, -1, -1, 3462, 4612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478, 3479, -1, -1, 3482, 3483, 3484, 3485, -1, -1, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520, -1, -1, 3523, -1, 3525, -1, -1, 3528, 3529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3543, 3544, 3545, 3546, -1, 3548, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3637, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4799, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, -1, 4857, 4858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3853, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4008, -1, -1, -1, 4012, 4013, 4014, -1, -1, -1, -1, 5168, 4020, 4021, 4022, 4023, -1, -1, -1, -1, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4065, -1, -1, 4068, -1, 4070, -1, -1, -1, 4074, -1, -1, 4077, 4078, -1, -1, 4081, 4082, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4128, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4427, 4428, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4468, -1, -1, -1, -1, 4473, 4474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4491, -1, 4493, -1, -1, -1, 4497, 4498, 4499, -1, -1, 4502, -1, -1, 4505, 4506, -1, -1, -1, 4510, -1, -1, -1, 4514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4570, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4633, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4670, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4758, 4759, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4773, 4774, 4775, -1, -1, -1, -1, -1, -1, -1, 4783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4810, 4811, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4822, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4985, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4998, -1, -1, 5001, -1, -1, -1, 5005, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5054, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5162, -1, 5164, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5277, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5373, 5374, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5425, 5426, -1, -1, -1, 5430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, 5457, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, 126, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, -1, -1, -1, 476, 477, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 477, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 477, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 477, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, 3, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 477, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 477, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 477, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, 457, 458, 459, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, 477, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 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, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, 474, 475, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, 3, 4, 5, 6, 7, 476, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, -1, -1, -1, -1, -1, 467, 468, -1, -1, 3, 4, 5, 6, 7, 476, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, -1, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, -1, -1, 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, -1, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, 467, 468, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 462, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 462, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 462, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, 8, 9, -1, -1, -1, -1, 476, 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, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, 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, -1, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -1, 172, -1, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, -1, 296, -1, 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, -1, 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, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, -1, 402, -1, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 3, 4, 5, -1, -1, 8, 9, -1, -1, -1, -1, -1, 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, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, 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, -1, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -1, 172, -1, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, -1, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, -1, 296, -1, 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, -1, 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, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, -1, 402, -1, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 3, -1, 463, 464, 465, 8, 467, 468, 469, 470, 471, 472, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, 469, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, 469, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, 469, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, 469, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, 469, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, 4, 5, -1, -1, -1, 9, 467, 468, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, 4, 5, -1, -1, -1, 9, 467, 468, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, 5, -1, -1, -1, 9, 467, 468, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, 9, 467, 468, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, 163, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, 4, 5, -1, -1, -1, 9, 467, 468, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 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, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, 221, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, 160, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, 270, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, 71, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, 171, -1, 173, -1, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, 198, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, 221, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, -1, 255, 256, -1, 258, -1, 260, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, 278, -1, 280, -1, 282, 283, 284, 285, 286, 287, 288, -1, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, 339, -1, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, 426, 427, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, 158, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, 156, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, 203, 204, -1, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, -1, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, 427, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, -1, -1, 49, -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, 92, 93, 94, 95, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, -1, -1, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, -1, 157, -1, 159, -1, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, 197, -1, 199, 200, 201, 202, -1, -1, -1, -1, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, 220, -1, 222, 223, 224, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, -1, 248, -1, 250, 251, 252, -1, -1, 255, 256, 257, 258, -1, -1, 261, -1, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, 279, 280, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, -1, 359, 360, 361, 362, 363, -1, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, -1, 394, -1, -1, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, -1, -1, 429, 430, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, -1, 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, -1, -1, -1, -1, 75, 76, 77, 78, 79, -1, 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, -1, -1, 93, 94, 95, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, -1, -1, 111, -1, 113, -1, 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, 138, 139, 140, -1, 142, 143, 144, 145, -1, 147, 148, 149, -1, -1, 152, -1, 154, 155, -1, 157, -1, 159, -1, 161, -1, -1, -1, 165, 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, -1, 196, -1, -1, 199, 200, 201, 202, -1, -1, -1, -1, -1, 208, -1, -1, 211, -1, 213, 214, 215, 216, 217, -1, -1, 220, -1, -1, 223, -1, -1, 226, 227, 228, -1, -1, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, -1, -1, -1, 250, 251, 252, -1, -1, 255, 256, -1, 258, -1, -1, 261, -1, 263, 264, 265, -1, 267, 268, -1, -1, 271, 272, 273, -1, -1, 276, 277, -1, -1, 280, -1, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, -1, 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, -1, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, -1, 356, 357, -1, 359, 360, -1, 362, 363, -1, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, -1, 383, 384, -1, 386, -1, 388, 389, 390, 391, 392, -1, 394, -1, -1, -1, -1, 399, 400, -1, 402, -1, -1, 405, 406, 407, 408, 409, 410, 411, -1, -1, 414, 415, 416, 417, 418, -1, -1, 421, 422, 423, 424, 425, -1, -1, -1, 429, -1, 431, 432, 433, 434, -1, -1, 437, -1, -1, 440, 441, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 458, 459 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 18, 28, 30, 31, 46, 55, 67, 69, 70, 76, 78, 89, 91, 108, 111, 125, 127, 131, 137, 145, 147, 153, 169, 186, 226, 227, 232, 244, 256, 299, 313, 319, 320, 322, 327, 332, 335, 342, 348, 349, 356, 360, 370, 385, 405, 415, 421, 426, 439, 462, 476, 483, 484, 485, 486, 487, 493, 494, 496, 497, 498, 499, 501, 505, 517, 522, 523, 526, 527, 528, 547, 550, 551, 566, 611, 612, 615, 618, 619, 620, 628, 634, 636, 638, 639, 642, 645, 646, 650, 659, 663, 664, 665, 666, 669, 671, 672, 673, 674, 682, 684, 704, 708, 710, 711, 721, 723, 730, 731, 734, 735, 736, 737, 738, 746, 748, 752, 757, 761, 762, 770, 771, 774, 779, 792, 819, 822, 823, 824, 829, 832, 834, 836, 838, 839, 844, 845, 848, 849, 850, 854, 855, 858, 859, 862, 863, 864, 871, 873, 874, 875, 881, 883, 884, 890, 891, 892, 893, 894, 895, 896, 898, 899, 901, 902, 904, 905, 907, 919, 925, 928, 930, 931, 940, 942, 947, 952, 956, 957, 958, 959, 960, 961, 965, 1000, 399, 442, 876, 25, 73, 88, 106, 112, 129, 140, 148, 160, 165, 172, 191, 216, 237, 271, 294, 304, 305, 308, 334, 337, 341, 343, 350, 353, 372, 379, 384, 385, 388, 392, 402, 407, 419, 432, 635, 876, 3, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 99, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 128, 129, 130, 131, 132, 134, 135, 136, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 154, 155, 156, 157, 159, 161, 162, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 220, 221, 222, 223, 224, 226, 227, 228, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 267, 268, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 350, 351, 352, 353, 354, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 383, 384, 386, 387, 388, 389, 390, 391, 392, 394, 395, 396, 399, 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, 414, 415, 416, 417, 418, 421, 422, 423, 424, 425, 426, 427, 429, 430, 431, 432, 433, 434, 437, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1059, 1133, 1141, 1142, 1145, 1146, 1147, 3, 26, 953, 1127, 1141, 1145, 430, 912, 269, 300, 876, 49, 476, 558, 20, 37, 60, 73, 84, 106, 112, 129, 140, 148, 160, 168, 172, 228, 271, 274, 294, 308, 334, 343, 353, 372, 379, 388, 389, 391, 392, 402, 407, 413, 416, 419, 567, 617, 726, 780, 793, 26, 299, 1127, 953, 26, 293, 351, 389, 391, 5, 215, 830, 831, 1136, 20, 25, 60, 73, 88, 106, 129, 140, 148, 160, 165, 172, 191, 237, 271, 284, 294, 305, 308, 334, 337, 341, 343, 350, 353, 372, 379, 385, 388, 392, 400, 402, 407, 419, 432, 635, 739, 740, 741, 876, 1127, 91, 430, 476, 612, 615, 618, 907, 920, 928, 931, 940, 947, 952, 956, 9, 19, 26, 44, 155, 161, 163, 187, 217, 251, 302, 321, 467, 468, 758, 759, 953, 1135, 1137, 26, 91, 317, 349, 763, 764, 765, 1141, 160, 1141, 1132, 1136, 385, 968, 758, 1141, 399, 1127, 284, 237, 106, 191, 343, 384, 385, 476, 840, 841, 342, 1141, 26, 354, 395, 399, 509, 518, 519, 1141, 23, 169, 763, 764, 300, 876, 1141, 214, 26, 126, 970, 971, 61, 85, 228, 246, 334, 343, 354, 395, 399, 445, 506, 507, 508, 509, 26, 354, 395, 399, 509, 399, 270, 1011, 1125, 1141, 968, 469, 1141, 164, 476, 913, 476, 315, 962, 963, 1127, 962, 957, 958, 961, 0, 479, 476, 912, 141, 205, 275, 412, 972, 973, 957, 959, 960, 117, 201, 418, 480, 32, 880, 809, 1133, 743, 1141, 743, 1128, 1141, 303, 743, 402, 1127, 105, 385, 797, 1133, 1141, 1147, 3, 102, 355, 1138, 1139, 1143, 1145, 1146, 1147, 26, 181, 1125, 263, 432, 8, 15, 16, 17, 68, 152, 463, 464, 465, 467, 468, 469, 470, 471, 472, 826, 828, 1089, 1090, 1141, 181, 1127, 797, 1127, 26, 1138, 1139, 797, 1127, 1127, 181, 1125, 1127, 743, 1127, 327, 356, 26, 181, 1011, 1127, 346, 1127, 743, 26, 235, 1138, 1139, 181, 1125, 215, 114, 211, 254, 311, 877, 878, 879, 476, 474, 478, 1116, 1118, 1125, 1131, 1141, 20, 25, 60, 73, 74, 84, 88, 106, 129, 140, 148, 160, 165, 191, 216, 237, 271, 294, 305, 308, 334, 337, 341, 343, 350, 353, 372, 379, 385, 388, 392, 400, 402, 407, 432, 635, 749, 750, 1136, 880, 927, 931, 940, 947, 956, 1125, 239, 743, 476, 181, 743, 402, 1128, 743, 402, 181, 1127, 105, 385, 389, 391, 1138, 1139, 389, 391, 68, 152, 826, 325, 1127, 1127, 1138, 181, 502, 1141, 181, 1127, 181, 743, 1127, 1127, 346, 1127, 743, 235, 1138, 315, 350, 385, 432, 237, 88, 191, 25, 165, 305, 341, 400, 406, 629, 26, 1127, 954, 516, 1136, 1143, 831, 239, 181, 809, 810, 181, 835, 181, 1128, 3, 48, 50, 51, 63, 64, 109, 110, 130, 156, 181, 203, 204, 206, 247, 249, 262, 312, 358, 364, 395, 396, 427, 745, 1033, 1035, 1037, 1039, 1041, 1043, 1044, 1045, 1047, 1048, 1049, 1051, 1052, 1142, 1145, 402, 105, 385, 181, 796, 797, 181, 1139, 1140, 80, 432, 68, 152, 181, 827, 828, 53, 181, 796, 181, 1140, 181, 796, 181, 1127, 181, 1127, 346, 835, 181, 745, 181, 235, 1140, 215, 181, 742, 743, 181, 1126, 1127, 181, 1127, 880, 476, 929, 567, 920, 426, 907, 921, 922, 923, 1143, 912, 1137, 759, 760, 26, 760, 1137, 760, 26, 760, 1137, 760, 760, 760, 1137, 1135, 1135, 953, 760, 303, 476, 476, 587, 587, 587, 269, 397, 480, 587, 343, 1011, 1012, 480, 872, 1136, 476, 926, 53, 432, 430, 842, 843, 80, 781, 781, 1141, 43, 459, 211, 478, 272, 272, 269, 163, 1136, 397, 880, 158, 753, 269, 4, 6, 7, 8, 10, 34, 48, 50, 51, 59, 60, 63, 64, 71, 73, 96, 97, 98, 99, 100, 101, 102, 109, 110, 112, 146, 150, 151, 156, 171, 173, 203, 204, 206, 221, 229, 230, 247, 249, 254, 259, 260, 262, 271, 282, 295, 312, 339, 355, 364, 380, 395, 396, 401, 403, 404, 413, 419, 427, 447, 448, 449, 450, 452, 453, 454, 455, 460, 467, 468, 469, 476, 957, 1036, 1039, 1042, 1043, 1044, 1046, 1047, 1048, 1051, 1052, 1056, 1058, 1059, 1060, 1062, 1085, 1086, 1087, 1091, 1110, 1115, 1122, 1123, 1133, 1134, 1135, 1136, 1141, 1121, 1122, 1136, 26, 524, 1124, 1125, 354, 506, 112, 515, 1136, 516, 1136, 43, 65, 506, 459, 365, 878, 272, 163, 397, 465, 43, 459, 211, 879, 476, 1125, 469, 1118, 1012, 906, 907, 908, 909, 1143, 162, 914, 1056, 1094, 962, 480, 476, 915, 477, 477, 485, 906, 916, 917, 918, 1125, 26, 126, 969, 969, 53, 969, 153, 158, 225, 266, 976, 978, 979, 994, 996, 997, 998, 972, 973, 163, 207, 1011, 1013, 476, 62, 252, 285, 323, 356, 476, 807, 285, 319, 323, 356, 478, 744, 285, 323, 356, 3, 83, 135, 231, 285, 323, 356, 388, 390, 439, 517, 520, 885, 886, 887, 888, 775, 22, 131, 285, 323, 356, 423, 533, 1127, 22, 131, 356, 418, 500, 443, 181, 1011, 56, 90, 120, 149, 184, 220, 254, 285, 286, 323, 331, 340, 348, 356, 368, 377, 381, 434, 517, 521, 812, 820, 476, 794, 1118, 323, 500, 187, 146, 22, 28, 41, 70, 120, 124, 131, 134, 159, 193, 252, 254, 264, 273, 285, 323, 326, 327, 356, 423, 529, 531, 532, 653, 4, 467, 468, 626, 1137, 26, 181, 1125, 743, 743, 476, 825, 285, 356, 478, 146, 269, 120, 285, 323, 356, 820, 22, 131, 285, 323, 356, 187, 495, 323, 439, 462, 488, 495, 120, 285, 323, 356, 820, 269, 285, 323, 146, 35, 54, 104, 190, 238, 241, 252, 284, 323, 328, 350, 356, 370, 529, 623, 624, 285, 323, 431, 653, 661, 285, 323, 356, 83, 124, 134, 285, 319, 323, 356, 519, 507, 509, 187, 146, 41, 122, 323, 356, 529, 530, 285, 323, 327, 356, 81, 123, 287, 390, 269, 22, 28, 131, 285, 323, 356, 548, 549, 495, 158, 323, 488, 495, 146, 323, 356, 529, 1127, 223, 114, 270, 444, 480, 877, 26, 126, 428, 469, 477, 802, 1056, 1095, 1096, 1142, 1056, 1117, 3, 26, 30, 31, 32, 33, 34, 35, 36, 39, 52, 59, 60, 66, 72, 74, 84, 91, 96, 97, 98, 100, 101, 102, 112, 114, 121, 126, 127, 133, 137, 141, 151, 153, 158, 160, 163, 169, 172, 176, 187, 195, 205, 207, 218, 219, 225, 229, 230, 254, 259, 266, 269, 270, 274, 275, 292, 301, 317, 330, 349, 355, 366, 382, 385, 393, 397, 398, 404, 412, 413, 419, 420, 428, 435, 436, 438, 439, 469, 1130, 1144, 1145, 1146, 1147, 1148, 1116, 420, 903, 269, 239, 809, 476, 1127, 1033, 402, 105, 385, 797, 263, 432, 68, 152, 828, 1127, 797, 797, 1127, 346, 158, 1127, 1033, 215, 743, 1127, 477, 587, 1127, 66, 1033, 254, 163, 476, 712, 1127, 488, 35, 897, 1127, 254, 488, 443, 181, 1125, 488, 743, 743, 712, 416, 567, 269, 158, 856, 857, 488, 254, 43, 503, 254, 407, 660, 254, 915, 83, 285, 637, 81, 123, 287, 390, 24, 45, 202, 685, 35, 712, 158, 181, 488, 432, 181, 1125, 181, 613, 1125, 1125, 432, 743, 781, 1133, 1133, 1133, 1127, 158, 635, 49, 103, 200, 252, 345, 146, 57, 329, 480, 534, 146, 476, 146, 429, 1050, 1050, 1050, 476, 1038, 1038, 297, 476, 1040, 146, 63, 64, 1050, 1038, 1035, 441, 462, 476, 1053, 476, 1053, 480, 534, 34, 1034, 476, 107, 179, 240, 243, 347, 457, 476, 1054, 1055, 744, 1038, 443, 146, 480, 534, 146, 480, 181, 742, 181, 743, 181, 743, 146, 480, 534, 1140, 146, 534, 146, 146, 534, 146, 534, 146, 81, 123, 287, 390, 158, 146, 534, 146, 158, 181, 181, 516, 146, 480, 534, 146, 480, 534, 146, 269, 1094, 385, 477, 480, 151, 269, 404, 513, 516, 626, 924, 920, 760, 953, 760, 953, 760, 953, 760, 953, 760, 953, 953, 953, 760, 953, 476, 588, 589, 1141, 588, 26, 106, 129, 160, 165, 215, 216, 305, 337, 343, 350, 385, 388, 407, 766, 1124, 1140, 765, 1127, 187, 480, 943, 1136, 1033, 1097, 35, 1140, 781, 477, 480, 1125, 1127, 223, 1141, 158, 158, 766, 1140, 342, 1141, 516, 269, 476, 1119, 474, 957, 1098, 1056, 1114, 476, 476, 158, 476, 476, 957, 476, 476, 476, 476, 476, 476, 1056, 476, 476, 476, 476, 476, 476, 476, 476, 957, 476, 476, 476, 476, 476, 476, 476, 476, 1056, 1056, 1056, 957, 1056, 1094, 1118, 1136, 476, 1136, 3, 8, 11, 15, 16, 17, 32, 35, 40, 47, 72, 182, 187, 209, 210, 224, 257, 271, 274, 361, 460, 463, 464, 465, 467, 468, 469, 470, 471, 472, 1089, 1091, 1093, 440, 1072, 281, 1056, 207, 480, 966, 476, 1136, 1118, 966, 115, 183, 525, 480, 65, 112, 516, 35, 3, 112, 228, 514, 626, 1052, 1136, 1136, 86, 128, 1068, 95, 112, 510, 511, 513, 626, 112, 510, 223, 1125, 87, 328, 747, 477, 480, 513, 626, 910, 912, 477, 480, 963, 1126, 35, 477, 480, 915, 959, 959, 974, 975, 1056, 959, 155, 251, 985, 213, 252, 311, 359, 418, 26, 980, 1056, 467, 468, 981, 982, 1056, 1058, 994, 995, 979, 978, 976, 977, 158, 997, 264, 999, 976, 994, 1013, 932, 1125, 35, 1141, 356, 1094, 62, 397, 397, 343, 187, 198, 275, 278, 358, 428, 469, 800, 801, 802, 804, 806, 808, 1033, 1142, 397, 431, 397, 343, 1130, 478, 397, 397, 343, 225, 397, 397, 388, 506, 285, 885, 887, 465, 889, 158, 169, 187, 332, 776, 777, 66, 84, 142, 160, 301, 413, 584, 585, 84, 112, 254, 397, 84, 397, 112, 254, 343, 84, 124, 134, 285, 323, 709, 343, 643, 20, 25, 60, 73, 88, 129, 140, 160, 165, 237, 271, 305, 337, 343, 350, 353, 385, 392, 400, 407, 432, 635, 1127, 146, 323, 356, 529, 269, 626, 269, 348, 220, 397, 1141, 397, 259, 626, 116, 208, 343, 354, 399, 508, 743, 329, 356, 812, 821, 477, 795, 800, 397, 419, 388, 1125, 74, 142, 181, 574, 584, 1141, 74, 84, 846, 289, 269, 269, 339, 341, 402, 84, 846, 29, 326, 339, 341, 402, 339, 1125, 159, 193, 264, 743, 476, 397, 397, 180, 476, 538, 234, 388, 416, 441, 538, 84, 480, 4, 4, 285, 187, 146, 120, 323, 356, 529, 420, 420, 253, 1033, 397, 343, 476, 826, 1127, 1125, 269, 397, 397, 343, 821, 385, 385, 397, 397, 385, 712, 106, 356, 520, 397, 490, 520, 269, 397, 397, 343, 821, 1125, 397, 397, 1125, 1035, 626, 53, 625, 626, 626, 104, 238, 241, 53, 397, 488, 245, 343, 488, 252, 624, 397, 397, 259, 1136, 653, 397, 397, 343, 1136, 397, 308, 397, 308, 712, 388, 1011, 289, 289, 84, 397, 846, 343, 397, 397, 538, 538, 743, 743, 743, 743, 1125, 42, 425, 42, 42, 397, 42, 397, 425, 343, 480, 520, 419, 670, 1139, 397, 490, 520, 1125, 397, 343, 285, 323, 311, 324, 352, 512, 877, 1095, 1095, 1096, 477, 13, 14, 480, 972, 973, 475, 481, 1131, 1141, 1125, 209, 1033, 269, 209, 443, 209, 626, 743, 743, 209, 269, 209, 209, 269, 81, 123, 287, 390, 1033, 269, 209, 209, 209, 397, 163, 397, 552, 407, 476, 35, 146, 743, 713, 714, 1144, 24, 885, 1033, 269, 146, 640, 1127, 254, 289, 476, 489, 726, 420, 315, 432, 1125, 26, 385, 439, 816, 489, 146, 1139, 91, 169, 504, 566, 619, 684, 761, 779, 881, 146, 1136, 661, 662, 146, 269, 1136, 1139, 231, 743, 743, 743, 743, 264, 117, 201, 405, 418, 686, 687, 138, 310, 476, 670, 254, 489, 1125, 254, 621, 623, 254, 35, 264, 289, 476, 587, 587, 181, 616, 1125, 158, 181, 782, 1131, 476, 716, 807, 476, 798, 798, 35, 1033, 215, 439, 441, 955, 345, 810, 809, 1033, 1128, 476, 1094, 1135, 745, 1050, 1050, 34, 1034, 395, 395, 1135, 1135, 1033, 474, 474, 1135, 397, 397, 397, 476, 397, 1135, 1038, 796, 797, 1140, 1139, 146, 534, 146, 420, 146, 420, 827, 828, 534, 796, 1140, 796, 1127, 1127, 1033, 745, 1140, 670, 146, 146, 534, 742, 743, 1126, 1127, 1127, 743, 477, 181, 1125, 920, 922, 953, 953, 953, 953, 953, 953, 588, 477, 480, 477, 166, 306, 338, 351, 386, 1126, 742, 105, 353, 796, 1126, 263, 796, 796, 1126, 1124, 1124, 1126, 742, 397, 439, 772, 141, 225, 667, 668, 20, 144, 339, 359, 944, 1011, 258, 945, 477, 480, 927, 397, 1125, 840, 841, 843, 764, 763, 764, 163, 170, 773, 1141, 25, 74, 106, 129, 140, 160, 165, 216, 237, 305, 308, 334, 337, 343, 350, 379, 385, 388, 407, 432, 635, 754, 755, 1094, 1116, 475, 1094, 1098, 1099, 435, 1111, 1112, 1056, 1094, 476, 1135, 1135, 3, 107, 179, 240, 243, 347, 457, 1100, 1101, 1136, 1094, 1094, 1094, 1135, 1135, 1056, 826, 1056, 1102, 339, 467, 468, 476, 1057, 1058, 1091, 1104, 477, 1094, 1056, 1094, 1105, 1056, 52, 163, 219, 398, 1056, 1094, 1108, 1094, 245, 1058, 1056, 1066, 1067, 1068, 245, 1056, 1068, 477, 480, 1135, 1054, 1033, 1056, 1056, 1056, 1056, 1144, 395, 39, 382, 1120, 743, 1056, 476, 957, 1109, 126, 128, 151, 254, 259, 264, 404, 414, 1056, 476, 1056, 397, 47, 182, 187, 224, 361, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 26, 33, 366, 1088, 172, 154, 1073, 339, 476, 1085, 168, 228, 385, 389, 391, 416, 967, 1125, 1123, 163, 1001, 1095, 1001, 1125, 399, 476, 1136, 480, 477, 180, 180, 534, 918, 908, 907, 911, 1056, 477, 237, 254, 964, 918, 916, 480, 36, 121, 420, 790, 339, 340, 467, 468, 982, 984, 1058, 359, 213, 270, 480, 4, 983, 1135, 983, 339, 340, 984, 1124, 258, 363, 946, 995, 977, 420, 941, 112, 283, 476, 933, 956, 35, 1141, 476, 948, 949, 950, 1141, 477, 1139, 1127, 1127, 278, 53, 1142, 477, 802, 804, 801, 804, 1142, 275, 477, 480, 744, 1139, 1127, 1127, 1130, 1139, 1127, 1127, 1139, 1128, 1127, 112, 513, 1137, 334, 419, 763, 343, 169, 763, 476, 1127, 420, 783, 213, 213, 420, 476, 610, 181, 1127, 259, 1139, 1127, 1127, 1056, 259, 1127, 1127, 29, 326, 397, 397, 1127, 397, 644, 239, 809, 476, 743, 743, 1033, 402, 105, 385, 797, 432, 68, 152, 828, 797, 797, 1127, 743, 1127, 743, 346, 158, 1033, 743, 215, 175, 252, 285, 323, 424, 647, 648, 649, 1011, 397, 846, 343, 259, 148, 116, 208, 1139, 1127, 269, 1127, 477, 480, 1138, 1140, 1127, 323, 529, 181, 574, 254, 1033, 1127, 1135, 1141, 1125, 1127, 148, 223, 1127, 26, 419, 1127, 181, 1127, 181, 1141, 341, 402, 341, 402, 223, 1127, 26, 419, 1127, 223, 339, 1125, 22, 131, 356, 654, 655, 656, 657, 1144, 1139, 1127, 112, 164, 255, 420, 537, 540, 541, 1144, 1127, 70, 267, 1127, 532, 397, 388, 1125, 269, 397, 846, 343, 1129, 1141, 1129, 480, 477, 480, 1139, 1127, 851, 852, 1144, 269, 323, 397, 678, 148, 1139, 1127, 1127, 1012, 1012, 1139, 1127, 1012, 1128, 1138, 3, 83, 136, 193, 291, 411, 419, 422, 491, 148, 1139, 1127, 1127, 323, 1139, 1127, 323, 356, 529, 623, 626, 743, 1127, 626, 743, 1127, 626, 1139, 1127, 1139, 1127, 1127, 1139, 816, 1127, 860, 861, 1144, 1127, 323, 356, 529, 530, 1125, 1125, 1127, 1127, 1127, 1127, 1139, 1127, 22, 28, 131, 285, 323, 356, 285, 323, 356, 712, 323, 356, 323, 356, 120, 323, 1025, 1141, 181, 722, 1141, 181, 1141, 1139, 1127, 1127, 1136, 1127, 22, 549, 353, 1138, 323, 356, 529, 1127, 1127, 397, 397, 79, 410, 311, 480, 972, 972, 972, 1056, 1056, 428, 1096, 477, 1056, 1117, 259, 751, 1136, 35, 129, 743, 751, 751, 209, 420, 420, 751, 743, 751, 751, 743, 215, 743, 751, 751, 751, 307, 553, 553, 191, 385, 683, 1056, 1033, 743, 477, 480, 465, 686, 576, 1144, 1127, 57, 163, 343, 431, 641, 648, 649, 146, 264, 224, 568, 570, 572, 574, 581, 584, 23, 187, 334, 383, 491, 492, 158, 1129, 432, 1125, 35, 679, 386, 1012, 712, 502, 1141, 503, 274, 567, 1127, 160, 743, 1094, 308, 1136, 712, 712, 712, 712, 264, 269, 274, 476, 712, 1023, 1024, 1025, 353, 146, 476, 146, 146, 145, 956, 743, 264, 568, 1141, 420, 605, 439, 539, 254, 35, 587, 1136, 254, 269, 3, 717, 718, 712, 477, 799, 800, 805, 35, 215, 331, 400, 438, 811, 812, 813, 811, 269, 215, 516, 178, 178, 158, 534, 35, 1094, 477, 477, 534, 474, 459, 459, 477, 477, 1135, 475, 1135, 477, 179, 240, 1055, 240, 1055, 1055, 1135, 243, 477, 534, 742, 743, 1129, 743, 1129, 534, 534, 534, 534, 215, 534, 353, 158, 516, 534, 534, 269, 534, 254, 477, 589, 187, 187, 187, 187, 187, 443, 1126, 626, 627, 172, 767, 768, 1139, 23, 773, 397, 476, 163, 144, 359, 144, 359, 339, 418, 242, 1033, 1139, 439, 614, 781, 781, 163, 269, 767, 53, 534, 809, 1033, 402, 385, 797, 263, 432, 797, 797, 1033, 215, 743, 1127, 477, 475, 475, 480, 1056, 133, 1112, 1113, 35, 477, 1056, 477, 477, 477, 163, 477, 477, 477, 477, 477, 480, 477, 292, 1103, 477, 476, 1057, 1057, 1094, 11, 15, 16, 17, 187, 209, 271, 463, 464, 465, 467, 468, 469, 470, 471, 472, 1091, 1057, 477, 477, 158, 163, 1106, 1107, 477, 35, 1108, 1094, 1108, 1108, 163, 477, 477, 1144, 290, 1070, 35, 477, 480, 1056, 1144, 480, 1056, 1119, 1056, 477, 459, 1057, 1057, 139, 1094, 163, 126, 128, 151, 259, 264, 404, 414, 476, 139, 826, 1056, 382, 1120, 1056, 1109, 1056, 397, 476, 957, 476, 476, 280, 1077, 476, 1094, 389, 391, 389, 391, 1125, 968, 968, 968, 218, 340, 456, 476, 957, 1002, 1003, 1004, 1011, 1016, 1026, 1059, 1061, 1062, 1141, 436, 1021, 972, 1021, 878, 1135, 1054, 511, 918, 237, 476, 975, 271, 1089, 1092, 461, 791, 4, 1135, 984, 270, 418, 981, 233, 1002, 436, 1022, 426, 384, 419, 934, 935, 936, 1141, 269, 937, 1141, 950, 951, 480, 1001, 465, 1119, 808, 744, 804, 804, 53, 806, 471, 1140, 1140, 269, 1126, 272, 269, 1056, 585, 1129, 476, 476, 476, 610, 191, 588, 702, 146, 534, 397, 1139, 1127, 516, 1127, 1033, 1127, 443, 743, 743, 743, 743, 81, 123, 287, 390, 1033, 1127, 630, 1127, 175, 424, 397, 397, 630, 647, 653, 323, 356, 529, 1127, 1127, 1127, 199, 1127, 259, 800, 284, 356, 397, 254, 146, 273, 651, 702, 356, 22, 131, 327, 328, 356, 533, 542, 543, 653, 847, 1127, 348, 146, 534, 146, 534, 1127, 1127, 1127, 1127, 348, 348, 223, 656, 657, 656, 477, 480, 658, 1136, 191, 477, 480, 465, 478, 1139, 1127, 323, 356, 529, 148, 1127, 1127, 1127, 285, 323, 356, 22, 131, 285, 323, 356, 1033, 253, 1033, 477, 480, 465, 1125, 397, 1140, 420, 675, 1127, 225, 291, 259, 1136, 291, 1140, 417, 1127, 397, 397, 343, 480, 816, 284, 356, 84, 397, 846, 343, 112, 158, 544, 397, 397, 235, 235, 235, 397, 397, 343, 397, 397, 343, 397, 343, 397, 343, 269, 397, 534, 1033, 254, 1136, 356, 847, 146, 534, 397, 397, 1127, 397, 343, 1139, 1127, 477, 477, 477, 1096, 475, 1033, 743, 209, 751, 1129, 1129, 209, 209, 1127, 209, 373, 374, 554, 1136, 554, 175, 477, 477, 163, 712, 714, 253, 271, 467, 468, 626, 715, 804, 1092, 1136, 1148, 269, 66, 72, 84, 112, 114, 167, 195, 254, 259, 301, 317, 413, 577, 578, 580, 145, 435, 488, 516, 1127, 516, 651, 1125, 1125, 1125, 477, 480, 1140, 172, 334, 1140, 1135, 407, 1125, 587, 3, 158, 680, 43, 503, 325, 385, 660, 105, 915, 163, 860, 539, 588, 1125, 687, 719, 720, 1136, 477, 480, 1127, 158, 588, 1125, 613, 1125, 1127, 614, 476, 569, 1125, 477, 1129, 439, 441, 606, 538, 35, 146, 956, 605, 397, 146, 1011, 465, 477, 480, 477, 480, 112, 465, 814, 1136, 516, 385, 803, 804, 158, 815, 813, 117, 201, 349, 418, 869, 1127, 175, 956, 1033, 477, 1135, 1053, 1053, 475, 475, 477, 534, 420, 534, 420, 534, 1127, 1127, 670, 534, 743, 146, 343, 343, 343, 343, 343, 1126, 480, 1139, 439, 480, 769, 272, 1012, 353, 144, 144, 105, 252, 1125, 1127, 1140, 766, 534, 1139, 209, 209, 209, 626, 209, 209, 209, 209, 209, 1098, 393, 1056, 137, 1033, 477, 1056, 1056, 1056, 1106, 477, 1094, 480, 1033, 1057, 1057, 1057, 1057, 126, 128, 254, 264, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1056, 1056, 1107, 1106, 1033, 477, 477, 477, 1094, 477, 480, 53, 1058, 1071, 477, 1144, 1067, 298, 378, 1069, 477, 480, 431, 1063, 35, 477, 1136, 1056, 32, 32, 1056, 477, 1056, 163, 476, 1097, 1056, 477, 139, 1057, 1057, 139, 139, 1056, 1056, 973, 436, 476, 1078, 1141, 477, 1094, 480, 968, 968, 968, 968, 1125, 1125, 1125, 957, 1016, 1026, 163, 476, 957, 1003, 1004, 35, 1005, 1006, 1141, 480, 92, 164, 197, 212, 222, 248, 333, 1008, 1006, 35, 1005, 1007, 1141, 1006, 462, 1020, 1118, 1056, 172, 986, 477, 986, 477, 927, 476, 791, 155, 217, 270, 95, 1056, 330, 939, 425, 477, 480, 1119, 82, 939, 477, 480, 949, 1022, 1056, 477, 471, 808, 407, 166, 338, 344, 351, 386, 408, 778, 158, 778, 477, 476, 592, 593, 785, 1061, 1141, 588, 588, 702, 1131, 477, 114, 195, 252, 254, 703, 1127, 1127, 35, 1127, 420, 420, 743, 743, 743, 743, 215, 744, 1139, 1127, 397, 846, 343, 397, 199, 53, 388, 1127, 146, 574, 476, 576, 372, 167, 180, 254, 538, 488, 105, 167, 254, 372, 375, 538, 624, 356, 543, 407, 1127, 1141, 348, 655, 1127, 541, 715, 1144, 284, 356, 397, 846, 343, 1127, 397, 397, 397, 343, 165, 271, 375, 724, 725, 165, 271, 732, 733, 397, 397, 343, 477, 477, 477, 852, 253, 626, 804, 853, 1092, 1136, 1148, 323, 1127, 476, 439, 676, 1137, 1136, 1136, 1136, 1127, 1127, 1127, 861, 53, 388, 1127, 1127, 1127, 1127, 426, 1127, 1127, 158, 158, 325, 158, 181, 1139, 1127, 1127, 1139, 1127, 1127, 1127, 1127, 1127, 1127, 148, 1127, 72, 535, 146, 24, 45, 407, 1141, 1127, 1136, 653, 1127, 1127, 972, 477, 209, 751, 209, 209, 751, 751, 209, 751, 488, 420, 559, 560, 630, 702, 439, 441, 743, 1125, 476, 743, 1127, 1057, 29, 53, 579, 115, 183, 114, 259, 213, 1125, 816, 165, 305, 698, 705, 706, 1141, 640, 289, 476, 569, 582, 194, 599, 572, 1140, 1140, 1033, 476, 539, 26, 117, 201, 349, 418, 681, 397, 677, 1139, 181, 1125, 662, 443, 269, 1002, 816, 318, 688, 477, 480, 1025, 651, 670, 477, 621, 35, 264, 289, 476, 929, 571, 573, 575, 584, 1141, 289, 600, 601, 569, 599, 538, 267, 269, 607, 956, 616, 614, 539, 1136, 1131, 783, 715, 3, 718, 805, 1056, 1056, 480, 476, 811, 407, 480, 397, 476, 630, 477, 475, 1129, 1129, 534, 353, 534, 1126, 1126, 1126, 1126, 1126, 626, 169, 768, 477, 1127, 105, 773, 163, 259, 756, 1136, 756, 756, 209, 756, 756, 756, 756, 756, 1056, 477, 477, 1107, 477, 1056, 163, 126, 128, 264, 476, 477, 446, 1065, 1094, 316, 425, 53, 1071, 1058, 437, 437, 477, 1056, 252, 1056, 480, 1064, 1035, 1056, 1056, 1056, 1097, 477, 1056, 32, 32, 1056, 1056, 139, 477, 477, 1056, 1079, 1141, 477, 1056, 1125, 1125, 1125, 1125, 1006, 1007, 1006, 476, 451, 1058, 477, 1141, 476, 1003, 212, 279, 1009, 1003, 1009, 212, 1008, 1009, 212, 387, 1014, 476, 1141, 476, 276, 53, 176, 993, 1136, 993, 1136, 477, 826, 264, 1122, 956, 283, 956, 936, 269, 476, 938, 465, 950, 939, 407, 477, 397, 763, 163, 702, 1056, 477, 480, 439, 72, 788, 788, 477, 477, 188, 590, 115, 183, 193, 114, 422, 534, 1033, 1129, 1129, 1127, 1127, 1127, 1127, 1127, 1140, 1127, 574, 652, 656, 1137, 579, 181, 259, 626, 579, 259, 1137, 1141, 1033, 534, 534, 465, 53, 388, 1127, 1127, 1127, 1127, 1139, 1127, 1127, 1135, 1135, 1033, 480, 1135, 1135, 480, 1139, 1127, 1127, 397, 1056, 66, 1140, 1127, 397, 397, 163, 187, 439, 1126, 1126, 743, 1126, 146, 1127, 743, 1136, 1136, 1033, 534, 534, 477, 209, 751, 751, 751, 751, 476, 555, 556, 488, 119, 165, 198, 165, 163, 701, 1056, 254, 578, 112, 35, 816, 587, 420, 609, 1133, 32, 145, 187, 264, 568, 544, 143, 189, 476, 353, 420, 588, 35, 1140, 675, 503, 254, 476, 160, 1127, 1094, 250, 268, 689, 690, 691, 158, 694, 1136, 353, 539, 145, 956, 743, 264, 568, 614, 477, 480, 439, 576, 53, 605, 544, 600, 78, 388, 608, 439, 882, 35, 608, 163, 269, 476, 1136, 802, 817, 818, 1142, 1033, 158, 1125, 163, 397, 837, 196, 631, 534, 534, 534, 1127, 272, 207, 534, 767, 756, 477, 1057, 163, 476, 1097, 476, 477, 480, 477, 1071, 477, 425, 369, 477, 477, 477, 1056, 1056, 1056, 477, 289, 1080, 477, 1017, 1018, 1061, 476, 1070, 1005, 476, 1126, 1003, 269, 420, 1010, 1003, 212, 1003, 1133, 1024, 476, 1024, 1141, 94, 173, 336, 476, 987, 988, 989, 990, 991, 992, 1056, 1056, 438, 1074, 1074, 477, 953, 934, 84, 784, 785, 127, 1056, 767, 269, 767, 477, 590, 593, 271, 826, 743, 743, 789, 789, 317, 590, 476, 816, 477, 397, 356, 945, 477, 480, 35, 146, 535, 715, 1140, 1127, 397, 476, 797, 826, 828, 725, 476, 476, 733, 1127, 477, 476, 356, 945, 1127, 1127, 476, 476, 476, 439, 462, 900, 325, 900, 900, 158, 535, 751, 561, 562, 1144, 49, 93, 118, 135, 139, 159, 162, 177, 259, 309, 557, 555, 1136, 797, 35, 833, 833, 1125, 702, 477, 180, 476, 609, 236, 591, 191, 476, 706, 698, 476, 1125, 477, 353, 26, 77, 85, 113, 167, 180, 192, 372, 375, 583, 583, 1124, 1127, 1129, 477, 956, 676, 146, 105, 651, 163, 690, 339, 385, 692, 132, 695, 435, 697, 1127, 35, 1127, 614, 569, 1125, 477, 573, 273, 3, 602, 1145, 606, 600, 605, 117, 131, 298, 1127, 58, 66, 228, 956, 743, 1011, 784, 804, 477, 480, 407, 1021, 367, 367, 477, 630, 252, 424, 632, 633, 1127, 534, 1057, 1097, 477, 1066, 1094, 252, 458, 53, 972, 477, 480, 35, 1019, 112, 1031, 1032, 1057, 75, 1126, 477, 1056, 476, 1003, 1010, 476, 477, 1024, 477, 476, 357, 476, 477, 480, 1075, 1076, 1141, 425, 1127, 477, 480, 255, 418, 769, 778, 534, 788, 816, 476, 790, 790, 1125, 816, 588, 609, 1127, 388, 656, 180, 420, 536, 356, 945, 1127, 1097, 158, 728, 728, 1097, 1097, 1056, 388, 1094, 1094, 545, 546, 1143, 742, 743, 742, 743, 1126, 534, 477, 480, 469, 476, 513, 563, 626, 897, 1136, 897, 254, 259, 309, 897, 897, 1021, 833, 38, 185, 158, 252, 586, 476, 622, 1056, 164, 288, 362, 269, 595, 596, 597, 388, 477, 1133, 5, 707, 569, 599, 1127, 477, 651, 152, 727, 539, 882, 1125, 443, 1002, 897, 339, 371, 696, 476, 145, 651, 956, 929, 600, 569, 599, 576, 476, 607, 605, 606, 340, 340, 66, 272, 66, 614, 783, 477, 811, 817, 1033, 127, 439, 439, 424, 630, 651, 477, 477, 477, 425, 1094, 174, 310, 340, 1081, 1020, 1017, 476, 1057, 477, 480, 35, 1027, 1028, 1141, 477, 1126, 1094, 477, 1094, 476, 1094, 988, 480, 35, 956, 1021, 785, 356, 163, 789, 609, 826, 791, 791, 587, 609, 477, 702, 1127, 622, 1056, 388, 477, 275, 346, 314, 729, 729, 477, 477, 477, 1127, 477, 477, 477, 480, 1135, 900, 562, 513, 564, 565, 1136, 1136, 259, 588, 469, 588, 1136, 1136, 132, 193, 623, 477, 117, 418, 269, 597, 269, 596, 1127, 476, 477, 480, 544, 353, 651, 743, 35, 35, 476, 1127, 693, 1141, 1056, 698, 882, 614, 605, 544, 600, 476, 603, 604, 1061, 1141, 608, 606, 607, 272, 272, 476, 188, 786, 27, 202, 870, 165, 165, 47, 95, 409, 1056, 1082, 1083, 1082, 1082, 477, 1024, 480, 1032, 1144, 477, 480, 158, 1033, 477, 477, 477, 987, 477, 1076, 1078, 948, 767, 790, 436, 594, 477, 591, 702, 945, 1127, 797, 53, 945, 397, 545, 743, 477, 480, 588, 339, 477, 376, 57, 252, 329, 356, 598, 598, 477, 5, 353, 1127, 724, 956, 651, 477, 1133, 606, 600, 605, 1056, 477, 480, 788, 788, 607, 608, 784, 476, 539, 255, 476, 865, 867, 871, 931, 940, 947, 956, 797, 797, 1083, 339, 157, 296, 157, 296, 142, 1084, 1084, 1084, 477, 1058, 1028, 276, 3, 112, 254, 259, 1029, 1030, 324, 1015, 477, 1021, 534, 791, 476, 702, 595, 945, 743, 476, 565, 697, 21, 112, 259, 1127, 651, 882, 476, 607, 605, 606, 477, 604, 789, 789, 608, 477, 785, 787, 608, 866, 867, 868, 957, 958, 480, 480, 32, 95, 172, 252, 394, 1070, 1057, 1057, 259, 1030, 476, 1056, 702, 1094, 145, 651, 4, 699, 700, 1135, 1136, 1144, 608, 606, 607, 788, 786, 477, 480, 1021, 477, 479, 397, 163, 1083, 339, 277, 75, 1056, 477, 477, 698, 477, 480, 607, 608, 789, 539, 785, 868, 367, 367, 1027, 477, 1133, 700, 608, 608, 439, 439, 477, 476, 1021, 165, 165, 699, 797, 797, 477 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 482, 483, 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 488, 488, 488, 489, 489, 490, 490, 491, 491, 491, 491, 491, 491, 491, 491, 491, 492, 492, 492, 492, 492, 492, 493, 494, 494, 495, 495, 496, 496, 496, 496, 497, 497, 497, 497, 497, 497, 498, 499, 500, 500, 501, 501, 501, 501, 502, 502, 503, 503, 504, 504, 504, 504, 504, 504, 505, 505, 505, 506, 506, 506, 507, 507, 507, 507, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 509, 509, 510, 510, 511, 511, 512, 512, 512, 512, 513, 513, 513, 513, 514, 514, 514, 514, 514, 514, 514, 515, 515, 515, 516, 516, 517, 518, 518, 518, 518, 519, 519, 520, 520, 521, 521, 522, 522, 522, 522, 522, 523, 524, 524, 525, 525, 526, 527, 527, 527, 527, 527, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 529, 529, 530, 530, 531, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 533, 533, 534, 534, 534, 535, 535, 536, 536, 537, 537, 537, 537, 538, 539, 539, 540, 540, 541, 541, 541, 541, 542, 542, 543, 543, 543, 543, 544, 544, 544, 544, 545, 546, 546, 547, 548, 548, 549, 549, 549, 549, 550, 550, 551, 551, 552, 552, 553, 553, 554, 554, 554, 555, 555, 556, 556, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 558, 558, 559, 559, 560, 560, 561, 561, 562, 563, 563, 563, 563, 563, 564, 564, 565, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 569, 569, 570, 570, 571, 571, 572, 572, 572, 573, 573, 574, 575, 575, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 585, 585, 585, 585, 586, 586, 587, 587, 588, 588, 589, 590, 590, 591, 591, 591, 591, 592, 592, 593, 593, 594, 594, 595, 595, 595, 595, 595, 596, 597, 598, 598, 598, 598, 598, 599, 599, 600, 600, 601, 602, 602, 603, 603, 604, 604, 604, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 609, 609, 610, 611, 611, 612, 612, 613, 614, 614, 614, 615, 615, 616, 617, 617, 618, 619, 619, 620, 620, 621, 621, 622, 622, 623, 623, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 625, 625, 626, 626, 626, 626, 627, 627, 628, 628, 629, 629, 630, 630, 631, 631, 632, 632, 633, 633, 634, 634, 635, 635, 636, 637, 637, 638, 638, 639, 639, 640, 640, 641, 641, 641, 641, 642, 643, 643, 644, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 646, 647, 647, 647, 647, 648, 648, 649, 649, 650, 650, 651, 651, 652, 652, 653, 654, 654, 655, 655, 655, 655, 656, 657, 658, 659, 659, 660, 660, 661, 661, 662, 662, 663, 663, 663, 664, 664, 664, 664, 665, 665, 666, 667, 667, 668, 668, 669, 669, 670, 670, 671, 671, 672, 673, 674, 675, 675, 676, 676, 677, 677, 678, 678, 679, 679, 680, 680, 681, 681, 681, 681, 681, 682, 683, 683, 684, 684, 685, 685, 685, 686, 686, 687, 687, 687, 687, 687, 688, 688, 689, 689, 690, 691, 691, 692, 692, 693, 694, 694, 695, 695, 696, 696, 697, 697, 698, 698, 699, 699, 699, 700, 700, 700, 700, 701, 701, 702, 702, 703, 703, 703, 703, 703, 703, 704, 704, 705, 705, 706, 707, 707, 708, 709, 709, 709, 709, 710, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 712, 713, 713, 714, 714, 715, 715, 715, 715, 715, 715, 716, 717, 717, 718, 719, 719, 720, 720, 721, 721, 721, 721, 722, 722, 723, 724, 724, 725, 725, 725, 725, 725, 726, 726, 727, 727, 728, 728, 728, 729, 729, 730, 731, 731, 732, 732, 733, 733, 734, 734, 735, 735, 736, 737, 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 740, 740, 740, 740, 740, 740, 740, 741, 741, 741, 742, 742, 743, 743, 744, 744, 745, 745, 746, 747, 747, 747, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 751, 751, 752, 752, 752, 752, 752, 752, 752, 752, 752, 753, 753, 754, 754, 754, 754, 754, 754, 755, 755, 755, 755, 755, 755, 755, 755, 756, 756, 757, 757, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 759, 760, 760, 761, 762, 762, 763, 763, 763, 763, 763, 764, 764, 765, 765, 765, 765, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 767, 767, 768, 768, 769, 769, 770, 771, 771, 772, 772, 773, 773, 774, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 778, 778, 778, 779, 779, 780, 780, 781, 781, 782, 782, 783, 783, 784, 784, 785, 785, 785, 786, 786, 787, 787, 788, 788, 789, 789, 790, 790, 790, 791, 791, 791, 792, 792, 792, 792, 793, 793, 794, 794, 795, 795, 796, 796, 797, 797, 797, 797, 798, 798, 799, 799, 800, 800, 800, 800, 800, 801, 801, 801, 801, 801, 802, 803, 804, 804, 804, 805, 805, 805, 806, 807, 807, 807, 807, 808, 808, 809, 810, 810, 811, 811, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 813, 813, 813, 813, 813, 814, 814, 815, 815, 816, 816, 817, 818, 818, 819, 819, 819, 820, 820, 821, 821, 822, 822, 822, 822, 822, 822, 823, 823, 824, 824, 825, 825, 825, 825, 826, 826, 827, 827, 828, 829, 830, 830, 831, 831, 832, 832, 832, 833, 833, 833, 834, 835, 835, 836, 837, 837, 837, 837, 838, 839, 839, 839, 839, 840, 840, 841, 841, 841, 842, 842, 843, 844, 844, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 846, 846, 847, 847, 848, 848, 848, 848, 848, 848, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 850, 851, 851, 852, 852, 853, 853, 853, 853, 853, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 855, 856, 856, 857, 857, 858, 858, 858, 858, 859, 860, 860, 861, 862, 862, 862, 862, 862, 862, 863, 863, 864, 865, 865, 865, 866, 866, 867, 867, 867, 867, 867, 868, 868, 869, 869, 869, 869, 870, 870, 870, 871, 872, 872, 873, 874, 874, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 876, 876, 876, 877, 877, 877, 877, 877, 878, 878, 878, 879, 879, 880, 880, 880, 881, 881, 881, 881, 882, 882, 882, 882, 883, 884, 885, 885, 886, 886, 887, 887, 887, 888, 888, 888, 888, 888, 888, 888, 889, 889, 890, 890, 890, 891, 892, 892, 893, 894, 894, 895, 896, 896, 896, 896, 896, 896, 896, 897, 897, 898, 899, 899, 899, 899, 899, 899, 900, 900, 901, 902, 902, 902, 903, 903, 904, 904, 905, 905, 906, 906, 907, 907, 908, 909, 909, 910, 910, 910, 911, 911, 912, 912, 913, 913, 914, 914, 915, 915, 916, 917, 917, 918, 918, 919, 919, 919, 919, 920, 920, 920, 920, 920, 920, 920, 920, 920, 921, 921, 922, 923, 923, 924, 924, 924, 925, 926, 926, 927, 927, 927, 927, 928, 928, 928, 929, 929, 930, 930, 930, 930, 931, 932, 932, 933, 933, 933, 933, 933, 934, 934, 935, 935, 936, 937, 937, 937, 938, 938, 938, 939, 939, 940, 941, 941, 942, 943, 943, 944, 944, 944, 944, 944, 944, 944, 944, 945, 945, 946, 946, 946, 947, 948, 948, 949, 949, 950, 951, 951, 952, 953, 954, 954, 954, 954, 954, 955, 955, 955, 956, 956, 957, 957, 958, 958, 958, 958, 958, 958, 958, 958, 959, 959, 960, 960, 960, 960, 960, 960, 960, 961, 961, 961, 962, 962, 963, 964, 964, 964, 965, 965, 966, 966, 967, 967, 967, 967, 967, 967, 967, 967, 967, 968, 968, 969, 969, 969, 970, 970, 971, 971, 972, 972, 973, 974, 974, 975, 975, 976, 976, 976, 976, 977, 977, 978, 978, 978, 978, 979, 979, 980, 980, 981, 982, 982, 982, 983, 983, 984, 984, 985, 985, 986, 986, 987, 987, 988, 988, 988, 988, 988, 989, 990, 991, 992, 993, 993, 994, 994, 995, 995, 996, 996, 997, 998, 998, 998, 998, 999, 999, 1000, 1000, 1001, 1001, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1004, 1005, 1005, 1005, 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1007, 1008, 1008, 1008, 1008, 1009, 1009, 1010, 1010, 1011, 1011, 1011, 1011, 1012, 1012, 1013, 1013, 1013, 1014, 1015, 1015, 1016, 1016, 1017, 1018, 1018, 1019, 1019, 1020, 1020, 1021, 1021, 1022, 1022, 1022, 1023, 1023, 1024, 1024, 1025, 1026, 1026, 1027, 1027, 1028, 1028, 1028, 1029, 1029, 1030, 1030, 1030, 1030, 1031, 1031, 1032, 1032, 1033, 1033, 1033, 1033, 1033, 1033, 1034, 1034, 1034, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1036, 1036, 1036, 1036, 1037, 1037, 1038, 1038, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1040, 1040, 1041, 1041, 1042, 1042, 1043, 1044, 1045, 1045, 1046, 1046, 1047, 1048, 1049, 1049, 1049, 1049, 1049, 1049, 1050, 1050, 1051, 1051, 1051, 1051, 1052, 1053, 1053, 1053, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1055, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1061, 1061, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1064, 1064, 1064, 1064, 1065, 1066, 1066, 1067, 1067, 1068, 1068, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1071, 1071, 1072, 1072, 1073, 1073, 1074, 1074, 1075, 1075, 1076, 1077, 1077, 1077, 1078, 1079, 1079, 1080, 1080, 1081, 1081, 1081, 1081, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1084, 1084, 1084, 1084, 1084, 1085, 1085, 1085, 1086, 1086, 1087, 1088, 1088, 1088, 1089, 1089, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1092, 1092, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1094, 1095, 1095, 1096, 1096, 1096, 1097, 1097, 1098, 1098, 1098, 1099, 1099, 1100, 1100, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102, 1103, 1104, 1104, 1105, 1105, 1105, 1105, 1105, 1105, 1106, 1107, 1108, 1108, 1108, 1109, 1109, 1110, 1111, 1111, 1112, 1113, 1113, 1114, 1114, 1115, 1115, 1116, 1116, 1116, 1116, 1117, 1117, 1118, 1118, 1119, 1119, 1120, 1120, 1121, 1121, 1122, 1122, 1123, 1123, 1123, 1123, 1124, 1124, 1125, 1125, 1126, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1135, 1136, 1137, 1137, 1137, 1138, 1139, 1139, 1139, 1140, 1140, 1141, 1141, 1141, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 2, 5, 1, 1, 0, 2, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 5, 5, 5, 0, 3, 5, 5, 5, 5, 3, 5, 3, 5, 3, 5, 5, 6, 1, 1, 6, 4, 9, 7, 1, 0, 2, 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 5, 1, 3, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 3, 4, 3, 2, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 6, 4, 6, 10, 13, 4, 6, 4, 10, 13, 4, 6, 4, 6, 5, 7, 11, 14, 1, 3, 4, 3, 3, 2, 5, 3, 6, 4, 6, 6, 6, 6, 5, 5, 6, 9, 4, 5, 7, 6, 4, 8, 4, 2, 4, 3, 6, 4, 3, 3, 3, 2, 2, 3, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, 2, 3, 2, 2, 3, 3, 2, 2, 3, 4, 4, 4, 5, 1, 3, 2, 1, 1, 0, 2, 0, 2, 0, 1, 1, 1, 3, 3, 2, 0, 1, 3, 3, 1, 5, 3, 1, 2, 1, 3, 2, 3, 6, 6, 10, 1, 2, 1, 3, 4, 1, 3, 4, 6, 4, 8, 2, 2, 11, 9, 1, 1, 1, 0, 1, 1, 1, 1, 3, 2, 0, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 4, 3, 2, 1, 0, 3, 0, 1, 0, 1, 3, 2, 1, 1, 1, 3, 0, 1, 3, 1, 13, 16, 12, 15, 14, 17, 1, 1, 2, 2, 2, 2, 1, 0, 1, 0, 3, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, 2, 4, 2, 0, 3, 1, 1, 2, 2, 1, 3, 4, 5, 2, 5, 7, 5, 1, 2, 1, 2, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 8, 3, 9, 4, 10, 11, 2, 0, 3, 0, 1, 3, 1, 4, 0, 2, 2, 2, 0, 1, 3, 3, 6, 4, 0, 1, 1, 2, 2, 0, 3, 3, 2, 1, 1, 2, 2, 4, 0, 1, 0, 6, 1, 1, 1, 3, 3, 3, 5, 2, 0, 2, 2, 0, 3, 4, 4, 0, 2, 0, 4, 0, 3, 8, 11, 7, 10, 6, 2, 3, 0, 8, 11, 5, 1, 0, 6, 5, 8, 4, 6, 1, 0, 3, 0, 1, 2, 2, 2, 1, 2, 3, 2, 2, 2, 2, 3, 3, 3, 1, 3, 1, 0, 1, 2, 2, 1, 1, 3, 6, 10, 1, 0, 1, 2, 2, 0, 2, 2, 1, 0, 5, 7, 1, 0, 7, 2, 0, 3, 5, 5, 8, 2, 0, 2, 2, 2, 1, 5, 2, 0, 2, 7, 6, 10, 6, 6, 6, 6, 7, 6, 9, 9, 6, 6, 6, 7, 6, 8, 8, 8, 8, 6, 6, 7, 7, 8, 6, 9, 6, 7, 2, 2, 2, 2, 1, 2, 1, 0, 7, 6, 4, 0, 1, 3, 4, 1, 3, 1, 2, 2, 2, 2, 1, 1, 10, 13, 2, 0, 2, 2, 1, 0, 5, 4, 4, 11, 14, 12, 15, 5, 7, 11, 2, 1, 4, 0, 8, 11, 1, 1, 7, 9, 8, 10, 8, 4, 0, 5, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 1, 1, 1, 1, 8, 1, 1, 16, 20, 1, 1, 2, 1, 3, 1, 1, 1, 3, 1, 2, 0, 1, 2, 4, 1, 1, 1, 1, 1, 3, 0, 1, 0, 1, 1, 4, 0, 1, 1, 1, 3, 0, 1, 1, 1, 1, 2, 0, 0, 2, 2, 1, 2, 2, 2, 2, 11, 13, 1, 3, 5, 1, 3, 5, 1, 2, 2, 1, 8, 6, 5, 4, 4, 3, 7, 8, 6, 6, 6, 6, 6, 4, 7, 5, 8, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 0, 1, 3, 7, 9, 9, 8, 3, 0, 13, 1, 3, 5, 5, 3, 6, 2, 1, 0, 2, 0, 2, 4, 0, 1, 0, 6, 8, 8, 1, 3, 5, 5, 7, 9, 7, 9, 5, 6, 6, 4, 6, 4, 6, 8, 4, 6, 4, 6, 5, 7, 1, 1, 1, 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 3, 1, 3, 5, 2, 2, 0, 6, 6, 6, 6, 6, 6, 6, 8, 9, 8, 6, 6, 8, 9, 8, 9, 9, 7, 10, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 3, 3, 3, 2, 1, 2, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 8, 9, 8, 8, 2, 0, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 4, 4, 1, 1, 1, 0, 7, 7, 10, 1, 1, 2, 4, 5, 1, 3, 2, 2, 2, 2, 1, 2, 2, 4, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 5, 5, 5, 5, 5, 1, 3, 1, 2, 3, 0, 6, 6, 9, 3, 0, 3, 0, 5, 2, 0, 3, 3, 3, 7, 7, 10, 1, 1, 1, 1, 1, 1, 15, 18, 1, 0, 1, 0, 1, 0, 2, 0, 1, 3, 5, 5, 7, 4, 0, 1, 3, 2, 0, 1, 0, 1, 1, 0, 2, 2, 0, 8, 11, 6, 6, 2, 0, 3, 2, 1, 3, 1, 3, 2, 1, 1, 2, 3, 2, 1, 3, 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 4, 5, 1, 3, 3, 1, 3, 3, 5, 6, 1, 3, 2, 1, 3, 1, 2, 4, 5, 1, 1, 1, 1, 3, 3, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 3, 3, 5, 2, 0, 2, 1, 3, 5, 5, 5, 1, 2, 1, 0, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 3, 5, 5, 5, 1, 3, 1, 3, 2, 2, 1, 2, 1, 2, 11, 10, 10, 2, 2, 0, 9, 2, 0, 10, 11, 11, 5, 5, 8, 4, 4, 7, 7, 1, 1, 1, 1, 1, 1, 3, 1, 5, 5, 6, 6, 6, 6, 6, 8, 8, 6, 6, 7, 9, 9, 8, 10, 6, 6, 6, 6, 6, 6, 6, 8, 6, 8, 6, 8, 7, 9, 6, 8, 7, 9, 8, 10, 9, 11, 8, 10, 9, 11, 8, 8, 7, 6, 6, 6, 6, 8, 8, 8, 8, 6, 9, 1, 0, 2, 0, 7, 7, 7, 9, 8, 7, 6, 6, 6, 6, 6, 6, 6, 9, 9, 6, 6, 6, 8, 6, 8, 8, 8, 8, 6, 8, 6, 8, 7, 9, 7, 9, 6, 7, 1, 3, 3, 3, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 6, 7, 7, 6, 9, 9, 6, 6, 6, 6, 6, 6, 8, 8, 8, 6, 7, 6, 6, 5, 1, 0, 3, 3, 5, 6, 6, 6, 8, 1, 3, 1, 5, 5, 6, 7, 4, 4, 4, 6, 13, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 3, 2, 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 3, 2, 5, 4, 3, 3, 3, 1, 1, 0, 3, 2, 2, 1, 2, 1, 3, 2, 1, 0, 2, 3, 0, 9, 11, 12, 14, 3, 4, 4, 0, 2, 5, 1, 0, 1, 2, 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 0, 5, 4, 6, 4, 3, 5, 5, 4, 4, 6, 4, 6, 6, 5, 7, 9, 6, 1, 0, 6, 11, 11, 11, 13, 9, 11, 1, 1, 10, 4, 2, 5, 2, 0, 6, 5, 3, 5, 1, 3, 1, 1, 2, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 2, 1, 3, 1, 0, 2, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 0, 5, 3, 0, 1, 1, 1, 1, 3, 9, 12, 3, 0, 2, 3, 2, 3, 7, 1, 3, 1, 4, 4, 7, 2, 1, 1, 1, 3, 2, 8, 5, 0, 4, 3, 0, 2, 0, 7, 2, 0, 5, 3, 0, 2, 2, 2, 3, 1, 3, 1, 2, 1, 0, 1, 2, 0, 8, 1, 3, 3, 5, 2, 1, 3, 7, 1, 0, 3, 2, 2, 2, 0, 2, 2, 1, 1, 3, 3, 1, 2, 4, 4, 2, 3, 5, 5, 1, 1, 9, 9, 1, 2, 4, 4, 4, 2, 2, 3, 1, 3, 7, 1, 2, 0, 1, 0, 2, 0, 3, 3, 4, 4, 4, 4, 3, 2, 1, 1, 0, 1, 1, 0, 1, 5, 1, 0, 1, 0, 3, 1, 3, 4, 3, 2, 2, 1, 1, 1, 0, 2, 4, 5, 4, 2, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, 1, 3, 1, 1, 1, 1, 1, 2, 4, 4, 5, 2, 0, 1, 3, 1, 0, 1, 2, 3, 2, 4, 2, 3, 2, 0, 4, 5, 2, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 1, 4, 3, 4, 5, 4, 5, 4, 5, 2, 4, 1, 1, 0, 1, 4, 5, 4, 0, 2, 2, 2, 1, 1, 0, 4, 2, 1, 2, 2, 4, 1, 3, 1, 2, 3, 6, 4, 0, 2, 6, 2, 1, 3, 4, 0, 2, 0, 2, 0, 2, 4, 0, 1, 0, 1, 3, 3, 7, 12, 1, 3, 2, 3, 3, 1, 2, 2, 2, 2, 1, 1, 3, 3, 2, 2, 3, 5, 6, 2, 3, 3, 4, 0, 1, 1, 1, 1, 1, 2, 4, 1, 1, 1, 1, 2, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 3, 0, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 4, 1, 2, 2, 1, 3, 3, 2, 1, 0, 5, 2, 5, 2, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, 1, 4, 1, 3, 3, 5, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 5, 4, 6, 3, 5, 4, 6, 4, 6, 5, 7, 3, 2, 4, 2, 3, 3, 4, 3, 4, 3, 4, 5, 6, 6, 7, 6, 7, 6, 7, 3, 4, 4, 6, 2, 3, 4, 1, 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 5, 6, 6, 7, 3, 4, 1, 1, 2, 4, 1, 1, 1, 2, 2, 2, 2, 1, 1, 4, 3, 5, 6, 8, 6, 6, 4, 4, 1, 1, 1, 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 6, 4, 4, 4, 4, 6, 5, 5, 5, 4, 6, 4, 4, 4, 4, 5, 7, 7, 9, 5, 4, 6, 5, 7, 7, 7, 2, 3, 3, 3, 4, 0, 4, 1, 3, 3, 1, 1, 1, 2, 2, 0, 2, 3, 3, 4, 2, 2, 5, 0, 5, 0, 2, 0, 1, 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, 3, 3, 3, 0, 1, 4, 2, 2, 2, 2, 2, 3, 2, 2, 3, 0, 4, 3, 5, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 1, 4, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 2, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 2, 3, 0, 3, 3, 2, 2, 1, 0, 2, 2, 3, 2, 1, 1, 3, 5, 1, 2, 4, 2, 0, 1, 0, 1, 2, 2, 2, 3, 5, 1, 0, 1, 2, 0, 2, 1, 0, 1, 0, 1, 3, 3, 2, 1, 1, 1, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 6, 2, 3, 5, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (0) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) /* 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) /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ YY_ATTRIBUTE_UNUSED static int yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) { int res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { res += YYFPRINTF (yyo, "%d", yylocp->first_line); if (0 <= yylocp->first_column) res += YYFPRINTF (yyo, ".%d", yylocp->first_column); } if (0 <= yylocp->last_line) { if (yylocp->first_line < yylocp->last_line) { res += YYFPRINTF (yyo, "-%d", yylocp->last_line); if (0 <= end_col) res += YYFPRINTF (yyo, ".%d", end_col); } else if (0 <= end_col && yylocp->first_column < end_col) res += YYFPRINTF (yyo, "-%d", end_col); } return res; } # define YY_LOCATION_PRINT(File, Loc) \ yy_location_print_ (File, &(Loc)) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, Location, yyscanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { FILE *yyoutput = yyo; YYUSE (yyoutput); YYUSE (yylocationp); YYUSE (yyscanner); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) { YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); YY_LOCATION_PRINT (yyo, *yylocationp); YYFPRINTF (yyo, ": "); yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, yyscanner); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) { unsigned long yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], &yyvsp[(yyi + 1) - (yynrhs)] , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, yylsp, Rule, yyscanner); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ static YYSIZE_T yystrlen (const char *yystr) { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * yystpcpy (char *yydest, const char *yysrc) { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; else goto append; append: default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per "expected"). */ int yycount = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else return 2; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else return 2; } if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { yyp++; yyformat++; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) { YYUSE (yyvaluep); YYUSE (yylocationp); YYUSE (yyscanner); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*----------. | yyparse. | `----------*/ int yyparse (core_yyscan_t yyscanner) { /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ YY_INITIAL_VALUE (static YYSTYPE yyval_default;) YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Location data for the lookahead symbol. */ static YYLTYPE yyloc_default # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ int yynerrs; int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: 'yyss': related to states. 'yyvs': related to semantic values. 'yyls': related to locations. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls; YYLTYPE *yylsp; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[3]; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yylsp = yyls = yylsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; 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++; /*--------------------------------------------------------------------. | yynewstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE goto yyexhaustedlab; #else { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = (YYSIZE_T) (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. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; yyls = yyls1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = yylex (&yylval, &yylloc, yyscanner); } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ yychar = YYEMPTY; yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; 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]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 790 "gram.y" /* yacc.c:1652 */ { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list); } #line 25765 "gram.c" /* yacc.c:1652 */ break; case 3: #line 806 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[-2].list) != NIL) { /* update length of previous stmt */ updateRawStmtEnd(llast_node(RawStmt, (yyvsp[-2].list)), (yylsp[-1])); } if ((yyvsp[0].node) != NULL) (yyval.list) = lappend((yyvsp[-2].list), makeRawStmt((yyvsp[0].node), (yylsp[-1]) + 1)); else (yyval.list) = (yyvsp[-2].list); } #line 25781 "gram.c" /* yacc.c:1652 */ break; case 4: #line 818 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].node) != NULL) (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), 0)); else (yyval.list) = NIL; } #line 25792 "gram.c" /* yacc.c:1652 */ break; case 128: #line 951 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 25798 "gram.c" /* yacc.c:1652 */ break; case 129: #line 961 "gram.y" /* yacc.c:1652 */ { CallStmt *n = makeNode(CallStmt); n->funccall = castNode(FuncCall, (yyvsp[0].node)); (yyval.node) = (Node *)n; } #line 25808 "gram.c" /* yacc.c:1652 */ break; case 130: #line 976 "gram.y" /* yacc.c:1652 */ { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_ROLE; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 25820 "gram.c" /* yacc.c:1652 */ break; case 131: #line 986 "gram.y" /* yacc.c:1652 */ {} #line 25826 "gram.c" /* yacc.c:1652 */ break; case 132: #line 987 "gram.y" /* yacc.c:1652 */ {} #line 25832 "gram.c" /* yacc.c:1652 */ break; case 133: #line 988 "gram.y" /* yacc.c:1652 */ {} #line 25838 "gram.c" /* yacc.c:1652 */ break; case 134: #line 997 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 25844 "gram.c" /* yacc.c:1652 */ break; case 135: #line 998 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 25850 "gram.c" /* yacc.c:1652 */ break; case 136: #line 1002 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 25856 "gram.c" /* yacc.c:1652 */ break; case 137: #line 1003 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 25862 "gram.c" /* yacc.c:1652 */ break; case 138: #line 1008 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 25871 "gram.c" /* yacc.c:1652 */ break; case 139: #line 1013 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1])); } #line 25879 "gram.c" /* yacc.c:1652 */ break; case 140: #line 1017 "gram.y" /* yacc.c:1652 */ { /* * These days, passwords are always stored in encrypted * form, so there is no difference between PASSWORD and * ENCRYPTED PASSWORD. */ (yyval.defelt) = makeDefElem("password", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 25893 "gram.c" /* yacc.c:1652 */ break; case 141: #line 1027 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNENCRYPTED PASSWORD is no longer supported"), errhint("Remove UNENCRYPTED to store the password in encrypted form instead."), parser_errposition((yylsp[-2])))); } #line 25905 "gram.c" /* yacc.c:1652 */ break; case 142: #line 1035 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(true), (yylsp[0])); } #line 25913 "gram.c" /* yacc.c:1652 */ break; case 143: #line 1039 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); } #line 25921 "gram.c" /* yacc.c:1652 */ break; case 144: #line 1043 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 25929 "gram.c" /* yacc.c:1652 */ break; case 145: #line 1048 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 25937 "gram.c" /* yacc.c:1652 */ break; case 146: #line 1052 "gram.y" /* yacc.c:1652 */ { /* * We handle identifiers that aren't parser keywords with * the following special-case codes, to avoid bloating the * size of the main parser. */ if (strcmp((yyvsp[0].str), "superuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nosuperuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "createrole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nocreaterole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "replication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "noreplication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "createdb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nocreatedb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "login") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nologin") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "bypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(true), (yylsp[0])); else if (strcmp((yyvsp[0].str), "nobypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(false), (yylsp[0])); else if (strcmp((yyvsp[0].str), "noinherit") == 0) { /* * Note that INHERIT is a keyword, so it's handled by main parser, but * NOINHERIT is handled here. */ (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(false), (yylsp[0])); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)), parser_errposition((yylsp[0])))); } #line 25986 "gram.c" /* yacc.c:1652 */ break; case 147: #line 1099 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); } #line 25992 "gram.c" /* yacc.c:1652 */ break; case 148: #line 1102 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); } #line 26000 "gram.c" /* yacc.c:1652 */ break; case 149: #line 1106 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 26008 "gram.c" /* yacc.c:1652 */ break; case 150: #line 1110 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 26016 "gram.c" /* yacc.c:1652 */ break; case 151: #line 1114 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 26024 "gram.c" /* yacc.c:1652 */ break; case 152: #line 1118 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 26032 "gram.c" /* yacc.c:1652 */ break; case 153: #line 1132 "gram.y" /* yacc.c:1652 */ { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_USER; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26044 "gram.c" /* yacc.c:1652 */ break; case 154: #line 1150 "gram.y" /* yacc.c:1652 */ { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-2].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26056 "gram.c" /* yacc.c:1652 */ break; case 155: #line 1158 "gram.y" /* yacc.c:1652 */ { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-2].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26068 "gram.c" /* yacc.c:1652 */ break; case 156: #line 1168 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 26074 "gram.c" /* yacc.c:1652 */ break; case 157: #line 1169 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26080 "gram.c" /* yacc.c:1652 */ break; case 158: #line 1174 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[-2].rolespec); n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 26092 "gram.c" /* yacc.c:1652 */ break; case 159: #line 1182 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 26104 "gram.c" /* yacc.c:1652 */ break; case 160: #line 1190 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[-2].rolespec); n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 26116 "gram.c" /* yacc.c:1652 */ break; case 161: #line 1198 "gram.y" /* yacc.c:1652 */ { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 26128 "gram.c" /* yacc.c:1652 */ break; case 162: #line 1219 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26139 "gram.c" /* yacc.c:1652 */ break; case 163: #line 1226 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26150 "gram.c" /* yacc.c:1652 */ break; case 164: #line 1233 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26161 "gram.c" /* yacc.c:1652 */ break; case 165: #line 1240 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26172 "gram.c" /* yacc.c:1652 */ break; case 166: #line 1247 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26183 "gram.c" /* yacc.c:1652 */ break; case 167: #line 1254 "gram.y" /* yacc.c:1652 */ { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26194 "gram.c" /* yacc.c:1652 */ break; case 168: #line 1271 "gram.y" /* yacc.c:1652 */ { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_GROUP; n->role = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 26206 "gram.c" /* yacc.c:1652 */ break; case 169: #line 1289 "gram.y" /* yacc.c:1652 */ { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[-3].rolespec); n->action = (yyvsp[-2].ival); n->options = list_make1(makeDefElem("rolemembers", (Node *)(yyvsp[0].list), (yylsp[0]))); (yyval.node) = (Node *)n; } #line 26219 "gram.c" /* yacc.c:1652 */ break; case 170: #line 1299 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = +1; } #line 26225 "gram.c" /* yacc.c:1652 */ break; case 171: #line 1300 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = -1; } #line 26231 "gram.c" /* yacc.c:1652 */ break; case 172: #line 1312 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* One can omit the schema name or the authorization id. */ n->schemaname = (yyvsp[-3].str); n->authrole = (yyvsp[-1].rolespec); n->schemaElts = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 26245 "gram.c" /* yacc.c:1652 */ break; case 173: #line 1322 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not both */ n->schemaname = (yyvsp[-1].str); n->authrole = NULL; n->schemaElts = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 26259 "gram.c" /* yacc.c:1652 */ break; case 174: #line 1332 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* schema name can be omitted here, too */ n->schemaname = (yyvsp[-3].str); n->authrole = (yyvsp[-1].rolespec); if ((yyvsp[0].list) != NIL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), parser_errposition((yylsp[0])))); n->schemaElts = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 26278 "gram.c" /* yacc.c:1652 */ break; case 175: #line 1347 "gram.y" /* yacc.c:1652 */ { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not here */ n->schemaname = (yyvsp[-1].str); n->authrole = NULL; if ((yyvsp[0].list) != NIL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), parser_errposition((yylsp[0])))); n->schemaElts = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 26297 "gram.c" /* yacc.c:1652 */ break; case 176: #line 1364 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26303 "gram.c" /* yacc.c:1652 */ break; case 177: #line 1365 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 26309 "gram.c" /* yacc.c:1652 */ break; case 178: #line 1370 "gram.y" /* yacc.c:1652 */ { if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ (yyloc) = (yylsp[0]); (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 26319 "gram.c" /* yacc.c:1652 */ break; case 179: #line 1376 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 26325 "gram.c" /* yacc.c:1652 */ break; case 186: #line 1404 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } #line 26335 "gram.c" /* yacc.c:1652 */ break; case 187: #line 1410 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; } #line 26345 "gram.c" /* yacc.c:1652 */ break; case 188: #line 1416 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = (yyvsp[0].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; } #line 26355 "gram.c" /* yacc.c:1652 */ break; case 189: #line 1425 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION"; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 26367 "gram.c" /* yacc.c:1652 */ break; case 190: #line 1433 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "SESSION CHARACTERISTICS"; n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 26379 "gram.c" /* yacc.c:1652 */ break; case 192: #line 1445 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[-2].str); n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 26391 "gram.c" /* yacc.c:1652 */ break; case 193: #line 1453 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[-2].str); n->args = (yyvsp[0].list); (yyval.vsetstmt) = n; } #line 26403 "gram.c" /* yacc.c:1652 */ break; case 194: #line 1461 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } #line 26414 "gram.c" /* yacc.c:1652 */ break; case 195: #line 1468 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } #line 26425 "gram.c" /* yacc.c:1652 */ break; case 196: #line 1477 "gram.y" /* yacc.c:1652 */ {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);} #line 26431 "gram.c" /* yacc.c:1652 */ break; case 197: #line 1479 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[-2].str); (yyval.vsetstmt) = n; } #line 26442 "gram.c" /* yacc.c:1652 */ break; case 198: #line 1487 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "timezone"; if ((yyvsp[0].node) != NULL) n->args = list_make1((yyvsp[0].node)); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } #line 26457 "gram.c" /* yacc.c:1652 */ break; case 199: #line 1498 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("current database cannot be changed"), parser_errposition((yylsp[0])))); (yyval.vsetstmt) = NULL; /*not reached*/ } #line 26469 "gram.c" /* yacc.c:1652 */ break; case 200: #line 1506 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26481 "gram.c" /* yacc.c:1652 */ break; case 201: #line 1514 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "client_encoding"; if ((yyvsp[0].str) != NULL) n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; } #line 26496 "gram.c" /* yacc.c:1652 */ break; case 202: #line 1525 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26508 "gram.c" /* yacc.c:1652 */ break; case 203: #line 1533 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26520 "gram.c" /* yacc.c:1652 */ break; case 204: #line 1541 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; } #line 26531 "gram.c" /* yacc.c:1652 */ break; case 205: #line 1548 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "xmloption"; n->args = list_make1(makeStringConst((yyvsp[0].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26543 "gram.c" /* yacc.c:1652 */ break; case 206: #line 1557 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION SNAPSHOT"; n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0]))); (yyval.vsetstmt) = n; } #line 26555 "gram.c" /* yacc.c:1652 */ break; case 207: #line 1566 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26561 "gram.c" /* yacc.c:1652 */ break; case 208: #line 1568 "gram.y" /* yacc.c:1652 */ { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); } #line 26567 "gram.c" /* yacc.c:1652 */ break; case 209: #line 1571 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 26573 "gram.c" /* yacc.c:1652 */ break; case 210: #line 1572 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 26579 "gram.c" /* yacc.c:1652 */ break; case 211: #line 1576 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 26585 "gram.c" /* yacc.c:1652 */ break; case 212: #line 1578 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } #line 26591 "gram.c" /* yacc.c:1652 */ break; case 213: #line 1581 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "read uncommitted"; } #line 26597 "gram.c" /* yacc.c:1652 */ break; case 214: #line 1582 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "read committed"; } #line 26603 "gram.c" /* yacc.c:1652 */ break; case 215: #line 1583 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "repeatable read"; } #line 26609 "gram.c" /* yacc.c:1652 */ break; case 216: #line 1584 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "serializable"; } #line 26615 "gram.c" /* yacc.c:1652 */ break; case 217: #line 1588 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "true"; } #line 26621 "gram.c" /* yacc.c:1652 */ break; case 218: #line 1589 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "false"; } #line 26627 "gram.c" /* yacc.c:1652 */ break; case 219: #line 1590 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "on"; } #line 26633 "gram.c" /* yacc.c:1652 */ break; case 220: #line 1596 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26639 "gram.c" /* yacc.c:1652 */ break; case 221: #line 1609 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 26647 "gram.c" /* yacc.c:1652 */ break; case 222: #line 1613 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 26655 "gram.c" /* yacc.c:1652 */ break; case 223: #line 1617 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-2].typnam); if ((yyvsp[0].list) != NIL) { A_Const *n = (A_Const *) linitial((yyvsp[0].list)); if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), parser_errposition((yylsp[0])))); } t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } #line 26674 "gram.c" /* yacc.c:1652 */ break; case 224: #line 1632 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-4].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 26685 "gram.c" /* yacc.c:1652 */ break; case 225: #line 1638 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAConst((yyvsp[0].value), (yylsp[0])); } #line 26691 "gram.c" /* yacc.c:1652 */ break; case 226: #line 1639 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 26697 "gram.c" /* yacc.c:1652 */ break; case 227: #line 1640 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 26703 "gram.c" /* yacc.c:1652 */ break; case 228: #line 1644 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26709 "gram.c" /* yacc.c:1652 */ break; case 229: #line 1645 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 26715 "gram.c" /* yacc.c:1652 */ break; case 230: #line 1646 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 26721 "gram.c" /* yacc.c:1652 */ break; case 231: #line 1650 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26727 "gram.c" /* yacc.c:1652 */ break; case 232: #line 1651 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 26733 "gram.c" /* yacc.c:1652 */ break; case 233: #line 1655 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); } #line 26739 "gram.c" /* yacc.c:1652 */ break; case 234: #line 1659 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } #line 26745 "gram.c" /* yacc.c:1652 */ break; case 235: #line 1661 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.vsetstmt) = n; } #line 26756 "gram.c" /* yacc.c:1652 */ break; case 236: #line 1668 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.vsetstmt) = n; } #line 26767 "gram.c" /* yacc.c:1652 */ break; case 237: #line 1675 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.vsetstmt) = n; } #line 26778 "gram.c" /* yacc.c:1652 */ break; case 238: #line 1685 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[0].str); (yyval.vsetstmt) = n; } #line 26789 "gram.c" /* yacc.c:1652 */ break; case 239: #line 1692 "gram.y" /* yacc.c:1652 */ { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; } #line 26799 "gram.c" /* yacc.c:1652 */ break; case 240: #line 1701 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } #line 26805 "gram.c" /* yacc.c:1652 */ break; case 241: #line 1702 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } #line 26811 "gram.c" /* yacc.c:1652 */ break; case 242: #line 1707 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); } #line 26817 "gram.c" /* yacc.c:1652 */ break; case 243: #line 1708 "gram.y" /* yacc.c:1652 */ { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); } #line 26823 "gram.c" /* yacc.c:1652 */ break; case 244: #line 1714 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 26833 "gram.c" /* yacc.c:1652 */ break; case 245: #line 1720 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; } #line 26843 "gram.c" /* yacc.c:1652 */ break; case 246: #line 1726 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; } #line 26853 "gram.c" /* yacc.c:1652 */ break; case 247: #line 1732 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; } #line 26863 "gram.c" /* yacc.c:1652 */ break; case 248: #line 1738 "gram.y" /* yacc.c:1652 */ { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; } #line 26873 "gram.c" /* yacc.c:1652 */ break; case 249: #line 1748 "gram.y" /* yacc.c:1652 */ { ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); n->constraints = (yyvsp[-1].list); n->deferred = (yyvsp[0].boolean); (yyval.node) = (Node *) n; } #line 26884 "gram.c" /* yacc.c:1652 */ break; case 250: #line 1757 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 26890 "gram.c" /* yacc.c:1652 */ break; case 251: #line 1758 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 26896 "gram.c" /* yacc.c:1652 */ break; case 252: #line 1762 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 26902 "gram.c" /* yacc.c:1652 */ break; case 253: #line 1763 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 26908 "gram.c" /* yacc.c:1652 */ break; case 254: #line 1772 "gram.y" /* yacc.c:1652 */ { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *)n; } #line 26917 "gram.c" /* yacc.c:1652 */ break; case 255: #line 1787 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; } #line 26927 "gram.c" /* yacc.c:1652 */ break; case 256: #line 1793 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } #line 26937 "gram.c" /* yacc.c:1652 */ break; case 257: #line 1799 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; } #line 26947 "gram.c" /* yacc.c:1652 */ break; case 258: #line 1805 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; } #line 26957 "gram.c" /* yacc.c:1652 */ break; case 259: #line 1811 "gram.y" /* yacc.c:1652 */ { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_SEQUENCES; (yyval.node) = (Node *) n; } #line 26967 "gram.c" /* yacc.c:1652 */ break; case 260: #line 1830 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 26980 "gram.c" /* yacc.c:1652 */ break; case 261: #line 1839 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 26993 "gram.c" /* yacc.c:1652 */ break; case 262: #line 1848 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); n->relkind = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27006 "gram.c" /* yacc.c:1652 */ break; case 263: #line 1857 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); n->relkind = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27019 "gram.c" /* yacc.c:1652 */ break; case 264: #line 1866 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); n->objtype = OBJECT_TABLE; n->roles = NIL; n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 27034 "gram.c" /* yacc.c:1652 */ break; case 265: #line 1877 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); n->objtype = OBJECT_TABLE; n->roles = (yyvsp[-4].list); n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 27049 "gram.c" /* yacc.c:1652 */ break; case 266: #line 1888 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27062 "gram.c" /* yacc.c:1652 */ break; case 267: #line 1897 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_INDEX; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27075 "gram.c" /* yacc.c:1652 */ break; case 268: #line 1906 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = list_make1((yyvsp[0].node)); n->relkind = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27088 "gram.c" /* yacc.c:1652 */ break; case 269: #line 1915 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); n->objtype = OBJECT_INDEX; n->roles = NIL; n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 27103 "gram.c" /* yacc.c:1652 */ break; case 270: #line 1926 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); n->objtype = OBJECT_INDEX; n->roles = (yyvsp[-4].list); n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 27118 "gram.c" /* yacc.c:1652 */ break; case 271: #line 1937 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27131 "gram.c" /* yacc.c:1652 */ break; case 272: #line 1946 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27144 "gram.c" /* yacc.c:1652 */ break; case 273: #line 1955 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_VIEW; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27157 "gram.c" /* yacc.c:1652 */ break; case 274: #line 1964 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_VIEW; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27170 "gram.c" /* yacc.c:1652 */ break; case 275: #line 1973 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_MATVIEW; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27183 "gram.c" /* yacc.c:1652 */ break; case 276: #line 1982 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_MATVIEW; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27196 "gram.c" /* yacc.c:1652 */ break; case 277: #line 1991 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-4].str); n->objtype = OBJECT_MATVIEW; n->roles = NIL; n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 27211 "gram.c" /* yacc.c:1652 */ break; case 278: #line 2002 "gram.y" /* yacc.c:1652 */ { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[-7].str); n->objtype = OBJECT_MATVIEW; n->roles = (yyvsp[-4].list); n->new_tablespacename = (yyvsp[-1].str); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 27226 "gram.c" /* yacc.c:1652 */ break; case 279: #line 2015 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 27232 "gram.c" /* yacc.c:1652 */ break; case 280: #line 2016 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 27238 "gram.c" /* yacc.c:1652 */ break; case 281: #line 2022 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_AttachPartition; cmd->name = (yyvsp[-1].range); cmd->bound = (yyvsp[0].partboundspec); n->def = (Node *) cmd; (yyval.node) = (Node *) n; } #line 27254 "gram.c" /* yacc.c:1652 */ break; case 282: #line 2035 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_DetachPartition; cmd->name = (yyvsp[0].range); cmd->bound = NULL; n->def = (Node *) cmd; (yyval.node) = (Node *) n; } #line 27270 "gram.c" /* yacc.c:1652 */ break; case 283: #line 2051 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_AttachPartition; cmd->name = (yyvsp[0].range); cmd->bound = NULL; n->def = (Node *) cmd; (yyval.node) = (Node *) n; } #line 27286 "gram.c" /* yacc.c:1652 */ break; case 284: #line 2067 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27298 "gram.c" /* yacc.c:1652 */ break; case 285: #line 2076 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27310 "gram.c" /* yacc.c:1652 */ break; case 286: #line 2085 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27322 "gram.c" /* yacc.c:1652 */ break; case 287: #line 2094 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[0].node); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27334 "gram.c" /* yacc.c:1652 */ break; case 288: #line 2103 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ColumnDefault; n->name = (yyvsp[-1].str); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 27346 "gram.c" /* yacc.c:1652 */ break; case 289: #line 2112 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[-3].str); (yyval.node) = (Node *)n; } #line 27357 "gram.c" /* yacc.c:1652 */ break; case 290: #line 2120 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[-3].str); (yyval.node) = (Node *)n; } #line 27368 "gram.c" /* yacc.c:1652 */ break; case 291: #line 2128 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = (yyvsp[-3].str); n->def = (Node *) makeInteger((yyvsp[0].ival)); (yyval.node) = (Node *)n; } #line 27380 "gram.c" /* yacc.c:1652 */ break; case 292: #line 2137 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); if ((yyvsp[-3].ival) <= 0 || (yyvsp[-3].ival) > PG_INT16_MAX) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("column number must be in range from 1 to %d", PG_INT16_MAX), parser_errposition((yylsp[-3])))); n->subtype = AT_SetStatistics; n->num = (int16) (yyvsp[-3].ival); n->def = (Node *) makeInteger((yyvsp[0].ival)); (yyval.node) = (Node *)n; } #line 27399 "gram.c" /* yacc.c:1652 */ break; case 293: #line 2153 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetOptions; n->name = (yyvsp[-2].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27411 "gram.c" /* yacc.c:1652 */ break; case 294: #line 2162 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetOptions; n->name = (yyvsp[-2].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27423 "gram.c" /* yacc.c:1652 */ break; case 295: #line 2171 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStorage; n->name = (yyvsp[-3].str); n->def = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 27435 "gram.c" /* yacc.c:1652 */ break; case 296: #line 2180 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); c->contype = CONSTR_IDENTITY; c->generated_when = (yyvsp[-3].ival); c->options = (yyvsp[0].list); c->location = (yylsp[-4]); n->subtype = AT_AddIdentity; n->name = (yyvsp[-6].str); n->def = (Node *) c; (yyval.node) = (Node *)n; } #line 27455 "gram.c" /* yacc.c:1652 */ break; case 297: #line 2197 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetIdentity; n->name = (yyvsp[-1].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27467 "gram.c" /* yacc.c:1652 */ break; case 298: #line 2206 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[-2].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27479 "gram.c" /* yacc.c:1652 */ break; case 299: #line 2215 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[-4].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27491 "gram.c" /* yacc.c:1652 */ break; case 300: #line 2224 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27504 "gram.c" /* yacc.c:1652 */ break; case 301: #line 2234 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27517 "gram.c" /* yacc.c:1652 */ break; case 302: #line 2247 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[-5].str); n->def = (Node *) def; /* We only use these fields of the ColumnDef node */ def->typeName = (yyvsp[-2].typnam); def->collClause = (CollateClause *) (yyvsp[-1].node); def->raw_default = (yyvsp[0].node); def->location = (yylsp[-5]); (yyval.node) = (Node *)n; } #line 27535 "gram.c" /* yacc.c:1652 */ break; case 303: #line 2262 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AlterColumnGenericOptions; n->name = (yyvsp[-1].str); n->def = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27547 "gram.c" /* yacc.c:1652 */ break; case 304: #line 2271 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 27558 "gram.c" /* yacc.c:1652 */ break; case 305: #line 2279 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); n->subtype = AT_AlterConstraint; n->def = (Node *) c; c->contype = CONSTR_FOREIGN; /* others not supported, yet */ c->conname = (yyvsp[-1].str); processCASbits((yyvsp[0].ival), (yylsp[0]), "ALTER CONSTRAINT statement", &c->deferrable, &c->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 27576 "gram.c" /* yacc.c:1652 */ break; case 306: #line 2294 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27587 "gram.c" /* yacc.c:1652 */ break; case 307: #line 2302 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 27600 "gram.c" /* yacc.c:1652 */ break; case 308: #line 2312 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 27613 "gram.c" /* yacc.c:1652 */ break; case 309: #line 2322 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *)n; } #line 27623 "gram.c" /* yacc.c:1652 */ break; case 310: #line 2329 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27634 "gram.c" /* yacc.c:1652 */ break; case 311: #line 2337 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *)n; } #line 27645 "gram.c" /* yacc.c:1652 */ break; case 312: #line 2345 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetLogged; (yyval.node) = (Node *)n; } #line 27655 "gram.c" /* yacc.c:1652 */ break; case 313: #line 2352 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetUnLogged; (yyval.node) = (Node *)n; } #line 27665 "gram.c" /* yacc.c:1652 */ break; case 314: #line 2359 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27676 "gram.c" /* yacc.c:1652 */ break; case 315: #line 2367 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27687 "gram.c" /* yacc.c:1652 */ break; case 316: #line 2375 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27698 "gram.c" /* yacc.c:1652 */ break; case 317: #line 2383 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *)n; } #line 27708 "gram.c" /* yacc.c:1652 */ break; case 318: #line 2390 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *)n; } #line 27718 "gram.c" /* yacc.c:1652 */ break; case 319: #line 2397 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27729 "gram.c" /* yacc.c:1652 */ break; case 320: #line 2405 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *)n; } #line 27739 "gram.c" /* yacc.c:1652 */ break; case 321: #line 2412 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *)n; } #line 27749 "gram.c" /* yacc.c:1652 */ break; case 322: #line 2419 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27760 "gram.c" /* yacc.c:1652 */ break; case 323: #line 2427 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27771 "gram.c" /* yacc.c:1652 */ break; case 324: #line 2435 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27782 "gram.c" /* yacc.c:1652 */ break; case 325: #line 2443 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27793 "gram.c" /* yacc.c:1652 */ break; case 326: #line 2451 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[0].range); (yyval.node) = (Node *)n; } #line 27804 "gram.c" /* yacc.c:1652 */ break; case 327: #line 2459 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[0].range); (yyval.node) = (Node *)n; } #line 27815 "gram.c" /* yacc.c:1652 */ break; case 328: #line 2467 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); TypeName *def = makeTypeNameFromNameList((yyvsp[0].list)); def->location = (yylsp[0]); n->subtype = AT_AddOf; n->def = (Node *) def; (yyval.node) = (Node *)n; } #line 27828 "gram.c" /* yacc.c:1652 */ break; case 329: #line 2477 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *)n; } #line 27838 "gram.c" /* yacc.c:1652 */ break; case 330: #line 2484 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 27849 "gram.c" /* yacc.c:1652 */ break; case 331: #line 2492 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 27860 "gram.c" /* yacc.c:1652 */ break; case 332: #line 2500 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27871 "gram.c" /* yacc.c:1652 */ break; case 333: #line 2508 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *)n; } #line 27882 "gram.c" /* yacc.c:1652 */ break; case 334: #line 2516 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ReplicaIdentity; n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 27893 "gram.c" /* yacc.c:1652 */ break; case 335: #line 2524 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRowSecurity; (yyval.node) = (Node *)n; } #line 27903 "gram.c" /* yacc.c:1652 */ break; case 336: #line 2531 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRowSecurity; (yyval.node) = (Node *)n; } #line 27913 "gram.c" /* yacc.c:1652 */ break; case 337: #line 2538 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ForceRowSecurity; (yyval.node) = (Node *)n; } #line 27923 "gram.c" /* yacc.c:1652 */ break; case 338: #line 2545 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_NoForceRowSecurity; (yyval.node) = (Node *)n; } #line 27933 "gram.c" /* yacc.c:1652 */ break; case 339: #line 2551 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *)(yyvsp[0].list); (yyval.node) = (Node *) n; } #line 27944 "gram.c" /* yacc.c:1652 */ break; case 340: #line 2560 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 27950 "gram.c" /* yacc.c:1652 */ break; case 341: #line 2561 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 27956 "gram.c" /* yacc.c:1652 */ break; case 342: #line 2565 "gram.y" /* yacc.c:1652 */ { (yyval.dbehavior) = DROP_CASCADE; } #line 27962 "gram.c" /* yacc.c:1652 */ break; case 343: #line 2566 "gram.y" /* yacc.c:1652 */ { (yyval.dbehavior) = DROP_RESTRICT; } #line 27968 "gram.c" /* yacc.c:1652 */ break; case 344: #line 2567 "gram.y" /* yacc.c:1652 */ { (yyval.dbehavior) = DROP_RESTRICT; /* default */ } #line 27974 "gram.c" /* yacc.c:1652 */ break; case 345: #line 2572 "gram.y" /* yacc.c:1652 */ { CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } #line 27986 "gram.c" /* yacc.c:1652 */ break; case 346: #line 2579 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 27992 "gram.c" /* yacc.c:1652 */ break; case 347: #line 2583 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 27998 "gram.c" /* yacc.c:1652 */ break; case 348: #line 2584 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 28004 "gram.c" /* yacc.c:1652 */ break; case 349: #line 2589 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_NOTHING; n->name = NULL; (yyval.node) = (Node *) n; } #line 28015 "gram.c" /* yacc.c:1652 */ break; case 350: #line 2596 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_FULL; n->name = NULL; (yyval.node) = (Node *) n; } #line 28026 "gram.c" /* yacc.c:1652 */ break; case 351: #line 2603 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_DEFAULT; n->name = NULL; (yyval.node) = (Node *) n; } #line 28037 "gram.c" /* yacc.c:1652 */ break; case 352: #line 2610 "gram.y" /* yacc.c:1652 */ { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_INDEX; n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 28048 "gram.c" /* yacc.c:1652 */ break; case 353: #line 2619 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 28054 "gram.c" /* yacc.c:1652 */ break; case 354: #line 2622 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 28060 "gram.c" /* yacc.c:1652 */ break; case 355: #line 2623 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28066 "gram.c" /* yacc.c:1652 */ break; case 356: #line 2627 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 28072 "gram.c" /* yacc.c:1652 */ break; case 357: #line 2628 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 28078 "gram.c" /* yacc.c:1652 */ break; case 358: #line 2634 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } #line 28086 "gram.c" /* yacc.c:1652 */ break; case 359: #line 2638 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } #line 28094 "gram.c" /* yacc.c:1652 */ break; case 360: #line 2642 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node), DEFELEM_UNSPEC, (yylsp[-4])); } #line 28103 "gram.c" /* yacc.c:1652 */ break; case 361: #line 2647 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2])); } #line 28111 "gram.c" /* yacc.c:1652 */ break; case 362: #line 2654 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 28117 "gram.c" /* yacc.c:1652 */ break; case 363: #line 2656 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 28123 "gram.c" /* yacc.c:1652 */ break; case 364: #line 2661 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } #line 28131 "gram.c" /* yacc.c:1652 */ break; case 365: #line 2665 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 28139 "gram.c" /* yacc.c:1652 */ break; case 366: #line 2669 "gram.y" /* yacc.c:1652 */ { if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 || strcmp((yyvsp[0].defelt)->defname, "restart") == 0 || strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("sequence option \"%s\" not supported here", (yyvsp[0].defelt)->defname), parser_errposition((yylsp[0])))); (yyval.defelt) = (yyvsp[0].defelt); } #line 28154 "gram.c" /* yacc.c:1652 */ break; case 367: #line 2680 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2])); } #line 28162 "gram.c" /* yacc.c:1652 */ break; case 368: #line 2688 "gram.y" /* yacc.c:1652 */ { ListCell *lc; PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_HASH; n->modulus = n->remainder = -1; foreach (lc, (yyvsp[-1].list)) { DefElem *opt = lfirst_node(DefElem, lc); if (strcmp(opt->defname, "modulus") == 0) { if (n->modulus != -1) ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("modulus for hash partition provided more than once"), parser_errposition(opt->location))); n->modulus = defGetInt32(opt); } else if (strcmp(opt->defname, "remainder") == 0) { if (n->remainder != -1) ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("remainder for hash partition provided more than once"), parser_errposition(opt->location))); n->remainder = defGetInt32(opt); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized hash partition bound specification \"%s\"", opt->defname), parser_errposition(opt->location))); } if (n->modulus == -1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("modulus for hash partition must be specified"))); if (n->remainder == -1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("remainder for hash partition must be specified"))); n->location = (yylsp[-3]); (yyval.partboundspec) = n; } #line 28217 "gram.c" /* yacc.c:1652 */ break; case 369: #line 2741 "gram.y" /* yacc.c:1652 */ { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_LIST; n->is_default = false; n->listdatums = (yyvsp[-1].list); n->location = (yylsp[-3]); (yyval.partboundspec) = n; } #line 28232 "gram.c" /* yacc.c:1652 */ break; case 370: #line 2754 "gram.y" /* yacc.c:1652 */ { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_RANGE; n->is_default = false; n->lowerdatums = (yyvsp[-5].list); n->upperdatums = (yyvsp[-1].list); n->location = (yylsp[-7]); (yyval.partboundspec) = n; } #line 28248 "gram.c" /* yacc.c:1652 */ break; case 371: #line 2768 "gram.y" /* yacc.c:1652 */ { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->is_default = true; n->location = (yylsp[0]); (yyval.partboundspec) = n; } #line 28261 "gram.c" /* yacc.c:1652 */ break; case 372: #line 2780 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-1])); } #line 28269 "gram.c" /* yacc.c:1652 */ break; case 373: #line 2787 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 28277 "gram.c" /* yacc.c:1652 */ break; case 374: #line 2791 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 28285 "gram.c" /* yacc.c:1652 */ break; case 375: #line 2805 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); /* can't use qualified_name, sigh */ n->relation = makeRangeVarFromAnyName((yyvsp[-1].list), (yylsp[-1]), yyscanner); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_TYPE; (yyval.node) = (Node *)n; } #line 28299 "gram.c" /* yacc.c:1652 */ break; case 376: #line 2817 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28305 "gram.c" /* yacc.c:1652 */ break; case 377: #line 2818 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28311 "gram.c" /* yacc.c:1652 */ break; case 378: #line 2824 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[-1].node); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 28323 "gram.c" /* yacc.c:1652 */ break; case 379: #line 2833 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 28336 "gram.c" /* yacc.c:1652 */ break; case 380: #line 2843 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 28349 "gram.c" /* yacc.c:1652 */ break; case 381: #line 2853 "gram.y" /* yacc.c:1652 */ { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[-5].str); n->def = (Node *) def; n->behavior = (yyvsp[0].dbehavior); /* We only use these fields of the ColumnDef node */ def->typeName = (yyvsp[-2].typnam); def->collClause = (CollateClause *) (yyvsp[-1].node); def->raw_default = NULL; def->location = (yylsp[-5]); (yyval.node) = (Node *)n; } #line 28368 "gram.c" /* yacc.c:1652 */ break; case 382: #line 2879 "gram.y" /* yacc.c:1652 */ { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 28378 "gram.c" /* yacc.c:1652 */ break; case 383: #line 2885 "gram.y" /* yacc.c:1652 */ { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *)n; } #line 28388 "gram.c" /* yacc.c:1652 */ break; case 384: #line 2920 "gram.y" /* yacc.c:1652 */ { CopyStmt *n = makeNode(CopyStmt); n->relation = (yyvsp[-8].range); n->query = NULL; n->attlist = (yyvsp[-7].list); n->is_from = (yyvsp[-6].boolean); n->is_program = (yyvsp[-5].boolean); n->filename = (yyvsp[-4].str); n->whereClause = (yyvsp[0].node); if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition((yylsp[-3])))); if (!n->is_from && n->whereClause != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHERE clause not allowed with COPY TO"), parser_errposition((yylsp[0])))); n->options = NIL; /* Concatenate user-supplied flags */ if ((yyvsp[-9].defelt)) n->options = lappend(n->options, (yyvsp[-9].defelt)); if ((yyvsp[-3].defelt)) n->options = lappend(n->options, (yyvsp[-3].defelt)); if ((yyvsp[-1].list)) n->options = list_concat(n->options, (yyvsp[-1].list)); (yyval.node) = (Node *)n; } #line 28425 "gram.c" /* yacc.c:1652 */ break; case 385: #line 2953 "gram.y" /* yacc.c:1652 */ { CopyStmt *n = makeNode(CopyStmt); n->relation = NULL; n->query = (yyvsp[-6].node); n->attlist = NIL; n->is_from = false; n->is_program = (yyvsp[-3].boolean); n->filename = (yyvsp[-2].str); n->options = (yyvsp[0].list); if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition((yylsp[-4])))); (yyval.node) = (Node *)n; } #line 28448 "gram.c" /* yacc.c:1652 */ break; case 386: #line 2974 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 28454 "gram.c" /* yacc.c:1652 */ break; case 387: #line 2975 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 28460 "gram.c" /* yacc.c:1652 */ break; case 388: #line 2979 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 28466 "gram.c" /* yacc.c:1652 */ break; case 389: #line 2980 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 28472 "gram.c" /* yacc.c:1652 */ break; case 390: #line 2989 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 28478 "gram.c" /* yacc.c:1652 */ break; case 391: #line 2990 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 28484 "gram.c" /* yacc.c:1652 */ break; case 392: #line 2991 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 28490 "gram.c" /* yacc.c:1652 */ break; case 393: #line 2994 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 28496 "gram.c" /* yacc.c:1652 */ break; case 394: #line 2995 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 28502 "gram.c" /* yacc.c:1652 */ break; case 395: #line 3000 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 28508 "gram.c" /* yacc.c:1652 */ break; case 396: #line 3001 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28514 "gram.c" /* yacc.c:1652 */ break; case 397: #line 3006 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); } #line 28522 "gram.c" /* yacc.c:1652 */ break; case 398: #line 3010 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("freeze", (Node *)makeInteger(true), (yylsp[0])); } #line 28530 "gram.c" /* yacc.c:1652 */ break; case 399: #line 3014 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28538 "gram.c" /* yacc.c:1652 */ break; case 400: #line 3018 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28546 "gram.c" /* yacc.c:1652 */ break; case 401: #line 3022 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("format", (Node *)makeString("csv"), (yylsp[0])); } #line 28554 "gram.c" /* yacc.c:1652 */ break; case 402: #line 3026 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("header", (Node *)makeInteger(true), (yylsp[0])); } #line 28562 "gram.c" /* yacc.c:1652 */ break; case 403: #line 3030 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28570 "gram.c" /* yacc.c:1652 */ break; case 404: #line 3034 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 28578 "gram.c" /* yacc.c:1652 */ break; case 405: #line 3038 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 28586 "gram.c" /* yacc.c:1652 */ break; case 406: #line 3042 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star), (yylsp[-2])); } #line 28594 "gram.c" /* yacc.c:1652 */ break; case 407: #line 3046 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[0].list), (yylsp[-3])); } #line 28602 "gram.c" /* yacc.c:1652 */ break; case 408: #line 3050 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("force_null", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 28610 "gram.c" /* yacc.c:1652 */ break; case 409: #line 3054 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 28618 "gram.c" /* yacc.c:1652 */ break; case 410: #line 3063 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"), (yylsp[0])); } #line 28626 "gram.c" /* yacc.c:1652 */ break; case 411: #line 3066 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = NULL; } #line 28632 "gram.c" /* yacc.c:1652 */ break; case 412: #line 3071 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 28640 "gram.c" /* yacc.c:1652 */ break; case 413: #line 3074 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = NULL; } #line 28646 "gram.c" /* yacc.c:1652 */ break; case 414: #line 3078 "gram.y" /* yacc.c:1652 */ {} #line 28652 "gram.c" /* yacc.c:1652 */ break; case 415: #line 3079 "gram.y" /* yacc.c:1652 */ {} #line 28658 "gram.c" /* yacc.c:1652 */ break; case 416: #line 3085 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 28666 "gram.c" /* yacc.c:1652 */ break; case 417: #line 3089 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 28674 "gram.c" /* yacc.c:1652 */ break; case 418: #line 3096 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 28682 "gram.c" /* yacc.c:1652 */ break; case 419: #line 3102 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 28688 "gram.c" /* yacc.c:1652 */ break; case 420: #line 3103 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].value); } #line 28694 "gram.c" /* yacc.c:1652 */ break; case 421: #line 3104 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeNode(A_Star); } #line 28700 "gram.c" /* yacc.c:1652 */ break; case 422: #line 3105 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[-1].list); } #line 28706 "gram.c" /* yacc.c:1652 */ break; case 423: #line 3106 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 28712 "gram.c" /* yacc.c:1652 */ break; case 424: #line 3111 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28720 "gram.c" /* yacc.c:1652 */ break; case 425: #line 3115 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28728 "gram.c" /* yacc.c:1652 */ break; case 426: #line 3122 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 28734 "gram.c" /* yacc.c:1652 */ break; case 427: #line 3136 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival); n->relation = (yyvsp[-9].range); n->tableElts = (yyvsp[-7].list); n->inhRelations = (yyvsp[-5].list); n->partspec = (yyvsp[-4].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[-3].str); n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 28755 "gram.c" /* yacc.c:1652 */ break; case 428: #line 3155 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival); n->relation = (yyvsp[-9].range); n->tableElts = (yyvsp[-7].list); n->inhRelations = (yyvsp[-5].list); n->partspec = (yyvsp[-4].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[-3].str); n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 28776 "gram.c" /* yacc.c:1652 */ break; case 429: #line 3174 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival); n->relation = (yyvsp[-8].range); n->tableElts = (yyvsp[-5].list); n->inhRelations = NIL; n->partspec = (yyvsp[-4].partspec); n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list)); n->ofTypename->location = (yylsp[-6]); n->constraints = NIL; n->accessMethod = (yyvsp[-3].str); n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 28798 "gram.c" /* yacc.c:1652 */ break; case 430: #line 3194 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival); n->relation = (yyvsp[-8].range); n->tableElts = (yyvsp[-5].list); n->inhRelations = NIL; n->partspec = (yyvsp[-4].partspec); n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list)); n->ofTypename->location = (yylsp[-6]); n->constraints = NIL; n->accessMethod = (yyvsp[-3].str); n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 28820 "gram.c" /* yacc.c:1652 */ break; case 431: #line 3214 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-10].range)->relpersistence = (yyvsp[-12].ival); n->relation = (yyvsp[-10].range); n->tableElts = (yyvsp[-6].list); n->inhRelations = list_make1((yyvsp[-7].range)); n->partbound = (yyvsp[-5].partboundspec); n->partspec = (yyvsp[-4].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[-3].str); n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 28842 "gram.c" /* yacc.c:1652 */ break; case 432: #line 3234 "gram.y" /* yacc.c:1652 */ { CreateStmt *n = makeNode(CreateStmt); (yyvsp[-10].range)->relpersistence = (yyvsp[-15].ival); n->relation = (yyvsp[-10].range); n->tableElts = (yyvsp[-6].list); n->inhRelations = list_make1((yyvsp[-7].range)); n->partbound = (yyvsp[-5].partboundspec); n->partspec = (yyvsp[-4].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[-3].str); n->options = (yyvsp[-2].list); n->oncommit = (yyvsp[-1].oncommit); n->tablespacename = (yyvsp[0].str); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 28864 "gram.c" /* yacc.c:1652 */ break; case 433: #line 3264 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28870 "gram.c" /* yacc.c:1652 */ break; case 434: #line 3265 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28876 "gram.c" /* yacc.c:1652 */ break; case 435: #line 3266 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28882 "gram.c" /* yacc.c:1652 */ break; case 436: #line 3267 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28888 "gram.c" /* yacc.c:1652 */ break; case 437: #line 3269 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-1])))); (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28899 "gram.c" /* yacc.c:1652 */ break; case 438: #line 3276 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-1])))); (yyval.ival) = RELPERSISTENCE_TEMP; } #line 28910 "gram.c" /* yacc.c:1652 */ break; case 439: #line 3282 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } #line 28916 "gram.c" /* yacc.c:1652 */ break; case 440: #line 3283 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_PERMANENT; } #line 28922 "gram.c" /* yacc.c:1652 */ break; case 441: #line 3287 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 28928 "gram.c" /* yacc.c:1652 */ break; case 442: #line 3288 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28934 "gram.c" /* yacc.c:1652 */ break; case 443: #line 3292 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 28940 "gram.c" /* yacc.c:1652 */ break; case 444: #line 3293 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 28946 "gram.c" /* yacc.c:1652 */ break; case 445: #line 3298 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28954 "gram.c" /* yacc.c:1652 */ break; case 446: #line 3302 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28962 "gram.c" /* yacc.c:1652 */ break; case 447: #line 3309 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 28970 "gram.c" /* yacc.c:1652 */ break; case 448: #line 3313 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 28978 "gram.c" /* yacc.c:1652 */ break; case 449: #line 3319 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28984 "gram.c" /* yacc.c:1652 */ break; case 450: #line 3320 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28990 "gram.c" /* yacc.c:1652 */ break; case 451: #line 3321 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 28996 "gram.c" /* yacc.c:1652 */ break; case 452: #line 3325 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 29002 "gram.c" /* yacc.c:1652 */ break; case 453: #line 3326 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 29008 "gram.c" /* yacc.c:1652 */ break; case 454: #line 3330 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-3].str); n->typeName = (yyvsp[-2].typnam); n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; n->fdwoptions = (yyvsp[-1].list); SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[-3]); (yyval.node) = (Node *)n; } #line 29031 "gram.c" /* yacc.c:1652 */ break; case 455: #line 3351 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-1].str); n->typeName = NULL; n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29053 "gram.c" /* yacc.c:1652 */ break; case 456: #line 3369 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-3].str); n->typeName = NULL; n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[-3]); (yyval.node) = (Node *)n; } #line 29075 "gram.c" /* yacc.c:1652 */ break; case 457: #line 3389 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 29081 "gram.c" /* yacc.c:1652 */ break; case 458: #line 3390 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29087 "gram.c" /* yacc.c:1652 */ break; case 459: #line 3395 "gram.y" /* yacc.c:1652 */ { Constraint *n = castNode(Constraint, (yyvsp[0].node)); n->conname = (yyvsp[-1].str); n->location = (yylsp[-2]); (yyval.node) = (Node *) n; } #line 29098 "gram.c" /* yacc.c:1652 */ break; case 460: #line 3401 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 29104 "gram.c" /* yacc.c:1652 */ break; case 461: #line 3402 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 29110 "gram.c" /* yacc.c:1652 */ break; case 462: #line 3404 "gram.y" /* yacc.c:1652 */ { /* * Note: the CollateClause is momentarily included in * the list built by ColQualList, but we split it out * again in SplitColQualList. */ CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } #line 29127 "gram.c" /* yacc.c:1652 */ break; case 463: #line 3435 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29138 "gram.c" /* yacc.c:1652 */ break; case 464: #line 3442 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 29149 "gram.c" /* yacc.c:1652 */ break; case 465: #line 3449 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-2]); n->keys = NULL; n->options = (yyvsp[-1].list); n->indexname = NULL; n->indexspace = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 29164 "gram.c" /* yacc.c:1652 */ break; case 466: #line 3460 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-3]); n->keys = NULL; n->options = (yyvsp[-1].list); n->indexname = NULL; n->indexspace = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 29179 "gram.c" /* yacc.c:1652 */ break; case 467: #line 3471 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[-4]); n->is_no_inherit = (yyvsp[0].boolean); n->raw_expr = (yyvsp[-2].node); n->cooked_expr = NULL; n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *)n; } #line 29195 "gram.c" /* yacc.c:1652 */ break; case 468: #line 3483 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; n->location = (yylsp[-1]); n->raw_expr = (yyvsp[0].node); n->cooked_expr = NULL; (yyval.node) = (Node *)n; } #line 29208 "gram.c" /* yacc.c:1652 */ break; case 469: #line 3492 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_IDENTITY; n->generated_when = (yyvsp[-3].ival); n->options = (yyvsp[0].list); n->location = (yylsp[-4]); (yyval.node) = (Node *)n; } #line 29221 "gram.c" /* yacc.c:1652 */ break; case 470: #line 3501 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_GENERATED; n->generated_when = (yyvsp[-5].ival); n->raw_expr = (yyvsp[-2].node); n->cooked_expr = NULL; n->location = (yylsp[-6]); /* * Can't do this in the grammar because of shift/reduce * conflicts. (IDENTITY allows both ALWAYS and BY * DEFAULT, but generated columns only allow ALWAYS.) We * can also give a more useful error message and location. */ if ((yyvsp[-5].ival) != ATTRIBUTE_IDENTITY_ALWAYS) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("for a generated column, GENERATED ALWAYS must be specified"), parser_errposition((yylsp[-5])))); (yyval.node) = (Node *)n; } #line 29248 "gram.c" /* yacc.c:1652 */ break; case 471: #line 3524 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[-4]); n->pktable = (yyvsp[-3].range); n->fk_attrs = NIL; n->pk_attrs = (yyvsp[-2].list); n->fk_matchtype = (yyvsp[-1].ival); n->fk_upd_action = (char) ((yyvsp[0].ival) >> 8); n->fk_del_action = (char) ((yyvsp[0].ival) & 0xFF); n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *)n; } #line 29267 "gram.c" /* yacc.c:1652 */ break; case 472: #line 3541 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; } #line 29273 "gram.c" /* yacc.c:1652 */ break; case 473: #line 3542 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; } #line 29279 "gram.c" /* yacc.c:1652 */ break; case 474: #line 3562 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 29290 "gram.c" /* yacc.c:1652 */ break; case 475: #line 3569 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29301 "gram.c" /* yacc.c:1652 */ break; case 476: #line 3576 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29312 "gram.c" /* yacc.c:1652 */ break; case 477: #line 3583 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 29323 "gram.c" /* yacc.c:1652 */ break; case 478: #line 3594 "gram.y" /* yacc.c:1652 */ { TableLikeClause *n = makeNode(TableLikeClause); n->relation = (yyvsp[-1].range); n->options = (yyvsp[0].ival); n->relationOid = InvalidOid; (yyval.node) = (Node *)n; } #line 29335 "gram.c" /* yacc.c:1652 */ break; case 479: #line 3604 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } #line 29341 "gram.c" /* yacc.c:1652 */ break; case 480: #line 3605 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); } #line 29347 "gram.c" /* yacc.c:1652 */ break; case 481: #line 3606 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 29353 "gram.c" /* yacc.c:1652 */ break; case 482: #line 3610 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; } #line 29359 "gram.c" /* yacc.c:1652 */ break; case 483: #line 3611 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; } #line 29365 "gram.c" /* yacc.c:1652 */ break; case 484: #line 3612 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; } #line 29371 "gram.c" /* yacc.c:1652 */ break; case 485: #line 3613 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; } #line 29377 "gram.c" /* yacc.c:1652 */ break; case 486: #line 3614 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; } #line 29383 "gram.c" /* yacc.c:1652 */ break; case 487: #line 3615 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; } #line 29389 "gram.c" /* yacc.c:1652 */ break; case 488: #line 3616 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; } #line 29395 "gram.c" /* yacc.c:1652 */ break; case 489: #line 3617 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; } #line 29401 "gram.c" /* yacc.c:1652 */ break; case 490: #line 3618 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CREATE_TABLE_LIKE_ALL; } #line 29407 "gram.c" /* yacc.c:1652 */ break; case 491: #line 3628 "gram.y" /* yacc.c:1652 */ { Constraint *n = castNode(Constraint, (yyvsp[0].node)); n->conname = (yyvsp[-1].str); n->location = (yylsp[-2]); (yyval.node) = (Node *) n; } #line 29418 "gram.c" /* yacc.c:1652 */ break; case 492: #line 3634 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 29424 "gram.c" /* yacc.c:1652 */ break; case 493: #line 3639 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[-4]); n->raw_expr = (yyvsp[-2].node); n->cooked_expr = NULL; processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK", NULL, NULL, &n->skip_validation, &n->is_no_inherit, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *)n; } #line 29441 "gram.c" /* yacc.c:1652 */ break; case 494: #line 3653 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-7]); n->keys = (yyvsp[-5].list); n->including = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->indexname = NULL; n->indexspace = (yyvsp[-1].str); processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29460 "gram.c" /* yacc.c:1652 */ break; case 495: #line 3668 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[-2]); n->keys = NIL; n->including = NIL; n->options = NIL; n->indexname = (yyvsp[-1].str); n->indexspace = NULL; processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29479 "gram.c" /* yacc.c:1652 */ break; case 496: #line 3684 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-8]); n->keys = (yyvsp[-5].list); n->including = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->indexname = NULL; n->indexspace = (yyvsp[-1].str); processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29498 "gram.c" /* yacc.c:1652 */ break; case 497: #line 3699 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[-3]); n->keys = NIL; n->including = NIL; n->options = NIL; n->indexname = (yyvsp[-1].str); n->indexspace = NULL; processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29517 "gram.c" /* yacc.c:1652 */ break; case 498: #line 3716 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_EXCLUSION; n->location = (yylsp[-9]); n->access_method = (yyvsp[-8].str); n->exclusions = (yyvsp[-6].list); n->including = (yyvsp[-4].list); n->options = (yyvsp[-3].list); n->indexname = NULL; n->indexspace = (yyvsp[-2].str); n->where_clause = (yyvsp[-1].node); processCASbits((yyvsp[0].ival), (yylsp[0]), "EXCLUDE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; } #line 29538 "gram.c" /* yacc.c:1652 */ break; case 499: #line 3734 "gram.y" /* yacc.c:1652 */ { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[-10]); n->pktable = (yyvsp[-4].range); n->fk_attrs = (yyvsp[-7].list); n->pk_attrs = (yyvsp[-3].list); n->fk_matchtype = (yyvsp[-2].ival); n->fk_upd_action = (char) ((yyvsp[-1].ival) >> 8); n->fk_del_action = (char) ((yyvsp[-1].ival) & 0xFF); processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY", &n->deferrable, &n->initdeferred, &n->skip_validation, NULL, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *)n; } #line 29560 "gram.c" /* yacc.c:1652 */ break; case 500: #line 3753 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 29566 "gram.c" /* yacc.c:1652 */ break; case 501: #line 3754 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 29572 "gram.c" /* yacc.c:1652 */ break; case 502: #line 3758 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29578 "gram.c" /* yacc.c:1652 */ break; case 503: #line 3759 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29584 "gram.c" /* yacc.c:1652 */ break; case 504: #line 3763 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 29590 "gram.c" /* yacc.c:1652 */ break; case 505: #line 3764 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 29596 "gram.c" /* yacc.c:1652 */ break; case 506: #line 3768 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 29604 "gram.c" /* yacc.c:1652 */ break; case 507: #line 3773 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29610 "gram.c" /* yacc.c:1652 */ break; case 508: #line 3774 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29616 "gram.c" /* yacc.c:1652 */ break; case 509: #line 3778 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_MATCH_FULL; } #line 29624 "gram.c" /* yacc.c:1652 */ break; case 510: #line 3782 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"), parser_errposition((yylsp[-1])))); (yyval.ival) = FKCONSTR_MATCH_PARTIAL; } #line 29636 "gram.c" /* yacc.c:1652 */ break; case 511: #line 3790 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; } #line 29644 "gram.c" /* yacc.c:1652 */ break; case 512: #line 3794 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; } #line 29652 "gram.c" /* yacc.c:1652 */ break; case 513: #line 3800 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].list)); } #line 29658 "gram.c" /* yacc.c:1652 */ break; case 514: #line 3802 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } #line 29664 "gram.c" /* yacc.c:1652 */ break; case 515: #line 3806 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list)); } #line 29672 "gram.c" /* yacc.c:1652 */ break; case 516: #line 3811 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list)); } #line 29680 "gram.c" /* yacc.c:1652 */ break; case 517: #line 3817 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 29686 "gram.c" /* yacc.c:1652 */ break; case 518: #line 3818 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 29692 "gram.c" /* yacc.c:1652 */ break; case 519: #line 3829 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ((yyvsp[0].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } #line 29698 "gram.c" /* yacc.c:1652 */ break; case 520: #line 3831 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[0].ival) & 0xFF); } #line 29704 "gram.c" /* yacc.c:1652 */ break; case 521: #line 3833 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ((yyvsp[-1].ival) << 8) | ((yyvsp[0].ival) & 0xFF); } #line 29710 "gram.c" /* yacc.c:1652 */ break; case 522: #line 3835 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ((yyvsp[0].ival) << 8) | ((yyvsp[-1].ival) & 0xFF); } #line 29716 "gram.c" /* yacc.c:1652 */ break; case 523: #line 3837 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); } #line 29722 "gram.c" /* yacc.c:1652 */ break; case 524: #line 3840 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 29728 "gram.c" /* yacc.c:1652 */ break; case 525: #line 3843 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 29734 "gram.c" /* yacc.c:1652 */ break; case 526: #line 3847 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_NOACTION; } #line 29740 "gram.c" /* yacc.c:1652 */ break; case 527: #line 3848 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; } #line 29746 "gram.c" /* yacc.c:1652 */ break; case 528: #line 3849 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_CASCADE; } #line 29752 "gram.c" /* yacc.c:1652 */ break; case 529: #line 3850 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_SETNULL; } #line 29758 "gram.c" /* yacc.c:1652 */ break; case 530: #line 3851 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; } #line 29764 "gram.c" /* yacc.c:1652 */ break; case 531: #line 3854 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 29770 "gram.c" /* yacc.c:1652 */ break; case 532: #line 3855 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29776 "gram.c" /* yacc.c:1652 */ break; case 533: #line 3859 "gram.y" /* yacc.c:1652 */ { (yyval.partspec) = (yyvsp[0].partspec); } #line 29782 "gram.c" /* yacc.c:1652 */ break; case 534: #line 3860 "gram.y" /* yacc.c:1652 */ { (yyval.partspec) = NULL; } #line 29788 "gram.c" /* yacc.c:1652 */ break; case 535: #line 3864 "gram.y" /* yacc.c:1652 */ { PartitionSpec *n = makeNode(PartitionSpec); n->strategy = (yyvsp[-3].str); n->partParams = (yyvsp[-1].list); n->location = (yylsp[-5]); (yyval.partspec) = n; } #line 29802 "gram.c" /* yacc.c:1652 */ break; case 536: #line 3875 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29808 "gram.c" /* yacc.c:1652 */ break; case 537: #line 3876 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 29814 "gram.c" /* yacc.c:1652 */ break; case 538: #line 3879 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].partelem)); } #line 29820 "gram.c" /* yacc.c:1652 */ break; case 539: #line 3880 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); } #line 29826 "gram.c" /* yacc.c:1652 */ break; case 540: #line 3884 "gram.y" /* yacc.c:1652 */ { PartitionElem *n = makeNode(PartitionElem); n->name = (yyvsp[-2].str); n->expr = NULL; n->collation = (yyvsp[-1].list); n->opclass = (yyvsp[0].list); n->location = (yylsp[-2]); (yyval.partelem) = n; } #line 29841 "gram.c" /* yacc.c:1652 */ break; case 541: #line 3895 "gram.y" /* yacc.c:1652 */ { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; n->expr = (yyvsp[-2].node); n->collation = (yyvsp[-1].list); n->opclass = (yyvsp[0].list); n->location = (yylsp[-2]); (yyval.partelem) = n; } #line 29856 "gram.c" /* yacc.c:1652 */ break; case 542: #line 3906 "gram.y" /* yacc.c:1652 */ { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; n->expr = (yyvsp[-3].node); n->collation = (yyvsp[-1].list); n->opclass = (yyvsp[0].list); n->location = (yylsp[-4]); (yyval.partelem) = n; } #line 29871 "gram.c" /* yacc.c:1652 */ break; case 543: #line 3919 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29877 "gram.c" /* yacc.c:1652 */ break; case 544: #line 3920 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 29883 "gram.c" /* yacc.c:1652 */ break; case 545: #line 3925 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 29889 "gram.c" /* yacc.c:1652 */ break; case 546: #line 3926 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29895 "gram.c" /* yacc.c:1652 */ break; case 547: #line 3927 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 29901 "gram.c" /* yacc.c:1652 */ break; case 548: #line 3930 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_DROP; } #line 29907 "gram.c" /* yacc.c:1652 */ break; case 549: #line 3931 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; } #line 29913 "gram.c" /* yacc.c:1652 */ break; case 550: #line 3932 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; } #line 29919 "gram.c" /* yacc.c:1652 */ break; case 551: #line 3933 "gram.y" /* yacc.c:1652 */ { (yyval.oncommit) = ONCOMMIT_NOOP; } #line 29925 "gram.c" /* yacc.c:1652 */ break; case 552: #line 3936 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29931 "gram.c" /* yacc.c:1652 */ break; case 553: #line 3937 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 29937 "gram.c" /* yacc.c:1652 */ break; case 554: #line 3940 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29943 "gram.c" /* yacc.c:1652 */ break; case 555: #line 3941 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 29949 "gram.c" /* yacc.c:1652 */ break; case 556: #line 3944 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 29955 "gram.c" /* yacc.c:1652 */ break; case 557: #line 3964 "gram.y" /* yacc.c:1652 */ { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[-5].list); n->stat_types = (yyvsp[-4].list); n->exprs = (yyvsp[-2].list); n->relations = (yyvsp[0].list); n->stxcomment = NULL; n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 29970 "gram.c" /* yacc.c:1652 */ break; case 558: #line 3976 "gram.y" /* yacc.c:1652 */ { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[-5].list); n->stat_types = (yyvsp[-4].list); n->exprs = (yyvsp[-2].list); n->relations = (yyvsp[0].list); n->stxcomment = NULL; n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 29985 "gram.c" /* yacc.c:1652 */ break; case 559: #line 4000 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 30002 "gram.c" /* yacc.c:1652 */ break; case 560: #line 4013 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-8].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 30019 "gram.c" /* yacc.c:1652 */ break; case 561: #line 4030 "gram.y" /* yacc.c:1652 */ { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[-5].range); (yyval.into)->colNames = (yyvsp[-4].list); (yyval.into)->accessMethod = (yyvsp[-3].str); (yyval.into)->options = (yyvsp[-2].list); (yyval.into)->onCommit = (yyvsp[-1].oncommit); (yyval.into)->tableSpaceName = (yyvsp[0].str); (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; /* might get changed later */ } #line 30035 "gram.c" /* yacc.c:1652 */ break; case 562: #line 4044 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 30041 "gram.c" /* yacc.c:1652 */ break; case 563: #line 4045 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 30047 "gram.c" /* yacc.c:1652 */ break; case 564: #line 4046 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 30053 "gram.c" /* yacc.c:1652 */ break; case 565: #line 4059 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-6].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 30070 "gram.c" /* yacc.c:1652 */ break; case 566: #line 4072 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[-1].node); ctas->into = (yyvsp[-3].into); ctas->relkind = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-9].ival); (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 30087 "gram.c" /* yacc.c:1652 */ break; case 567: #line 4088 "gram.y" /* yacc.c:1652 */ { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[-4].range); (yyval.into)->colNames = (yyvsp[-3].list); (yyval.into)->accessMethod = (yyvsp[-2].str); (yyval.into)->options = (yyvsp[-1].list); (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = (yyvsp[0].str); (yyval.into)->viewQuery = NULL; /* filled at analysis time */ (yyval.into)->skipData = false; /* might get changed later */ } #line 30103 "gram.c" /* yacc.c:1652 */ break; case 568: #line 4101 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_UNLOGGED; } #line 30109 "gram.c" /* yacc.c:1652 */ break; case 569: #line 4102 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RELPERSISTENCE_PERMANENT; } #line 30115 "gram.c" /* yacc.c:1652 */ break; case 570: #line 4115 "gram.y" /* yacc.c:1652 */ { RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt); n->concurrent = (yyvsp[-2].boolean); n->relation = (yyvsp[-1].range); n->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) n; } #line 30127 "gram.c" /* yacc.c:1652 */ break; case 571: #line 4135 "gram.y" /* yacc.c:1652 */ { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->ownerId = InvalidOid; n->if_not_exists = false; (yyval.node) = (Node *)n; } #line 30141 "gram.c" /* yacc.c:1652 */ break; case 572: #line 4145 "gram.y" /* yacc.c:1652 */ { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->ownerId = InvalidOid; n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 30155 "gram.c" /* yacc.c:1652 */ break; case 573: #line 4158 "gram.y" /* yacc.c:1652 */ { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 30167 "gram.c" /* yacc.c:1652 */ break; case 574: #line 4166 "gram.y" /* yacc.c:1652 */ { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[-1].range); n->options = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 30179 "gram.c" /* yacc.c:1652 */ break; case 575: #line 4176 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30185 "gram.c" /* yacc.c:1652 */ break; case 576: #line 4177 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30191 "gram.c" /* yacc.c:1652 */ break; case 577: #line 4180 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 30197 "gram.c" /* yacc.c:1652 */ break; case 578: #line 4181 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30203 "gram.c" /* yacc.c:1652 */ break; case 579: #line 4184 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 30209 "gram.c" /* yacc.c:1652 */ break; case 580: #line 4185 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 30215 "gram.c" /* yacc.c:1652 */ break; case 581: #line 4189 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].typnam), (yylsp[-1])); } #line 30223 "gram.c" /* yacc.c:1652 */ break; case 582: #line 4193 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 30231 "gram.c" /* yacc.c:1652 */ break; case 583: #line 4197 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(true), (yylsp[0])); } #line 30239 "gram.c" /* yacc.c:1652 */ break; case 584: #line 4201 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(false), (yylsp[-1])); } #line 30247 "gram.c" /* yacc.c:1652 */ break; case 585: #line 4205 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 30255 "gram.c" /* yacc.c:1652 */ break; case 586: #line 4209 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 30263 "gram.c" /* yacc.c:1652 */ break; case 587: #line 4213 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 30271 "gram.c" /* yacc.c:1652 */ break; case 588: #line 4217 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1])); } #line 30279 "gram.c" /* yacc.c:1652 */ break; case 589: #line 4221 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1])); } #line 30287 "gram.c" /* yacc.c:1652 */ break; case 590: #line 4225 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 30295 "gram.c" /* yacc.c:1652 */ break; case 591: #line 4229 "gram.y" /* yacc.c:1652 */ { /* not documented, only used by pg_dump */ (yyval.defelt) = makeDefElem("sequence_name", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 30304 "gram.c" /* yacc.c:1652 */ break; case 592: #line 4234 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 30312 "gram.c" /* yacc.c:1652 */ break; case 593: #line 4238 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0])); } #line 30320 "gram.c" /* yacc.c:1652 */ break; case 594: #line 4242 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[0].value), (yylsp[-2])); } #line 30328 "gram.c" /* yacc.c:1652 */ break; case 595: #line 4247 "gram.y" /* yacc.c:1652 */ {} #line 30334 "gram.c" /* yacc.c:1652 */ break; case 596: #line 4248 "gram.y" /* yacc.c:1652 */ {} #line 30340 "gram.c" /* yacc.c:1652 */ break; case 597: #line 4252 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeFloat((yyvsp[0].str)); } #line 30346 "gram.c" /* yacc.c:1652 */ break; case 598: #line 4253 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeFloat((yyvsp[0].str)); } #line 30352 "gram.c" /* yacc.c:1652 */ break; case 599: #line 4255 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeFloat((yyvsp[0].str)); doNegateFloat((yyval.value)); } #line 30361 "gram.c" /* yacc.c:1652 */ break; case 600: #line 4259 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeInteger((yyvsp[0].ival)); } #line 30367 "gram.c" /* yacc.c:1652 */ break; case 601: #line 4262 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].value)); } #line 30373 "gram.c" /* yacc.c:1652 */ break; case 602: #line 4263 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } #line 30379 "gram.c" /* yacc.c:1652 */ break; case 603: #line 4276 "gram.y" /* yacc.c:1652 */ { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[-4].boolean); n->plname = (yyvsp[0].str); /* parameters are all to be supplied by system */ n->plhandler = NIL; n->plinline = NIL; n->plvalidator = NIL; n->pltrusted = false; (yyval.node) = (Node *)n; } #line 30395 "gram.c" /* yacc.c:1652 */ break; case 604: #line 4289 "gram.y" /* yacc.c:1652 */ { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[-8].boolean); n->plname = (yyvsp[-4].str); n->plhandler = (yyvsp[-2].list); n->plinline = (yyvsp[-1].list); n->plvalidator = (yyvsp[0].list); n->pltrusted = (yyvsp[-7].boolean); (yyval.node) = (Node *)n; } #line 30410 "gram.c" /* yacc.c:1652 */ break; case 605: #line 4302 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 30416 "gram.c" /* yacc.c:1652 */ break; case 606: #line 4303 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 30422 "gram.c" /* yacc.c:1652 */ break; case 607: #line 4311 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 30428 "gram.c" /* yacc.c:1652 */ break; case 608: #line 4312 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } #line 30434 "gram.c" /* yacc.c:1652 */ break; case 609: #line 4316 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30440 "gram.c" /* yacc.c:1652 */ break; case 610: #line 4317 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30446 "gram.c" /* yacc.c:1652 */ break; case 611: #line 4321 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30452 "gram.c" /* yacc.c:1652 */ break; case 612: #line 4322 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30458 "gram.c" /* yacc.c:1652 */ break; case 613: #line 4326 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 30464 "gram.c" /* yacc.c:1652 */ break; case 614: #line 4327 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30470 "gram.c" /* yacc.c:1652 */ break; case 615: #line 4332 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(makeString((yyvsp[-1].str))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 30484 "gram.c" /* yacc.c:1652 */ break; case 616: #line 4342 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(makeString((yyvsp[-1].str))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 30498 "gram.c" /* yacc.c:1652 */ break; case 617: #line 4354 "gram.y" /* yacc.c:1652 */ {} #line 30504 "gram.c" /* yacc.c:1652 */ break; case 618: #line 4355 "gram.y" /* yacc.c:1652 */ {} #line 30510 "gram.c" /* yacc.c:1652 */ break; case 619: #line 4366 "gram.y" /* yacc.c:1652 */ { CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); n->tablespacename = (yyvsp[-4].str); n->owner = (yyvsp[-3].rolespec); n->location = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30523 "gram.c" /* yacc.c:1652 */ break; case 620: #line 4376 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 30529 "gram.c" /* yacc.c:1652 */ break; case 621: #line 4377 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = NULL; } #line 30535 "gram.c" /* yacc.c:1652 */ break; case 622: #line 4391 "gram.y" /* yacc.c:1652 */ { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *) n; } #line 30546 "gram.c" /* yacc.c:1652 */ break; case 623: #line 4398 "gram.y" /* yacc.c:1652 */ { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *) n; } #line 30557 "gram.c" /* yacc.c:1652 */ break; case 624: #line 4415 "gram.y" /* yacc.c:1652 */ { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[-2].str); n->if_not_exists = false; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30569 "gram.c" /* yacc.c:1652 */ break; case 625: #line 4423 "gram.y" /* yacc.c:1652 */ { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[-2].str); n->if_not_exists = true; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30581 "gram.c" /* yacc.c:1652 */ break; case 626: #line 4434 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 30587 "gram.c" /* yacc.c:1652 */ break; case 627: #line 4436 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30593 "gram.c" /* yacc.c:1652 */ break; case 628: #line 4441 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30601 "gram.c" /* yacc.c:1652 */ break; case 629: #line 4445 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30609 "gram.c" /* yacc.c:1652 */ break; case 630: #line 4449 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("old_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30617 "gram.c" /* yacc.c:1652 */ break; case 631: #line 4453 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cascade", (Node *)makeInteger(true), (yylsp[0])); } #line 30625 "gram.c" /* yacc.c:1652 */ break; case 632: #line 4465 "gram.y" /* yacc.c:1652 */ { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 30636 "gram.c" /* yacc.c:1652 */ break; case 633: #line 4475 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 30642 "gram.c" /* yacc.c:1652 */ break; case 634: #line 4477 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 30648 "gram.c" /* yacc.c:1652 */ break; case 635: #line 4482 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 30656 "gram.c" /* yacc.c:1652 */ break; case 636: #line 4495 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_ACCESS_METHOD; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30669 "gram.c" /* yacc.c:1652 */ break; case 637: #line 4504 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30682 "gram.c" /* yacc.c:1652 */ break; case 638: #line 4513 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-7].str); n->action = (yyvsp[-6].ival); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); (yyval.node) = (Node *) n; } #line 30695 "gram.c" /* yacc.c:1652 */ break; case 639: #line 4522 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_COLLATION; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30708 "gram.c" /* yacc.c:1652 */ break; case 640: #line 4531 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30721 "gram.c" /* yacc.c:1652 */ break; case 641: #line 4540 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[0].typnam); (yyval.node) = (Node *)n; } #line 30734 "gram.c" /* yacc.c:1652 */ break; case 642: #line 4549 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30747 "gram.c" /* yacc.c:1652 */ break; case 643: #line 4558 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30760 "gram.c" /* yacc.c:1652 */ break; case 644: #line 4567 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30773 "gram.c" /* yacc.c:1652 */ break; case 645: #line 4576 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); (yyval.node) = (Node *)n; } #line 30786 "gram.c" /* yacc.c:1652 */ break; case 646: #line 4585 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list)); (yyval.node) = (Node *)n; } #line 30799 "gram.c" /* yacc.c:1652 */ break; case 647: #line 4594 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30812 "gram.c" /* yacc.c:1652 */ break; case 648: #line 4603 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[0].objwithargs); (yyval.node) = (Node *)n; } #line 30825 "gram.c" /* yacc.c:1652 */ break; case 649: #line 4612 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_SCHEMA; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30838 "gram.c" /* yacc.c:1652 */ break; case 650: #line 4621 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30851 "gram.c" /* yacc.c:1652 */ break; case 651: #line 4630 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_TABLE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30864 "gram.c" /* yacc.c:1652 */ break; case 652: #line 4639 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30877 "gram.c" /* yacc.c:1652 */ break; case 653: #line 4648 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30890 "gram.c" /* yacc.c:1652 */ break; case 654: #line 4657 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30903 "gram.c" /* yacc.c:1652 */ break; case 655: #line 4666 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30916 "gram.c" /* yacc.c:1652 */ break; case 656: #line 4675 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_SEQUENCE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30929 "gram.c" /* yacc.c:1652 */ break; case 657: #line 4684 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_VIEW; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30942 "gram.c" /* yacc.c:1652 */ break; case 658: #line 4693 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_MATVIEW; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30955 "gram.c" /* yacc.c:1652 */ break; case 659: #line 4702 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-4].str); n->action = (yyvsp[-3].ival); n->objtype = OBJECT_FOREIGN_TABLE; n->object = (Node *) (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 30968 "gram.c" /* yacc.c:1652 */ break; case 660: #line 4711 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-5].str); n->action = (yyvsp[-4].ival); n->objtype = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30981 "gram.c" /* yacc.c:1652 */ break; case 661: #line 4720 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 30994 "gram.c" /* yacc.c:1652 */ break; case 662: #line 4729 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-6].str); n->action = (yyvsp[-5].ival); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[-2].typnam), makeString((yyvsp[0].str))); (yyval.node) = (Node *)n; } #line 31007 "gram.c" /* yacc.c:1652 */ break; case 663: #line 4738 "gram.y" /* yacc.c:1652 */ { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[-3].str); n->action = (yyvsp[-2].ival); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[0].typnam); (yyval.node) = (Node *)n; } #line 31020 "gram.c" /* yacc.c:1652 */ break; case 664: #line 4756 "gram.y" /* yacc.c:1652 */ { CreateFdwStmt *n = makeNode(CreateFdwStmt); n->fdwname = (yyvsp[-2].str); n->func_options = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31032 "gram.c" /* yacc.c:1652 */ break; case 665: #line 4766 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 31038 "gram.c" /* yacc.c:1652 */ break; case 666: #line 4767 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); } #line 31044 "gram.c" /* yacc.c:1652 */ break; case 667: #line 4768 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 31050 "gram.c" /* yacc.c:1652 */ break; case 668: #line 4769 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); } #line 31056 "gram.c" /* yacc.c:1652 */ break; case 669: #line 4773 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 31062 "gram.c" /* yacc.c:1652 */ break; case 670: #line 4774 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 31068 "gram.c" /* yacc.c:1652 */ break; case 671: #line 4778 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31074 "gram.c" /* yacc.c:1652 */ break; case 672: #line 4779 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 31080 "gram.c" /* yacc.c:1652 */ break; case 673: #line 4790 "gram.y" /* yacc.c:1652 */ { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[-2].str); n->func_options = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31092 "gram.c" /* yacc.c:1652 */ break; case 674: #line 4798 "gram.y" /* yacc.c:1652 */ { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[-1].str); n->func_options = (yyvsp[0].list); n->options = NIL; (yyval.node) = (Node *) n; } #line 31104 "gram.c" /* yacc.c:1652 */ break; case 675: #line 4809 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 31110 "gram.c" /* yacc.c:1652 */ break; case 676: #line 4810 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 31116 "gram.c" /* yacc.c:1652 */ break; case 677: #line 4815 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 31124 "gram.c" /* yacc.c:1652 */ break; case 678: #line 4819 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 31132 "gram.c" /* yacc.c:1652 */ break; case 679: #line 4826 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 31138 "gram.c" /* yacc.c:1652 */ break; case 680: #line 4831 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 31146 "gram.c" /* yacc.c:1652 */ break; case 681: #line 4835 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 31154 "gram.c" /* yacc.c:1652 */ break; case 682: #line 4842 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); } #line 31162 "gram.c" /* yacc.c:1652 */ break; case 683: #line 4846 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = DEFELEM_SET; } #line 31171 "gram.c" /* yacc.c:1652 */ break; case 684: #line 4851 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; } #line 31180 "gram.c" /* yacc.c:1652 */ break; case 685: #line 4856 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0])); } #line 31188 "gram.c" /* yacc.c:1652 */ break; case 686: #line 4863 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 31196 "gram.c" /* yacc.c:1652 */ break; case 687: #line 4869 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31202 "gram.c" /* yacc.c:1652 */ break; case 688: #line 4874 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 31208 "gram.c" /* yacc.c:1652 */ break; case 689: #line 4886 "gram.y" /* yacc.c:1652 */ { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[-7].str); n->servertype = (yyvsp[-6].str); n->version = (yyvsp[-5].str); n->fdwname = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *) n; } #line 31223 "gram.c" /* yacc.c:1652 */ break; case 690: #line 4898 "gram.y" /* yacc.c:1652 */ { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[-7].str); n->servertype = (yyvsp[-6].str); n->version = (yyvsp[-5].str); n->fdwname = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *) n; } #line 31238 "gram.c" /* yacc.c:1652 */ break; case 691: #line 4911 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31244 "gram.c" /* yacc.c:1652 */ break; case 692: #line 4912 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 31250 "gram.c" /* yacc.c:1652 */ break; case 693: #line 4917 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31256 "gram.c" /* yacc.c:1652 */ break; case 694: #line 4918 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 31262 "gram.c" /* yacc.c:1652 */ break; case 695: #line 4922 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31268 "gram.c" /* yacc.c:1652 */ break; case 696: #line 4923 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 31274 "gram.c" /* yacc.c:1652 */ break; case 697: #line 4934 "gram.y" /* yacc.c:1652 */ { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-2].str); n->version = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->has_version = true; (yyval.node) = (Node *) n; } #line 31287 "gram.c" /* yacc.c:1652 */ break; case 698: #line 4943 "gram.y" /* yacc.c:1652 */ { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-1].str); n->version = (yyvsp[0].str); n->has_version = true; (yyval.node) = (Node *) n; } #line 31299 "gram.c" /* yacc.c:1652 */ break; case 699: #line 4951 "gram.y" /* yacc.c:1652 */ { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31310 "gram.c" /* yacc.c:1652 */ break; case 700: #line 4970 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-7].range); n->base.tableElts = (yyvsp[-5].list); n->base.inhRelations = (yyvsp[-3].list); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31332 "gram.c" /* yacc.c:1652 */ break; case 701: #line 4990 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-7].range); n->base.tableElts = (yyvsp[-5].list); n->base.inhRelations = (yyvsp[-3].list); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31354 "gram.c" /* yacc.c:1652 */ break; case 702: #line 5010 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-8].range); n->base.inhRelations = list_make1((yyvsp[-5].range)); n->base.tableElts = (yyvsp[-4].list); n->base.partbound = (yyvsp[-3].partboundspec); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31377 "gram.c" /* yacc.c:1652 */ break; case 703: #line 5031 "gram.y" /* yacc.c:1652 */ { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[-8].range); n->base.inhRelations = list_make1((yyvsp[-5].range)); n->base.tableElts = (yyvsp[-4].list); n->base.partbound = (yyvsp[-3].partboundspec); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31400 "gram.c" /* yacc.c:1652 */ break; case 704: #line 5060 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; } #line 31413 "gram.c" /* yacc.c:1652 */ break; case 705: #line 5069 "gram.y" /* yacc.c:1652 */ { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[-1].range); n->cmds = (yyvsp[0].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; } #line 31426 "gram.c" /* yacc.c:1652 */ break; case 706: #line 5091 "gram.y" /* yacc.c:1652 */ { ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt); n->server_name = (yyvsp[-3].str); n->remote_schema = (yyvsp[-7].str); n->local_schema = (yyvsp[-1].str); n->list_type = (yyvsp[-6].importqual)->type; n->table_list = (yyvsp[-6].importqual)->table_names; n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31441 "gram.c" /* yacc.c:1652 */ break; case 707: #line 5104 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; } #line 31447 "gram.c" /* yacc.c:1652 */ break; case 708: #line 5105 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; } #line 31453 "gram.c" /* yacc.c:1652 */ break; case 709: #line 5110 "gram.y" /* yacc.c:1652 */ { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = (yyvsp[-3].ival); n->table_names = (yyvsp[-1].list); (yyval.importqual) = n; } #line 31464 "gram.c" /* yacc.c:1652 */ break; case 710: #line 5117 "gram.y" /* yacc.c:1652 */ { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = FDW_IMPORT_SCHEMA_ALL; n->table_names = NIL; (yyval.importqual) = n; } #line 31475 "gram.c" /* yacc.c:1652 */ break; case 711: #line 5133 "gram.y" /* yacc.c:1652 */ { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = false; (yyval.node) = (Node *) n; } #line 31488 "gram.c" /* yacc.c:1652 */ break; case 712: #line 5142 "gram.y" /* yacc.c:1652 */ { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *) n; } #line 31501 "gram.c" /* yacc.c:1652 */ break; case 713: #line 5153 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 31507 "gram.c" /* yacc.c:1652 */ break; case 714: #line 5154 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } #line 31513 "gram.c" /* yacc.c:1652 */ break; case 715: #line 5167 "gram.y" /* yacc.c:1652 */ { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[-2].rolespec); n->servername = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *) n; } #line 31525 "gram.c" /* yacc.c:1652 */ break; case 716: #line 5175 "gram.y" /* yacc.c:1652 */ { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[-2].rolespec); n->servername = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *) n; } #line 31537 "gram.c" /* yacc.c:1652 */ break; case 717: #line 5192 "gram.y" /* yacc.c:1652 */ { AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); n->user = (yyvsp[-3].rolespec); n->servername = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 31549 "gram.c" /* yacc.c:1652 */ break; case 718: #line 5218 "gram.y" /* yacc.c:1652 */ { CreatePolicyStmt *n = makeNode(CreatePolicyStmt); n->policy_name = (yyvsp[-7].str); n->table = (yyvsp[-5].range); n->permissive = (yyvsp[-4].boolean); n->cmd_name = (yyvsp[-3].str); n->roles = (yyvsp[-2].list); n->qual = (yyvsp[-1].node); n->with_check = (yyvsp[0].node); (yyval.node) = (Node *) n; } #line 31565 "gram.c" /* yacc.c:1652 */ break; case 719: #line 5234 "gram.y" /* yacc.c:1652 */ { AlterPolicyStmt *n = makeNode(AlterPolicyStmt); n->policy_name = (yyvsp[-5].str); n->table = (yyvsp[-3].range); n->roles = (yyvsp[-2].list); n->qual = (yyvsp[-1].node); n->with_check = (yyvsp[0].node); (yyval.node) = (Node *) n; } #line 31579 "gram.c" /* yacc.c:1652 */ break; case 720: #line 5246 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 31585 "gram.c" /* yacc.c:1652 */ break; case 721: #line 5247 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 31591 "gram.c" /* yacc.c:1652 */ break; case 722: #line 5251 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 31597 "gram.c" /* yacc.c:1652 */ break; case 723: #line 5252 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 31603 "gram.c" /* yacc.c:1652 */ break; case 724: #line 5256 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31609 "gram.c" /* yacc.c:1652 */ break; case 725: #line 5257 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); } #line 31615 "gram.c" /* yacc.c:1652 */ break; case 726: #line 5261 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31621 "gram.c" /* yacc.c:1652 */ break; case 727: #line 5262 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NULL; } #line 31627 "gram.c" /* yacc.c:1652 */ break; case 728: #line 5267 "gram.y" /* yacc.c:1652 */ { if (strcmp((yyvsp[0].str), "permissive") == 0) (yyval.boolean) = true; else if (strcmp((yyvsp[0].str), "restrictive") == 0) (yyval.boolean) = false; else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized row security option \"%s\"", (yyvsp[0].str)), errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."), parser_errposition((yylsp[0])))); } #line 31645 "gram.c" /* yacc.c:1652 */ break; case 729: #line 5280 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31651 "gram.c" /* yacc.c:1652 */ break; case 730: #line 5284 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31657 "gram.c" /* yacc.c:1652 */ break; case 731: #line 5285 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "all"; } #line 31663 "gram.c" /* yacc.c:1652 */ break; case 732: #line 5289 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "all"; } #line 31669 "gram.c" /* yacc.c:1652 */ break; case 733: #line 5290 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "select"; } #line 31675 "gram.c" /* yacc.c:1652 */ break; case 734: #line 5291 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "insert"; } #line 31681 "gram.c" /* yacc.c:1652 */ break; case 735: #line 5292 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "update"; } #line 31687 "gram.c" /* yacc.c:1652 */ break; case 736: #line 5293 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "delete"; } #line 31693 "gram.c" /* yacc.c:1652 */ break; case 737: #line 5304 "gram.y" /* yacc.c:1652 */ { CreateAmStmt *n = makeNode(CreateAmStmt); n->amname = (yyvsp[-4].str); n->handler_name = (yyvsp[0].list); n->amtype = (yyvsp[-2].chr); (yyval.node) = (Node *) n; } #line 31705 "gram.c" /* yacc.c:1652 */ break; case 738: #line 5314 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = AMTYPE_INDEX; } #line 31711 "gram.c" /* yacc.c:1652 */ break; case 739: #line 5315 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = AMTYPE_TABLE; } #line 31717 "gram.c" /* yacc.c:1652 */ break; case 740: #line 5329 "gram.y" /* yacc.c:1652 */ { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-13].str); n->relation = (yyvsp[-9].range); n->funcname = (yyvsp[-3].list); n->args = (yyvsp[-1].list); n->row = (yyvsp[-7].boolean); n->timing = (yyvsp[-12].ival); n->events = intVal(linitial((yyvsp[-11].list))); n->columns = (List *) lsecond((yyvsp[-11].list)); n->whenClause = (yyvsp[-6].node); n->transitionRels = (yyvsp[-8].list); n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->constrrel = NULL; (yyval.node) = (Node *)n; } #line 31740 "gram.c" /* yacc.c:1652 */ break; case 741: #line 5351 "gram.y" /* yacc.c:1652 */ { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[-16].str); n->relation = (yyvsp[-12].range); n->funcname = (yyvsp[-3].list); n->args = (yyvsp[-1].list); n->row = true; n->timing = TRIGGER_TYPE_AFTER; n->events = intVal(linitial((yyvsp[-14].list))); n->columns = (List *) lsecond((yyvsp[-14].list)); n->whenClause = (yyvsp[-6].node); n->transitionRels = NIL; n->isconstraint = true; processCASbits((yyvsp[-10].ival), (yylsp[-10]), "TRIGGER", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); n->constrrel = (yyvsp[-11].range); (yyval.node) = (Node *)n; } #line 31764 "gram.c" /* yacc.c:1652 */ break; case 742: #line 5373 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = TRIGGER_TYPE_BEFORE; } #line 31770 "gram.c" /* yacc.c:1652 */ break; case 743: #line 5374 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = TRIGGER_TYPE_AFTER; } #line 31776 "gram.c" /* yacc.c:1652 */ break; case 744: #line 5375 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = TRIGGER_TYPE_INSTEAD; } #line 31782 "gram.c" /* yacc.c:1652 */ break; case 745: #line 5380 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31788 "gram.c" /* yacc.c:1652 */ break; case 746: #line 5382 "gram.y" /* yacc.c:1652 */ { int events1 = intVal(linitial((yyvsp[-2].list))); int events2 = intVal(linitial((yyvsp[0].list))); List *columns1 = (List *) lsecond((yyvsp[-2].list)); List *columns2 = (List *) lsecond((yyvsp[0].list)); if (events1 & events2) parser_yyerror("duplicate trigger events specified"); /* * concat'ing the columns lists loses information about * which columns went with which event, but so long as * only UPDATE carries columns and we disallow multiple * UPDATE items, it doesn't matter. Command execution * should just ignore the columns for non-UPDATE events. */ (yyval.list) = list_make2(makeInteger(events1 | events2), list_concat(columns1, columns2)); } #line 31811 "gram.c" /* yacc.c:1652 */ break; case 747: #line 5404 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); } #line 31817 "gram.c" /* yacc.c:1652 */ break; case 748: #line 5406 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); } #line 31823 "gram.c" /* yacc.c:1652 */ break; case 749: #line 5408 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); } #line 31829 "gram.c" /* yacc.c:1652 */ break; case 750: #line 5410 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); } #line 31835 "gram.c" /* yacc.c:1652 */ break; case 751: #line 5412 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); } #line 31841 "gram.c" /* yacc.c:1652 */ break; case 752: #line 5416 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 31847 "gram.c" /* yacc.c:1652 */ break; case 753: #line 5417 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 31853 "gram.c" /* yacc.c:1652 */ break; case 754: #line 5421 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 31859 "gram.c" /* yacc.c:1652 */ break; case 755: #line 5422 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 31865 "gram.c" /* yacc.c:1652 */ break; case 756: #line 5427 "gram.y" /* yacc.c:1652 */ { TriggerTransition *n = makeNode(TriggerTransition); n->name = (yyvsp[0].str); n->isNew = (yyvsp[-3].boolean); n->isTable = (yyvsp[-2].boolean); (yyval.node) = (Node *)n; } #line 31877 "gram.c" /* yacc.c:1652 */ break; case 757: #line 5437 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31883 "gram.c" /* yacc.c:1652 */ break; case 758: #line 5438 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 31889 "gram.c" /* yacc.c:1652 */ break; case 759: #line 5442 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31895 "gram.c" /* yacc.c:1652 */ break; case 760: #line 5451 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 31901 "gram.c" /* yacc.c:1652 */ break; case 761: #line 5455 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 31907 "gram.c" /* yacc.c:1652 */ break; case 762: #line 5460 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = (yyvsp[0].boolean); } #line 31915 "gram.c" /* yacc.c:1652 */ break; case 763: #line 5464 "gram.y" /* yacc.c:1652 */ { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = false; } #line 31927 "gram.c" /* yacc.c:1652 */ break; case 764: #line 5474 "gram.y" /* yacc.c:1652 */ {} #line 31933 "gram.c" /* yacc.c:1652 */ break; case 765: #line 5475 "gram.y" /* yacc.c:1652 */ {} #line 31939 "gram.c" /* yacc.c:1652 */ break; case 766: #line 5479 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 31945 "gram.c" /* yacc.c:1652 */ break; case 767: #line 5480 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 31951 "gram.c" /* yacc.c:1652 */ break; case 768: #line 5484 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 31957 "gram.c" /* yacc.c:1652 */ break; case 769: #line 5485 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 31963 "gram.c" /* yacc.c:1652 */ break; case 772: #line 5494 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].value)); } #line 31969 "gram.c" /* yacc.c:1652 */ break; case 773: #line 5495 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } #line 31975 "gram.c" /* yacc.c:1652 */ break; case 774: #line 5496 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 31981 "gram.c" /* yacc.c:1652 */ break; case 775: #line 5501 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString(psprintf("%d", (yyvsp[0].ival))); } #line 31989 "gram.c" /* yacc.c:1652 */ break; case 776: #line 5504 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 31995 "gram.c" /* yacc.c:1652 */ break; case 777: #line 5505 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 32001 "gram.c" /* yacc.c:1652 */ break; case 778: #line 5506 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 32007 "gram.c" /* yacc.c:1652 */ break; case 779: #line 5510 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); } #line 32013 "gram.c" /* yacc.c:1652 */ break; case 780: #line 5511 "gram.y" /* yacc.c:1652 */ { (yyval.range) = NULL; } #line 32019 "gram.c" /* yacc.c:1652 */ break; case 781: #line 5516 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 32025 "gram.c" /* yacc.c:1652 */ break; case 782: #line 5518 "gram.y" /* yacc.c:1652 */ { /* * We must complain about conflicting options. * We could, but choose not to, complain about redundant * options (ie, where $2's bit is already set in $1). */ int newspec = (yyvsp[-1].ival) | (yyvsp[0].ival); /* special message for this case */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), parser_errposition((yylsp[0])))); /* generic message for other conflicts */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting constraint properties"), parser_errposition((yylsp[0])))); (yyval.ival) = newspec; } #line 32053 "gram.c" /* yacc.c:1652 */ break; case 783: #line 5544 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_NOT_DEFERRABLE; } #line 32059 "gram.c" /* yacc.c:1652 */ break; case 784: #line 5545 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_DEFERRABLE; } #line 32065 "gram.c" /* yacc.c:1652 */ break; case 785: #line 5546 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; } #line 32071 "gram.c" /* yacc.c:1652 */ break; case 786: #line 5547 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_INITIALLY_DEFERRED; } #line 32077 "gram.c" /* yacc.c:1652 */ break; case 787: #line 5548 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_NOT_VALID; } #line 32083 "gram.c" /* yacc.c:1652 */ break; case 788: #line 5549 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CAS_NO_INHERIT; } #line 32089 "gram.c" /* yacc.c:1652 */ break; case 789: #line 5564 "gram.y" /* yacc.c:1652 */ { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[-7].str); n->eventname = (yyvsp[-5].str); n->whenclause = NULL; n->funcname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } #line 32102 "gram.c" /* yacc.c:1652 */ break; case 790: #line 5575 "gram.y" /* yacc.c:1652 */ { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[-9].str); n->eventname = (yyvsp[-7].str); n->whenclause = (yyvsp[-5].list); n->funcname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } #line 32115 "gram.c" /* yacc.c:1652 */ break; case 791: #line 5587 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 32121 "gram.c" /* yacc.c:1652 */ break; case 792: #line 5589 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 32127 "gram.c" /* yacc.c:1652 */ break; case 793: #line 5594 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); } #line 32133 "gram.c" /* yacc.c:1652 */ break; case 794: #line 5599 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 32139 "gram.c" /* yacc.c:1652 */ break; case 795: #line 5601 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 32145 "gram.c" /* yacc.c:1652 */ break; case 796: #line 5606 "gram.y" /* yacc.c:1652 */ { AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); n->trigname = (yyvsp[-1].str); n->tgenabled = (yyvsp[0].chr); (yyval.node) = (Node *) n; } #line 32156 "gram.c" /* yacc.c:1652 */ break; case 797: #line 5615 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; } #line 32162 "gram.c" /* yacc.c:1652 */ break; case 798: #line 5616 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; } #line 32168 "gram.c" /* yacc.c:1652 */ break; case 799: #line 5617 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_FIRES_ALWAYS; } #line 32174 "gram.c" /* yacc.c:1652 */ break; case 800: #line 5618 "gram.y" /* yacc.c:1652 */ { (yyval.chr) = TRIGGER_DISABLED; } #line 32180 "gram.c" /* yacc.c:1652 */ break; case 801: #line 5630 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = NULL; } #line 32192 "gram.c" /* yacc.c:1652 */ break; case 802: #line 5649 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = false; n->replace = (yyvsp[-4].boolean); n->defnames = (yyvsp[-2].list); n->args = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32207 "gram.c" /* yacc.c:1652 */ break; case 803: #line 5660 "gram.y" /* yacc.c:1652 */ { /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = true; n->replace = (yyvsp[-3].boolean); n->defnames = (yyvsp[-1].list); n->args = NIL; n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32223 "gram.c" /* yacc.c:1652 */ break; case 804: #line 5672 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_OPERATOR; n->oldstyle = false; n->defnames = (yyvsp[-1].list); n->args = NIL; n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32237 "gram.c" /* yacc.c:1652 */ break; case 805: #line 5682 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[-1].list); n->args = NIL; n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32251 "gram.c" /* yacc.c:1652 */ break; case 806: #line 5692 "gram.y" /* yacc.c:1652 */ { /* Shell type (identified by lack of definition) */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[0].list); n->args = NIL; n->definition = NIL; (yyval.node) = (Node *)n; } #line 32266 "gram.c" /* yacc.c:1652 */ break; case 807: #line 5703 "gram.y" /* yacc.c:1652 */ { CompositeTypeStmt *n = makeNode(CompositeTypeStmt); /* can't use qualified_name, sigh */ n->typevar = makeRangeVarFromAnyName((yyvsp[-4].list), (yylsp[-4]), yyscanner); n->coldeflist = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 32279 "gram.c" /* yacc.c:1652 */ break; case 808: #line 5712 "gram.y" /* yacc.c:1652 */ { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[-5].list); n->vals = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 32290 "gram.c" /* yacc.c:1652 */ break; case 809: #line 5719 "gram.y" /* yacc.c:1652 */ { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[-3].list); n->params = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32301 "gram.c" /* yacc.c:1652 */ break; case 810: #line 5726 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSPARSER; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32314 "gram.c" /* yacc.c:1652 */ break; case 811: #line 5735 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSDICTIONARY; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32327 "gram.c" /* yacc.c:1652 */ break; case 812: #line 5744 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSTEMPLATE; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32340 "gram.c" /* yacc.c:1652 */ break; case 813: #line 5753 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSCONFIGURATION; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32353 "gram.c" /* yacc.c:1652 */ break; case 814: #line 5762 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 32366 "gram.c" /* yacc.c:1652 */ break; case 815: #line 5771 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-1].list); n->definition = (yyvsp[0].list); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 32380 "gram.c" /* yacc.c:1652 */ break; case 816: #line 5781 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-2].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); (yyval.node) = (Node *)n; } #line 32393 "gram.c" /* yacc.c:1652 */ break; case 817: #line 5790 "gram.y" /* yacc.c:1652 */ { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[-2].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0]))); n->if_not_exists = true; (yyval.node) = (Node *)n; } #line 32407 "gram.c" /* yacc.c:1652 */ break; case 818: #line 5801 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 32413 "gram.c" /* yacc.c:1652 */ break; case 819: #line 5804 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 32419 "gram.c" /* yacc.c:1652 */ break; case 820: #line 5805 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 32425 "gram.c" /* yacc.c:1652 */ break; case 821: #line 5809 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } #line 32433 "gram.c" /* yacc.c:1652 */ break; case 822: #line 5813 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); } #line 32441 "gram.c" /* yacc.c:1652 */ break; case 823: #line 5819 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].typnam); } #line 32447 "gram.c" /* yacc.c:1652 */ break; case 824: #line 5820 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } #line 32453 "gram.c" /* yacc.c:1652 */ break; case 825: #line 5821 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].list); } #line 32459 "gram.c" /* yacc.c:1652 */ break; case 826: #line 5822 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].value); } #line 32465 "gram.c" /* yacc.c:1652 */ break; case 827: #line 5823 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } #line 32471 "gram.c" /* yacc.c:1652 */ break; case 828: #line 5824 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } #line 32477 "gram.c" /* yacc.c:1652 */ break; case 829: #line 5827 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 32483 "gram.c" /* yacc.c:1652 */ break; case 830: #line 5830 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 32489 "gram.c" /* yacc.c:1652 */ break; case 831: #line 5831 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 32495 "gram.c" /* yacc.c:1652 */ break; case 832: #line 5840 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)(yyvsp[0].node), (yylsp[-2])); } #line 32503 "gram.c" /* yacc.c:1652 */ break; case 833: #line 5846 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 32509 "gram.c" /* yacc.c:1652 */ break; case 834: #line 5847 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32515 "gram.c" /* yacc.c:1652 */ break; case 835: #line 5851 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 32521 "gram.c" /* yacc.c:1652 */ break; case 836: #line 5853 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 32527 "gram.c" /* yacc.c:1652 */ break; case 837: #line 5864 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-4].list); n->oldVal = NULL; n->newVal = (yyvsp[0].str); n->newValNeighbor = NULL; n->newValIsAfter = true; n->skipIfNewValExists = (yyvsp[-1].boolean); (yyval.node) = (Node *) n; } #line 32542 "gram.c" /* yacc.c:1652 */ break; case 838: #line 5875 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-6].list); n->oldVal = NULL; n->newVal = (yyvsp[-2].str); n->newValNeighbor = (yyvsp[0].str); n->newValIsAfter = false; n->skipIfNewValExists = (yyvsp[-3].boolean); (yyval.node) = (Node *) n; } #line 32557 "gram.c" /* yacc.c:1652 */ break; case 839: #line 5886 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-6].list); n->oldVal = NULL; n->newVal = (yyvsp[-2].str); n->newValNeighbor = (yyvsp[0].str); n->newValIsAfter = true; n->skipIfNewValExists = (yyvsp[-3].boolean); (yyval.node) = (Node *) n; } #line 32572 "gram.c" /* yacc.c:1652 */ break; case 840: #line 5897 "gram.y" /* yacc.c:1652 */ { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[-5].list); n->oldVal = (yyvsp[-2].str); n->newVal = (yyvsp[0].str); n->newValNeighbor = NULL; n->newValIsAfter = false; n->skipIfNewValExists = false; (yyval.node) = (Node *) n; } #line 32587 "gram.c" /* yacc.c:1652 */ break; case 841: #line 5909 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 32593 "gram.c" /* yacc.c:1652 */ break; case 842: #line 5910 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32599 "gram.c" /* yacc.c:1652 */ break; case 843: #line 5928 "gram.y" /* yacc.c:1652 */ { CreateOpClassStmt *n = makeNode(CreateOpClassStmt); n->opclassname = (yyvsp[-9].list); n->isDefault = (yyvsp[-8].boolean); n->datatype = (yyvsp[-5].typnam); n->amname = (yyvsp[-3].str); n->opfamilyname = (yyvsp[-2].list); n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 32614 "gram.c" /* yacc.c:1652 */ break; case 844: #line 5941 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 32620 "gram.c" /* yacc.c:1652 */ break; case 845: #line 5942 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 32626 "gram.c" /* yacc.c:1652 */ break; case 846: #line 5947 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); ObjectWithArgs *owa = makeNode(ObjectWithArgs); owa->objname = (yyvsp[-2].list); owa->objargs = NIL; n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = owa; n->number = (yyvsp[-3].ival); n->order_family = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32642 "gram.c" /* yacc.c:1652 */ break; case 847: #line 5960 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[-2].objwithargs); n->number = (yyvsp[-3].ival); n->order_family = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32655 "gram.c" /* yacc.c:1652 */ break; case 848: #line 5969 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[0].objwithargs); n->number = (yyvsp[-1].ival); (yyval.node) = (Node *) n; } #line 32667 "gram.c" /* yacc.c:1652 */ break; case 849: #line 5977 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[0].objwithargs); n->number = (yyvsp[-4].ival); n->class_args = (yyvsp[-2].list); (yyval.node) = (Node *) n; } #line 32680 "gram.c" /* yacc.c:1652 */ break; case 850: #line 5986 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[0].typnam); (yyval.node) = (Node *) n; } #line 32691 "gram.c" /* yacc.c:1652 */ break; case 851: #line 5994 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 32697 "gram.c" /* yacc.c:1652 */ break; case 852: #line 5995 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32703 "gram.c" /* yacc.c:1652 */ break; case 853: #line 5998 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 32709 "gram.c" /* yacc.c:1652 */ break; case 854: #line 5999 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32715 "gram.c" /* yacc.c:1652 */ break; case 855: #line 6002 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32721 "gram.c" /* yacc.c:1652 */ break; case 856: #line 6003 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 32727 "gram.c" /* yacc.c:1652 */ break; case 857: #line 6004 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 32733 "gram.c" /* yacc.c:1652 */ break; case 858: #line 6008 "gram.y" /* yacc.c:1652 */ { /* * RECHECK no longer does anything in opclass definitions, * but we still accept it to ease porting of old database * dumps. */ ereport(NOTICE, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RECHECK is no longer required"), errhint("Update your data type."), parser_errposition((yylsp[0])))); (yyval.boolean) = true; } #line 32751 "gram.c" /* yacc.c:1652 */ break; case 859: #line 6021 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 32757 "gram.c" /* yacc.c:1652 */ break; case 860: #line 6027 "gram.y" /* yacc.c:1652 */ { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[-2].list); n->amname = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 32768 "gram.c" /* yacc.c:1652 */ break; case 861: #line 6037 "gram.y" /* yacc.c:1652 */ { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[-4].list); n->amname = (yyvsp[-2].str); n->isDrop = false; n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 32781 "gram.c" /* yacc.c:1652 */ break; case 862: #line 6046 "gram.y" /* yacc.c:1652 */ { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[-4].list); n->amname = (yyvsp[-2].str); n->isDrop = true; n->items = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 32794 "gram.c" /* yacc.c:1652 */ break; case 863: #line 6057 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 32800 "gram.c" /* yacc.c:1652 */ break; case 864: #line 6058 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 32806 "gram.c" /* yacc.c:1652 */ break; case 865: #line 6063 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->number = (yyvsp[-3].ival); n->class_args = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32818 "gram.c" /* yacc.c:1652 */ break; case 866: #line 6071 "gram.y" /* yacc.c:1652 */ { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->number = (yyvsp[-3].ival); n->class_args = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 32830 "gram.c" /* yacc.c:1652 */ break; case 867: #line 6083 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32844 "gram.c" /* yacc.c:1652 */ break; case 868: #line 6093 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32858 "gram.c" /* yacc.c:1652 */ break; case 869: #line 6106 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32872 "gram.c" /* yacc.c:1652 */ break; case 870: #line 6116 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32886 "gram.c" /* yacc.c:1652 */ break; case 871: #line 6138 "gram.y" /* yacc.c:1652 */ { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 32897 "gram.c" /* yacc.c:1652 */ break; case 872: #line 6148 "gram.y" /* yacc.c:1652 */ { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[-2].list); n->newrole = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 32908 "gram.c" /* yacc.c:1652 */ break; case 873: #line 6166 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32922 "gram.c" /* yacc.c:1652 */ break; case 874: #line 6176 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-2].objtype); n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32936 "gram.c" /* yacc.c:1652 */ break; case 875: #line 6186 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32950 "gram.c" /* yacc.c:1652 */ break; case 876: #line 6196 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-2].objtype); n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; } #line 32964 "gram.c" /* yacc.c:1652 */ break; case 877: #line 6206 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-4].objtype); n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32978 "gram.c" /* yacc.c:1652 */ break; case 878: #line 6216 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[-6].objtype); n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str)))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; } #line 32992 "gram.c" /* yacc.c:1652 */ break; case 879: #line 6226 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 33006 "gram.c" /* yacc.c:1652 */ break; case 880: #line 6236 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 33020 "gram.c" /* yacc.c:1652 */ break; case 881: #line 6246 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 33034 "gram.c" /* yacc.c:1652 */ break; case 882: #line 6256 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; } #line 33048 "gram.c" /* yacc.c:1652 */ break; case 883: #line 6266 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = false; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; } #line 33062 "gram.c" /* yacc.c:1652 */ break; case 884: #line 6276 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = true; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; } #line 33076 "gram.c" /* yacc.c:1652 */ break; case 885: #line 6289 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLE; } #line 33082 "gram.c" /* yacc.c:1652 */ break; case 886: #line 6290 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SEQUENCE; } #line 33088 "gram.c" /* yacc.c:1652 */ break; case 887: #line 6291 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_VIEW; } #line 33094 "gram.c" /* yacc.c:1652 */ break; case 888: #line 6292 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_MATVIEW; } #line 33100 "gram.c" /* yacc.c:1652 */ break; case 889: #line 6293 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_INDEX; } #line 33106 "gram.c" /* yacc.c:1652 */ break; case 890: #line 6294 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } #line 33112 "gram.c" /* yacc.c:1652 */ break; case 891: #line 6295 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLLATION; } #line 33118 "gram.c" /* yacc.c:1652 */ break; case 892: #line 6296 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_CONVERSION; } #line 33124 "gram.c" /* yacc.c:1652 */ break; case 893: #line 6297 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_STATISTIC_EXT; } #line 33130 "gram.c" /* yacc.c:1652 */ break; case 894: #line 6298 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSPARSER; } #line 33136 "gram.c" /* yacc.c:1652 */ break; case 895: #line 6299 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSDICTIONARY; } #line 33142 "gram.c" /* yacc.c:1652 */ break; case 896: #line 6300 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSTEMPLATE; } #line 33148 "gram.c" /* yacc.c:1652 */ break; case 897: #line 6301 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSCONFIGURATION; } #line 33154 "gram.c" /* yacc.c:1652 */ break; case 898: #line 6306 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ACCESS_METHOD; } #line 33160 "gram.c" /* yacc.c:1652 */ break; case 899: #line 6307 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } #line 33166 "gram.c" /* yacc.c:1652 */ break; case 900: #line 6308 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EXTENSION; } #line 33172 "gram.c" /* yacc.c:1652 */ break; case 901: #line 6309 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FDW; } #line 33178 "gram.c" /* yacc.c:1652 */ break; case 902: #line 6310 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_PUBLICATION; } #line 33184 "gram.c" /* yacc.c:1652 */ break; case 903: #line 6311 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SCHEMA; } #line 33190 "gram.c" /* yacc.c:1652 */ break; case 904: #line 6312 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } #line 33196 "gram.c" /* yacc.c:1652 */ break; case 905: #line 6317 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_POLICY; } #line 33202 "gram.c" /* yacc.c:1652 */ break; case 906: #line 6318 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_RULE; } #line 33208 "gram.c" /* yacc.c:1652 */ break; case 907: #line 6319 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TRIGGER; } #line 33214 "gram.c" /* yacc.c:1652 */ break; case 908: #line 6323 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].list)); } #line 33220 "gram.c" /* yacc.c:1652 */ break; case 909: #line 6324 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } #line 33226 "gram.c" /* yacc.c:1652 */ break; case 910: #line 6327 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 33232 "gram.c" /* yacc.c:1652 */ break; case 911: #line 6328 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); } #line 33238 "gram.c" /* yacc.c:1652 */ break; case 912: #line 6332 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 33244 "gram.c" /* yacc.c:1652 */ break; case 913: #line 6334 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 33250 "gram.c" /* yacc.c:1652 */ break; case 914: #line 6338 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].typnam)); } #line 33256 "gram.c" /* yacc.c:1652 */ break; case 915: #line 6339 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } #line 33262 "gram.c" /* yacc.c:1652 */ break; case 916: #line 6351 "gram.y" /* yacc.c:1652 */ { TruncateStmt *n = makeNode(TruncateStmt); n->relations = (yyvsp[-2].list); n->restart_seqs = (yyvsp[-1].boolean); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 33274 "gram.c" /* yacc.c:1652 */ break; case 917: #line 6361 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 33280 "gram.c" /* yacc.c:1652 */ break; case 918: #line 6362 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 33286 "gram.c" /* yacc.c:1652 */ break; case 919: #line 6363 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 33292 "gram.c" /* yacc.c:1652 */ break; case 920: #line 6398 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) (yyvsp[-2].list); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33304 "gram.c" /* yacc.c:1652 */ break; case 921: #line 6406 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) makeString((yyvsp[-2].str)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33316 "gram.c" /* yacc.c:1652 */ break; case 922: #line 6414 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[-2].typnam); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33328 "gram.c" /* yacc.c:1652 */ break; case 923: #line 6422 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-2].typnam); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33340 "gram.c" /* yacc.c:1652 */ break; case 924: #line 6430 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33352 "gram.c" /* yacc.c:1652 */ break; case 925: #line 6438 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33364 "gram.c" /* yacc.c:1652 */ break; case 926: #line 6446 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33376 "gram.c" /* yacc.c:1652 */ break; case 927: #line 6454 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TABCONSTRAINT; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33388 "gram.c" /* yacc.c:1652 */ break; case 928: #line 6462 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMCONSTRAINT; /* * should use Typename not any_name in the production, but * there's a shift/reduce conflict if we do that, so fix it * up here. */ n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[-2].list)), makeString((yyvsp[-5].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33405 "gram.c" /* yacc.c:1652 */ break; case 929: #line 6475 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_POLICY; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33417 "gram.c" /* yacc.c:1652 */ break; case 930: #line 6483 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33429 "gram.c" /* yacc.c:1652 */ break; case 931: #line 6491 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-2].objwithargs); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33441 "gram.c" /* yacc.c:1652 */ break; case 932: #line 6499 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33453 "gram.c" /* yacc.c:1652 */ break; case 933: #line 6507 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[-4].typnam), makeString((yyvsp[-2].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33465 "gram.c" /* yacc.c:1652 */ break; case 934: #line 6515 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRIGGER; n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str))); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33477 "gram.c" /* yacc.c:1652 */ break; case 935: #line 6523 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33489 "gram.c" /* yacc.c:1652 */ break; case 936: #line 6531 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33501 "gram.c" /* yacc.c:1652 */ break; case 937: #line 6539 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-2].value); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33513 "gram.c" /* yacc.c:1652 */ break; case 938: #line 6547 "gram.y" /* yacc.c:1652 */ { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[-5].typnam), (yyvsp[-3].typnam)); n->comment = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33525 "gram.c" /* yacc.c:1652 */ break; case 939: #line 6558 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLUMN; } #line 33531 "gram.c" /* yacc.c:1652 */ break; case 940: #line 6559 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_INDEX; } #line 33537 "gram.c" /* yacc.c:1652 */ break; case 941: #line 6560 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SEQUENCE; } #line 33543 "gram.c" /* yacc.c:1652 */ break; case 942: #line 6561 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_STATISTIC_EXT; } #line 33549 "gram.c" /* yacc.c:1652 */ break; case 943: #line 6562 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLE; } #line 33555 "gram.c" /* yacc.c:1652 */ break; case 944: #line 6563 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_VIEW; } #line 33561 "gram.c" /* yacc.c:1652 */ break; case 945: #line 6564 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_MATVIEW; } #line 33567 "gram.c" /* yacc.c:1652 */ break; case 946: #line 6565 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLLATION; } #line 33573 "gram.c" /* yacc.c:1652 */ break; case 947: #line 6566 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_CONVERSION; } #line 33579 "gram.c" /* yacc.c:1652 */ break; case 948: #line 6567 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } #line 33585 "gram.c" /* yacc.c:1652 */ break; case 949: #line 6568 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSCONFIGURATION; } #line 33591 "gram.c" /* yacc.c:1652 */ break; case 950: #line 6569 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSDICTIONARY; } #line 33597 "gram.c" /* yacc.c:1652 */ break; case 951: #line 6570 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSPARSER; } #line 33603 "gram.c" /* yacc.c:1652 */ break; case 952: #line 6571 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TSTEMPLATE; } #line 33609 "gram.c" /* yacc.c:1652 */ break; case 953: #line 6576 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ACCESS_METHOD; } #line 33615 "gram.c" /* yacc.c:1652 */ break; case 954: #line 6577 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_DATABASE; } #line 33621 "gram.c" /* yacc.c:1652 */ break; case 955: #line 6578 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } #line 33627 "gram.c" /* yacc.c:1652 */ break; case 956: #line 6579 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EXTENSION; } #line 33633 "gram.c" /* yacc.c:1652 */ break; case 957: #line 6580 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FDW; } #line 33639 "gram.c" /* yacc.c:1652 */ break; case 958: #line 6581 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_LANGUAGE; } #line 33645 "gram.c" /* yacc.c:1652 */ break; case 959: #line 6582 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_PUBLICATION; } #line 33651 "gram.c" /* yacc.c:1652 */ break; case 960: #line 6583 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ROLE; } #line 33657 "gram.c" /* yacc.c:1652 */ break; case 961: #line 6584 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SCHEMA; } #line 33663 "gram.c" /* yacc.c:1652 */ break; case 962: #line 6585 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_SERVER; } #line 33669 "gram.c" /* yacc.c:1652 */ break; case 963: #line 6586 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SUBSCRIPTION; } #line 33675 "gram.c" /* yacc.c:1652 */ break; case 964: #line 6587 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLESPACE; } #line 33681 "gram.c" /* yacc.c:1652 */ break; case 965: #line 6591 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 33687 "gram.c" /* yacc.c:1652 */ break; case 966: #line 6592 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 33693 "gram.c" /* yacc.c:1652 */ break; case 967: #line 6608 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) (yyvsp[-2].list); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33706 "gram.c" /* yacc.c:1652 */ break; case 968: #line 6618 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = (yyvsp[-3].objtype); n->object = (Node *) makeString((yyvsp[-2].str)); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33719 "gram.c" /* yacc.c:1652 */ break; case 969: #line 6628 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[-2].typnam); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33732 "gram.c" /* yacc.c:1652 */ break; case 970: #line 6638 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-2].typnam); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33745 "gram.c" /* yacc.c:1652 */ break; case 971: #line 6648 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33758 "gram.c" /* yacc.c:1652 */ break; case 972: #line 6658 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33771 "gram.c" /* yacc.c:1652 */ break; case 973: #line 6668 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-6].str); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-2].value); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33784 "gram.c" /* yacc.c:1652 */ break; case 974: #line 6678 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33797 "gram.c" /* yacc.c:1652 */ break; case 975: #line 6688 "gram.y" /* yacc.c:1652 */ { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[-5].str); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-2].objwithargs); n->label = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 33810 "gram.c" /* yacc.c:1652 */ break; case 976: #line 6698 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 33816 "gram.c" /* yacc.c:1652 */ break; case 977: #line 6699 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 33822 "gram.c" /* yacc.c:1652 */ break; case 978: #line 6704 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_COLUMN; } #line 33828 "gram.c" /* yacc.c:1652 */ break; case 979: #line 6705 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_FOREIGN_TABLE; } #line 33834 "gram.c" /* yacc.c:1652 */ break; case 980: #line 6706 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SEQUENCE; } #line 33840 "gram.c" /* yacc.c:1652 */ break; case 981: #line 6707 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLE; } #line 33846 "gram.c" /* yacc.c:1652 */ break; case 982: #line 6708 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_VIEW; } #line 33852 "gram.c" /* yacc.c:1652 */ break; case 983: #line 6709 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_MATVIEW; } #line 33858 "gram.c" /* yacc.c:1652 */ break; case 984: #line 6714 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_DATABASE; } #line 33864 "gram.c" /* yacc.c:1652 */ break; case 985: #line 6715 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_EVENT_TRIGGER; } #line 33870 "gram.c" /* yacc.c:1652 */ break; case 986: #line 6716 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_LANGUAGE; } #line 33876 "gram.c" /* yacc.c:1652 */ break; case 987: #line 6717 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_PUBLICATION; } #line 33882 "gram.c" /* yacc.c:1652 */ break; case 988: #line 6718 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_ROLE; } #line 33888 "gram.c" /* yacc.c:1652 */ break; case 989: #line 6719 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SCHEMA; } #line 33894 "gram.c" /* yacc.c:1652 */ break; case 990: #line 6720 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_SUBSCRIPTION; } #line 33900 "gram.c" /* yacc.c:1652 */ break; case 991: #line 6721 "gram.y" /* yacc.c:1652 */ { (yyval.objtype) = OBJECT_TABLESPACE; } #line 33906 "gram.c" /* yacc.c:1652 */ break; case 992: #line 6724 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 33912 "gram.c" /* yacc.c:1652 */ break; case 993: #line 6725 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 33918 "gram.c" /* yacc.c:1652 */ break; case 994: #line 6736 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = (FetchStmt *) (yyvsp[0].node); n->ismove = false; (yyval.node) = (Node *)n; } #line 33928 "gram.c" /* yacc.c:1652 */ break; case 995: #line 6742 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = (FetchStmt *) (yyvsp[0].node); n->ismove = true; (yyval.node) = (Node *)n; } #line 33938 "gram.c" /* yacc.c:1652 */ break; case 996: #line 6750 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33950 "gram.c" /* yacc.c:1652 */ break; case 997: #line 6758 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33962 "gram.c" /* yacc.c:1652 */ break; case 998: #line 6766 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33974 "gram.c" /* yacc.c:1652 */ break; case 999: #line 6774 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33986 "gram.c" /* yacc.c:1652 */ break; case 1000: #line 6782 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = 1; (yyval.node) = (Node *)n; } #line 33998 "gram.c" /* yacc.c:1652 */ break; case 1001: #line 6790 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = -1; (yyval.node) = (Node *)n; } #line 34010 "gram.c" /* yacc.c:1652 */ break; case 1002: #line 6798 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_ABSOLUTE; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 34022 "gram.c" /* yacc.c:1652 */ break; case 1003: #line 6806 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_RELATIVE; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 34034 "gram.c" /* yacc.c:1652 */ break; case 1004: #line 6814 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 34046 "gram.c" /* yacc.c:1652 */ break; case 1005: #line 6822 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } #line 34058 "gram.c" /* yacc.c:1652 */ break; case 1006: #line 6830 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 34070 "gram.c" /* yacc.c:1652 */ break; case 1007: #line 6838 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 34082 "gram.c" /* yacc.c:1652 */ break; case 1008: #line 6846 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } #line 34094 "gram.c" /* yacc.c:1652 */ break; case 1009: #line 6854 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *)n; } #line 34106 "gram.c" /* yacc.c:1652 */ break; case 1010: #line 6862 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = (yyvsp[-2].ival); (yyval.node) = (Node *)n; } #line 34118 "gram.c" /* yacc.c:1652 */ break; case 1011: #line 6870 "gram.y" /* yacc.c:1652 */ { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[0].str); n->direction = FETCH_BACKWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *)n; } #line 34130 "gram.c" /* yacc.c:1652 */ break; case 1012: #line 6879 "gram.y" /* yacc.c:1652 */ {} #line 34136 "gram.c" /* yacc.c:1652 */ break; case 1013: #line 6880 "gram.y" /* yacc.c:1652 */ {} #line 34142 "gram.c" /* yacc.c:1652 */ break; case 1014: #line 6883 "gram.y" /* yacc.c:1652 */ {} #line 34148 "gram.c" /* yacc.c:1652 */ break; case 1015: #line 6884 "gram.y" /* yacc.c:1652 */ {} #line 34154 "gram.c" /* yacc.c:1652 */ break; case 1016: #line 6896 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[-5].list); n->targtype = ((yyvsp[-3].privtarget))->targtype; n->objtype = ((yyvsp[-3].privtarget))->objtype; n->objects = ((yyvsp[-3].privtarget))->objs; n->grantees = (yyvsp[-1].list); n->grant_option = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } #line 34170 "gram.c" /* yacc.c:1652 */ break; case 1017: #line 6912 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[-5].list); n->targtype = ((yyvsp[-3].privtarget))->targtype; n->objtype = ((yyvsp[-3].privtarget))->objtype; n->objects = ((yyvsp[-3].privtarget))->objs; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 34187 "gram.c" /* yacc.c:1652 */ break; case 1018: #line 6926 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[-5].list); n->targtype = ((yyvsp[-3].privtarget))->targtype; n->objtype = ((yyvsp[-3].privtarget))->objtype; n->objects = ((yyvsp[-3].privtarget))->objs; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 34204 "gram.c" /* yacc.c:1652 */ break; case 1019: #line 6951 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 34210 "gram.c" /* yacc.c:1652 */ break; case 1020: #line 6953 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34216 "gram.c" /* yacc.c:1652 */ break; case 1021: #line 6955 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34222 "gram.c" /* yacc.c:1652 */ break; case 1022: #line 6957 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[-1].list); (yyval.list) = list_make1(n); } #line 34233 "gram.c" /* yacc.c:1652 */ break; case 1023: #line 6964 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[-1].list); (yyval.list) = list_make1(n); } #line 34244 "gram.c" /* yacc.c:1652 */ break; case 1024: #line 6972 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].accesspriv)); } #line 34250 "gram.c" /* yacc.c:1652 */ break; case 1025: #line 6973 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); } #line 34256 "gram.c" /* yacc.c:1652 */ break; case 1026: #line 6977 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 34267 "gram.c" /* yacc.c:1652 */ break; case 1027: #line 6984 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 34278 "gram.c" /* yacc.c:1652 */ break; case 1028: #line 6991 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[-1].keyword)); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 34289 "gram.c" /* yacc.c:1652 */ break; case 1029: #line 6998 "gram.y" /* yacc.c:1652 */ { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[-1].str); n->cols = (yyvsp[0].list); (yyval.accesspriv) = n; } #line 34300 "gram.c" /* yacc.c:1652 */ break; case 1030: #line 7012 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34312 "gram.c" /* yacc.c:1652 */ break; case 1031: #line 7020 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34324 "gram.c" /* yacc.c:1652 */ break; case 1032: #line 7028 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34336 "gram.c" /* yacc.c:1652 */ break; case 1033: #line 7036 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FDW; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34348 "gram.c" /* yacc.c:1652 */ break; case 1034: #line 7044 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FOREIGN_SERVER; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34360 "gram.c" /* yacc.c:1652 */ break; case 1035: #line 7052 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34372 "gram.c" /* yacc.c:1652 */ break; case 1036: #line 7060 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34384 "gram.c" /* yacc.c:1652 */ break; case 1037: #line 7068 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34396 "gram.c" /* yacc.c:1652 */ break; case 1038: #line 7076 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DATABASE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34408 "gram.c" /* yacc.c:1652 */ break; case 1039: #line 7084 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DOMAIN; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34420 "gram.c" /* yacc.c:1652 */ break; case 1040: #line 7092 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LANGUAGE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34432 "gram.c" /* yacc.c:1652 */ break; case 1041: #line 7100 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LARGEOBJECT; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34444 "gram.c" /* yacc.c:1652 */ break; case 1042: #line 7108 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SCHEMA; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34456 "gram.c" /* yacc.c:1652 */ break; case 1043: #line 7116 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLESPACE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34468 "gram.c" /* yacc.c:1652 */ break; case 1044: #line 7124 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TYPE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34480 "gram.c" /* yacc.c:1652 */ break; case 1045: #line 7132 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34492 "gram.c" /* yacc.c:1652 */ break; case 1046: #line 7140 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34504 "gram.c" /* yacc.c:1652 */ break; case 1047: #line 7148 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34516 "gram.c" /* yacc.c:1652 */ break; case 1048: #line 7156 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34528 "gram.c" /* yacc.c:1652 */ break; case 1049: #line 7164 "gram.y" /* yacc.c:1652 */ { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[0].list); (yyval.privtarget) = n; } #line 34540 "gram.c" /* yacc.c:1652 */ break; case 1050: #line 7175 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].rolespec)); } #line 34546 "gram.c" /* yacc.c:1652 */ break; case 1051: #line 7176 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } #line 34552 "gram.c" /* yacc.c:1652 */ break; case 1052: #line 7180 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 34558 "gram.c" /* yacc.c:1652 */ break; case 1053: #line 7181 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 34564 "gram.c" /* yacc.c:1652 */ break; case 1054: #line 7186 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34570 "gram.c" /* yacc.c:1652 */ break; case 1055: #line 7187 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34576 "gram.c" /* yacc.c:1652 */ break; case 1056: #line 7198 "gram.y" /* yacc.c:1652 */ { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[-4].list); n->grantee_roles = (yyvsp[-2].list); n->admin_opt = (yyvsp[-1].boolean); n->grantor = (yyvsp[0].rolespec); (yyval.node) = (Node*)n; } #line 34590 "gram.c" /* yacc.c:1652 */ break; case 1057: #line 7211 "gram.y" /* yacc.c:1652 */ { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = false; n->granted_roles = (yyvsp[-4].list); n->grantee_roles = (yyvsp[-2].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node*)n; } #line 34604 "gram.c" /* yacc.c:1652 */ break; case 1058: #line 7221 "gram.y" /* yacc.c:1652 */ { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = true; n->granted_roles = (yyvsp[-4].list); n->grantee_roles = (yyvsp[-2].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node*)n; } #line 34618 "gram.c" /* yacc.c:1652 */ break; case 1059: #line 7232 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34624 "gram.c" /* yacc.c:1652 */ break; case 1060: #line 7233 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34630 "gram.c" /* yacc.c:1652 */ break; case 1061: #line 7236 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = (yyvsp[0].rolespec); } #line 34636 "gram.c" /* yacc.c:1652 */ break; case 1062: #line 7237 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = NULL; } #line 34642 "gram.c" /* yacc.c:1652 */ break; case 1063: #line 7248 "gram.y" /* yacc.c:1652 */ { AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); n->options = (yyvsp[-1].list); n->action = (GrantStmt *) (yyvsp[0].node); (yyval.node) = (Node*)n; } #line 34653 "gram.c" /* yacc.c:1652 */ break; case 1064: #line 7257 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 34659 "gram.c" /* yacc.c:1652 */ break; case 1065: #line 7258 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34665 "gram.c" /* yacc.c:1652 */ break; case 1066: #line 7263 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 34673 "gram.c" /* yacc.c:1652 */ break; case 1067: #line 7267 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 34681 "gram.c" /* yacc.c:1652 */ break; case 1068: #line 7271 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[0].list), (yylsp[-2])); } #line 34689 "gram.c" /* yacc.c:1652 */ break; case 1069: #line 7283 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[-5].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[-3].ival); n->objects = NIL; n->grantees = (yyvsp[-1].list); n->grant_option = (yyvsp[0].boolean); (yyval.node) = (Node*)n; } #line 34705 "gram.c" /* yacc.c:1652 */ break; case 1070: #line 7296 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[-5].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[-3].ival); n->objects = NIL; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 34722 "gram.c" /* yacc.c:1652 */ break; case 1071: #line 7310 "gram.y" /* yacc.c:1652 */ { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[-5].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[-3].ival); n->objects = NIL; n->grantees = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *)n; } #line 34739 "gram.c" /* yacc.c:1652 */ break; case 1072: #line 7325 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_TABLE; } #line 34745 "gram.c" /* yacc.c:1652 */ break; case 1073: #line 7326 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_FUNCTION; } #line 34751 "gram.c" /* yacc.c:1652 */ break; case 1074: #line 7327 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_FUNCTION; } #line 34757 "gram.c" /* yacc.c:1652 */ break; case 1075: #line 7328 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_SEQUENCE; } #line 34763 "gram.c" /* yacc.c:1652 */ break; case 1076: #line 7329 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_TYPE; } #line 34769 "gram.c" /* yacc.c:1652 */ break; case 1077: #line 7330 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OBJECT_SCHEMA; } #line 34775 "gram.c" /* yacc.c:1652 */ break; case 1078: #line 7345 "gram.y" /* yacc.c:1652 */ { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[-13].boolean); n->concurrent = (yyvsp[-11].boolean); n->idxname = (yyvsp[-10].str); n->relation = (yyvsp[-8].range); n->accessMethod = (yyvsp[-7].str); n->indexParams = (yyvsp[-5].list); n->indexIncludingParams = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->tableSpace = (yyvsp[-1].str); n->whereClause = (yyvsp[0].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNode = InvalidOid; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = false; n->reset_default_tblspc = false; (yyval.node) = (Node *)n; } #line 34805 "gram.c" /* yacc.c:1652 */ break; case 1079: #line 7373 "gram.y" /* yacc.c:1652 */ { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[-16].boolean); n->concurrent = (yyvsp[-14].boolean); n->idxname = (yyvsp[-10].str); n->relation = (yyvsp[-8].range); n->accessMethod = (yyvsp[-7].str); n->indexParams = (yyvsp[-5].list); n->indexIncludingParams = (yyvsp[-3].list); n->options = (yyvsp[-2].list); n->tableSpace = (yyvsp[-1].str); n->whereClause = (yyvsp[0].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNode = InvalidOid; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = true; n->reset_default_tblspc = false; (yyval.node) = (Node *)n; } #line 34835 "gram.c" /* yacc.c:1652 */ break; case 1080: #line 7401 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34841 "gram.c" /* yacc.c:1652 */ break; case 1081: #line 7402 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34847 "gram.c" /* yacc.c:1652 */ break; case 1082: #line 7406 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 34853 "gram.c" /* yacc.c:1652 */ break; case 1083: #line 7407 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 34859 "gram.c" /* yacc.c:1652 */ break; case 1084: #line 7411 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 34865 "gram.c" /* yacc.c:1652 */ break; case 1085: #line 7412 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 34871 "gram.c" /* yacc.c:1652 */ break; case 1086: #line 7416 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 34877 "gram.c" /* yacc.c:1652 */ break; case 1087: #line 7417 "gram.y" /* yacc.c:1652 */ { (yyval.str) = DEFAULT_INDEX_TYPE; } #line 34883 "gram.c" /* yacc.c:1652 */ break; case 1088: #line 7420 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].ielem)); } #line 34889 "gram.c" /* yacc.c:1652 */ break; case 1089: #line 7421 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } #line 34895 "gram.c" /* yacc.c:1652 */ break; case 1090: #line 7430 "gram.y" /* yacc.c:1652 */ { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = (yyvsp[-4].str); (yyval.ielem)->expr = NULL; (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[-3].list); (yyval.ielem)->opclass = (yyvsp[-2].list); (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } #line 34910 "gram.c" /* yacc.c:1652 */ break; case 1091: #line 7441 "gram.y" /* yacc.c:1652 */ { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = (yyvsp[-4].node); (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[-3].list); (yyval.ielem)->opclass = (yyvsp[-2].list); (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } #line 34925 "gram.c" /* yacc.c:1652 */ break; case 1092: #line 7452 "gram.y" /* yacc.c:1652 */ { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = (yyvsp[-5].node); (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[-3].list); (yyval.ielem)->opclass = (yyvsp[-2].list); (yyval.ielem)->ordering = (yyvsp[-1].ival); (yyval.ielem)->nulls_ordering = (yyvsp[0].ival); } #line 34940 "gram.c" /* yacc.c:1652 */ break; case 1093: #line 7464 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 34946 "gram.c" /* yacc.c:1652 */ break; case 1094: #line 7465 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34952 "gram.c" /* yacc.c:1652 */ break; case 1095: #line 7468 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].ielem)); } #line 34958 "gram.c" /* yacc.c:1652 */ break; case 1096: #line 7469 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); } #line 34964 "gram.c" /* yacc.c:1652 */ break; case 1097: #line 7472 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 34970 "gram.c" /* yacc.c:1652 */ break; case 1098: #line 7473 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34976 "gram.c" /* yacc.c:1652 */ break; case 1099: #line 7476 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 34982 "gram.c" /* yacc.c:1652 */ break; case 1100: #line 7477 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 34988 "gram.c" /* yacc.c:1652 */ break; case 1101: #line 7480 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_ASC; } #line 34994 "gram.c" /* yacc.c:1652 */ break; case 1102: #line 7481 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_DESC; } #line 35000 "gram.c" /* yacc.c:1652 */ break; case 1103: #line 7482 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_DEFAULT; } #line 35006 "gram.c" /* yacc.c:1652 */ break; case 1104: #line 7485 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_NULLS_FIRST; } #line 35012 "gram.c" /* yacc.c:1652 */ break; case 1105: #line 7486 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_NULLS_LAST; } #line 35018 "gram.c" /* yacc.c:1652 */ break; case 1106: #line 7487 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = SORTBY_NULLS_DEFAULT; } #line 35024 "gram.c" /* yacc.c:1652 */ break; case 1107: #line 7505 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-6].boolean); n->funcname = (yyvsp[-4].list); n->parameters = (yyvsp[-3].list); n->returnType = (yyvsp[-1].typnam); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 35039 "gram.c" /* yacc.c:1652 */ break; case 1108: #line 7517 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-9].boolean); n->funcname = (yyvsp[-7].list); n->parameters = mergeTableFuncParameters((yyvsp[-6].list), (yyvsp[-2].list)); n->returnType = TableFuncTypeName((yyvsp[-2].list)); n->returnType->location = (yylsp[-4]); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 35055 "gram.c" /* yacc.c:1652 */ break; case 1109: #line 7530 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[-4].boolean); n->funcname = (yyvsp[-2].list); n->parameters = (yyvsp[-1].list); n->returnType = NULL; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 35070 "gram.c" /* yacc.c:1652 */ break; case 1110: #line 7542 "gram.y" /* yacc.c:1652 */ { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = true; n->replace = (yyvsp[-4].boolean); n->funcname = (yyvsp[-2].list); n->parameters = (yyvsp[-1].list); n->returnType = NULL; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 35085 "gram.c" /* yacc.c:1652 */ break; case 1111: #line 7555 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 35091 "gram.c" /* yacc.c:1652 */ break; case 1112: #line 7556 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 35097 "gram.c" /* yacc.c:1652 */ break; case 1113: #line 7559 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 35103 "gram.c" /* yacc.c:1652 */ break; case 1114: #line 7560 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 35109 "gram.c" /* yacc.c:1652 */ break; case 1115: #line 7564 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 35115 "gram.c" /* yacc.c:1652 */ break; case 1116: #line 7565 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 35121 "gram.c" /* yacc.c:1652 */ break; case 1117: #line 7569 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } #line 35127 "gram.c" /* yacc.c:1652 */ break; case 1118: #line 7571 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } #line 35133 "gram.c" /* yacc.c:1652 */ break; case 1119: #line 7576 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = extractArgTypes((yyvsp[0].list)); (yyval.objwithargs) = n; } #line 35144 "gram.c" /* yacc.c:1652 */ break; case 1120: #line 7588 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword)))); n->args_unspecified = true; (yyval.objwithargs) = n; } #line 35155 "gram.c" /* yacc.c:1652 */ break; case 1121: #line 7595 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString((yyvsp[0].str))); n->args_unspecified = true; (yyval.objwithargs) = n; } #line 35166 "gram.c" /* yacc.c:1652 */ break; case 1122: #line 7602 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); n->args_unspecified = true; (yyval.objwithargs) = n; } #line 35178 "gram.c" /* yacc.c:1652 */ break; case 1123: #line 7616 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 35184 "gram.c" /* yacc.c:1652 */ break; case 1124: #line 7617 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 35190 "gram.c" /* yacc.c:1652 */ break; case 1125: #line 7621 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 35196 "gram.c" /* yacc.c:1652 */ break; case 1126: #line 7623 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 35202 "gram.c" /* yacc.c:1652 */ break; case 1127: #line 7638 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); n->mode = (yyvsp[-2].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } #line 35215 "gram.c" /* yacc.c:1652 */ break; case 1128: #line 7647 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-2].str); n->argType = (yyvsp[0].typnam); n->mode = (yyvsp[-1].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } #line 35228 "gram.c" /* yacc.c:1652 */ break; case 1129: #line 7656 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; } #line 35241 "gram.c" /* yacc.c:1652 */ break; case 1130: #line 7665 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[0].typnam); n->mode = (yyvsp[-1].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; } #line 35254 "gram.c" /* yacc.c:1652 */ break; case 1131: #line 7674 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[0].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; } #line 35267 "gram.c" /* yacc.c:1652 */ break; case 1132: #line 7685 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_IN; } #line 35273 "gram.c" /* yacc.c:1652 */ break; case 1133: #line 7686 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_OUT; } #line 35279 "gram.c" /* yacc.c:1652 */ break; case 1134: #line 7687 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } #line 35285 "gram.c" /* yacc.c:1652 */ break; case 1135: #line 7688 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; } #line 35291 "gram.c" /* yacc.c:1652 */ break; case 1136: #line 7689 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; } #line 35297 "gram.c" /* yacc.c:1652 */ break; case 1138: #line 7700 "gram.y" /* yacc.c:1652 */ { /* We can catch over-specified results here if we want to, * but for now better to silently swallow typmod, etc. * - thomas 2000-03-22 */ (yyval.typnam) = (yyvsp[0].typnam); } #line 35309 "gram.c" /* yacc.c:1652 */ break; case 1139: #line 7714 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 35315 "gram.c" /* yacc.c:1652 */ break; case 1140: #line 7716 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->location = (yylsp[-3]); } #line 35325 "gram.c" /* yacc.c:1652 */ break; case 1141: #line 7722 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->setof = true; (yyval.typnam)->location = (yylsp[-3]); } #line 35336 "gram.c" /* yacc.c:1652 */ break; case 1142: #line 7732 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param) = (yyvsp[0].fun_param); } #line 35344 "gram.c" /* yacc.c:1652 */ break; case 1143: #line 7736 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param) = (yyvsp[-2].fun_param); (yyval.fun_param)->defexpr = (yyvsp[0].node); } #line 35353 "gram.c" /* yacc.c:1652 */ break; case 1144: #line 7741 "gram.y" /* yacc.c:1652 */ { (yyval.fun_param) = (yyvsp[-2].fun_param); (yyval.fun_param)->defexpr = (yyvsp[0].node); } #line 35362 "gram.c" /* yacc.c:1652 */ break; case 1145: #line 7749 "gram.y" /* yacc.c:1652 */ { if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_IN || (yyvsp[0].fun_param)->mode == FUNC_PARAM_VARIADIC)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("aggregates cannot have output arguments"), parser_errposition((yylsp[0])))); (yyval.fun_param) = (yyvsp[0].fun_param); } #line 35376 "gram.c" /* yacc.c:1652 */ break; case 1146: #line 7790 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NIL, makeInteger(-1)); } #line 35384 "gram.c" /* yacc.c:1652 */ break; case 1147: #line 7794 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1)); } #line 35392 "gram.c" /* yacc.c:1652 */ break; case 1148: #line 7798 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0)); } #line 35400 "gram.c" /* yacc.c:1652 */ break; case 1149: #line 7802 "gram.y" /* yacc.c:1652 */ { /* this is the only case requiring consistency checking */ (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner); } #line 35409 "gram.c" /* yacc.c:1652 */ break; case 1150: #line 7809 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 35415 "gram.c" /* yacc.c:1652 */ break; case 1151: #line 7810 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 35421 "gram.c" /* yacc.c:1652 */ break; case 1152: #line 7815 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = extractAggrArgTypes((yyvsp[0].list)); (yyval.objwithargs) = n; } #line 35432 "gram.c" /* yacc.c:1652 */ break; case 1153: #line 7824 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } #line 35438 "gram.c" /* yacc.c:1652 */ break; case 1154: #line 7826 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } #line 35444 "gram.c" /* yacc.c:1652 */ break; case 1155: #line 7831 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 35450 "gram.c" /* yacc.c:1652 */ break; case 1156: #line 7832 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 35456 "gram.c" /* yacc.c:1652 */ break; case 1157: #line 7840 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(false), (yylsp[-3])); } #line 35464 "gram.c" /* yacc.c:1652 */ break; case 1158: #line 7844 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[-4])); } #line 35472 "gram.c" /* yacc.c:1652 */ break; case 1159: #line 7848 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(true), (yylsp[0])); } #line 35480 "gram.c" /* yacc.c:1652 */ break; case 1160: #line 7852 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable"), (yylsp[0])); } #line 35488 "gram.c" /* yacc.c:1652 */ break; case 1161: #line 7856 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable"), (yylsp[0])); } #line 35496 "gram.c" /* yacc.c:1652 */ break; case 1162: #line 7860 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile"), (yylsp[0])); } #line 35504 "gram.c" /* yacc.c:1652 */ break; case 1163: #line 7864 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-2])); } #line 35512 "gram.c" /* yacc.c:1652 */ break; case 1164: #line 7868 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-2])); } #line 35520 "gram.c" /* yacc.c:1652 */ break; case 1165: #line 7872 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(true), (yylsp[-1])); } #line 35528 "gram.c" /* yacc.c:1652 */ break; case 1166: #line 7876 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(false), (yylsp[-1])); } #line 35536 "gram.c" /* yacc.c:1652 */ break; case 1167: #line 7880 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(true), (yylsp[0])); } #line 35544 "gram.c" /* yacc.c:1652 */ break; case 1168: #line 7884 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(false), (yylsp[-1])); } #line 35552 "gram.c" /* yacc.c:1652 */ break; case 1169: #line 7888 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 35560 "gram.c" /* yacc.c:1652 */ break; case 1170: #line 7892 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[0].value), (yylsp[-1])); } #line 35568 "gram.c" /* yacc.c:1652 */ break; case 1171: #line 7896 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("support", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 35576 "gram.c" /* yacc.c:1652 */ break; case 1172: #line 7900 "gram.y" /* yacc.c:1652 */ { /* we abuse the normal content of a DefElem here */ (yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[0].vsetstmt), (yylsp[0])); } #line 35585 "gram.c" /* yacc.c:1652 */ break; case 1173: #line 7905 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("parallel", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 35593 "gram.c" /* yacc.c:1652 */ break; case 1174: #line 7912 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 35601 "gram.c" /* yacc.c:1652 */ break; case 1175: #line 7916 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 35609 "gram.c" /* yacc.c:1652 */ break; case 1176: #line 7920 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transform", (Node *)(yyvsp[0].list), (yylsp[-1])); } #line 35617 "gram.c" /* yacc.c:1652 */ break; case 1177: #line 7924 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("window", (Node *)makeInteger(true), (yylsp[0])); } #line 35625 "gram.c" /* yacc.c:1652 */ break; case 1178: #line 7928 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = (yyvsp[0].defelt); } #line 35633 "gram.c" /* yacc.c:1652 */ break; case 1179: #line 7933 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 35639 "gram.c" /* yacc.c:1652 */ break; case 1180: #line 7935 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str))); } #line 35647 "gram.c" /* yacc.c:1652 */ break; case 1181: #line 7941 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].typnam)); } #line 35653 "gram.c" /* yacc.c:1652 */ break; case 1182: #line 7942 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); } #line 35659 "gram.c" /* yacc.c:1652 */ break; case 1183: #line 7946 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 35665 "gram.c" /* yacc.c:1652 */ break; case 1184: #line 7947 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 35671 "gram.c" /* yacc.c:1652 */ break; case 1185: #line 7951 "gram.y" /* yacc.c:1652 */ { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[-1].str); n->argType = (yyvsp[0].typnam); n->mode = FUNC_PARAM_TABLE; n->defexpr = NULL; (yyval.fun_param) = n; } #line 35684 "gram.c" /* yacc.c:1652 */ break; case 1186: #line 7963 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].fun_param)); } #line 35692 "gram.c" /* yacc.c:1652 */ break; case 1187: #line 7967 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); } #line 35700 "gram.c" /* yacc.c:1652 */ break; case 1188: #line 7982 "gram.y" /* yacc.c:1652 */ { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_FUNCTION; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 35712 "gram.c" /* yacc.c:1652 */ break; case 1189: #line 7990 "gram.y" /* yacc.c:1652 */ { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_PROCEDURE; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 35724 "gram.c" /* yacc.c:1652 */ break; case 1190: #line 7998 "gram.y" /* yacc.c:1652 */ { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_ROUTINE; n->func = (yyvsp[-2].objwithargs); n->actions = (yyvsp[-1].list); (yyval.node) = (Node *) n; } #line 35736 "gram.c" /* yacc.c:1652 */ break; case 1191: #line 8009 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 35742 "gram.c" /* yacc.c:1652 */ break; case 1192: #line 8010 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 35748 "gram.c" /* yacc.c:1652 */ break; case 1195: #line 8034 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35762 "gram.c" /* yacc.c:1652 */ break; case 1196: #line 8044 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35776 "gram.c" /* yacc.c:1652 */ break; case 1197: #line 8054 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35790 "gram.c" /* yacc.c:1652 */ break; case 1198: #line 8064 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35804 "gram.c" /* yacc.c:1652 */ break; case 1199: #line 8074 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35818 "gram.c" /* yacc.c:1652 */ break; case 1200: #line 8084 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35832 "gram.c" /* yacc.c:1652 */ break; case 1201: #line 8097 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35846 "gram.c" /* yacc.c:1652 */ break; case 1202: #line 8107 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35860 "gram.c" /* yacc.c:1652 */ break; case 1203: #line 8120 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35874 "gram.c" /* yacc.c:1652 */ break; case 1204: #line 8130 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[-1].list); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; } #line 35888 "gram.c" /* yacc.c:1652 */ break; case 1205: #line 8143 "gram.y" /* yacc.c:1652 */ { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing argument"), errhint("Use NONE to denote the missing argument of a unary operator."), parser_errposition((yylsp[0])))); } #line 35900 "gram.c" /* yacc.c:1652 */ break; case 1206: #line 8151 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); } #line 35906 "gram.c" /* yacc.c:1652 */ break; case 1207: #line 8153 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); } #line 35912 "gram.c" /* yacc.c:1652 */ break; case 1208: #line 8155 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); } #line 35918 "gram.c" /* yacc.c:1652 */ break; case 1209: #line 8160 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 35924 "gram.c" /* yacc.c:1652 */ break; case 1210: #line 8162 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); } #line 35930 "gram.c" /* yacc.c:1652 */ break; case 1211: #line 8166 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].objwithargs)); } #line 35936 "gram.c" /* yacc.c:1652 */ break; case 1212: #line 8168 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); } #line 35942 "gram.c" /* yacc.c:1652 */ break; case 1213: #line 8173 "gram.y" /* yacc.c:1652 */ { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[-1].list); n->objargs = (yyvsp[0].list); (yyval.objwithargs) = n; } #line 35953 "gram.c" /* yacc.c:1652 */ break; case 1214: #line 8191 "gram.y" /* yacc.c:1652 */ { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 35963 "gram.c" /* yacc.c:1652 */ break; case 1215: #line 8199 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 35969 "gram.c" /* yacc.c:1652 */ break; case 1216: #line 8200 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 35975 "gram.c" /* yacc.c:1652 */ break; case 1217: #line 8205 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[0].str)), (yylsp[0])); } #line 35983 "gram.c" /* yacc.c:1652 */ break; case 1218: #line 8209 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[0].str)), (yylsp[-1])); } #line 35991 "gram.c" /* yacc.c:1652 */ break; case 1219: #line 8222 "gram.y" /* yacc.c:1652 */ { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-7].typnam); n->targettype = (yyvsp[-5].typnam); n->func = (yyvsp[-1].objwithargs); n->context = (CoercionContext) (yyvsp[0].ival); n->inout = false; (yyval.node) = (Node *)n; } #line 36005 "gram.c" /* yacc.c:1652 */ break; case 1220: #line 8233 "gram.y" /* yacc.c:1652 */ { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-6].typnam); n->targettype = (yyvsp[-4].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[0].ival); n->inout = false; (yyval.node) = (Node *)n; } #line 36019 "gram.c" /* yacc.c:1652 */ break; case 1221: #line 8244 "gram.y" /* yacc.c:1652 */ { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[-6].typnam); n->targettype = (yyvsp[-4].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[0].ival); n->inout = true; (yyval.node) = (Node *)n; } #line 36033 "gram.c" /* yacc.c:1652 */ break; case 1222: #line 8255 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COERCION_IMPLICIT; } #line 36039 "gram.c" /* yacc.c:1652 */ break; case 1223: #line 8256 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COERCION_ASSIGNMENT; } #line 36045 "gram.c" /* yacc.c:1652 */ break; case 1224: #line 8257 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COERCION_EXPLICIT; } #line 36051 "gram.c" /* yacc.c:1652 */ break; case 1225: #line 8262 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; n->objects = list_make1(list_make2((yyvsp[-4].typnam), (yyvsp[-2].typnam))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = (yyvsp[-6].boolean); n->concurrent = false; (yyval.node) = (Node *)n; } #line 36065 "gram.c" /* yacc.c:1652 */ break; case 1226: #line 8273 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 36071 "gram.c" /* yacc.c:1652 */ break; case 1227: #line 8274 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 36077 "gram.c" /* yacc.c:1652 */ break; case 1228: #line 8285 "gram.y" /* yacc.c:1652 */ { CreateTransformStmt *n = makeNode(CreateTransformStmt); n->replace = (yyvsp[-8].boolean); n->type_name = (yyvsp[-5].typnam); n->lang = (yyvsp[-3].str); n->fromsql = linitial((yyvsp[-1].list)); n->tosql = lsecond((yyvsp[-1].list)); (yyval.node) = (Node *)n; } #line 36091 "gram.c" /* yacc.c:1652 */ break; case 1229: #line 8297 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs)); } #line 36099 "gram.c" /* yacc.c:1652 */ break; case 1230: #line 8301 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs)); } #line 36107 "gram.c" /* yacc.c:1652 */ break; case 1231: #line 8305 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL); } #line 36115 "gram.c" /* yacc.c:1652 */ break; case 1232: #line 8309 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs)); } #line 36123 "gram.c" /* yacc.c:1652 */ break; case 1233: #line 8316 "gram.y" /* yacc.c:1652 */ { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRANSFORM; n->objects = list_make1(list_make2((yyvsp[-3].typnam), makeString((yyvsp[-1].str)))); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = (yyvsp[-5].boolean); (yyval.node) = (Node *)n; } #line 36136 "gram.c" /* yacc.c:1652 */ break; case 1234: #line 8336 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); n->relation = (yyvsp[0].range); n->name = NULL; n->options = 0; (yyval.node) = (Node *)n; } #line 36150 "gram.c" /* yacc.c:1652 */ break; case 1235: #line 8346 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); n->name = (yyvsp[0].str); n->relation = NULL; n->options = 0; (yyval.node) = (Node *)n; } #line 36164 "gram.c" /* yacc.c:1652 */ break; case 1236: #line 8356 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); n->relation = (yyvsp[0].range); n->name = NULL; n->options = (yyvsp[-4].ival); (yyval.node) = (Node *)n; } #line 36178 "gram.c" /* yacc.c:1652 */ break; case 1237: #line 8366 "gram.y" /* yacc.c:1652 */ { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[-2].ival); n->concurrent = (yyvsp[-1].boolean); n->name = (yyvsp[0].str); n->relation = NULL; n->options = (yyvsp[-4].ival); (yyval.node) = (Node *)n; } #line 36192 "gram.c" /* yacc.c:1652 */ break; case 1238: #line 8377 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_INDEX; } #line 36198 "gram.c" /* yacc.c:1652 */ break; case 1239: #line 8378 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_TABLE; } #line 36204 "gram.c" /* yacc.c:1652 */ break; case 1240: #line 8381 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_SCHEMA; } #line 36210 "gram.c" /* yacc.c:1652 */ break; case 1241: #line 8382 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_SYSTEM; } #line 36216 "gram.c" /* yacc.c:1652 */ break; case 1242: #line 8383 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEX_OBJECT_DATABASE; } #line 36222 "gram.c" /* yacc.c:1652 */ break; case 1243: #line 8386 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 36228 "gram.c" /* yacc.c:1652 */ break; case 1244: #line 8387 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); } #line 36234 "gram.c" /* yacc.c:1652 */ break; case 1245: #line 8390 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = REINDEXOPT_VERBOSE; } #line 36240 "gram.c" /* yacc.c:1652 */ break; case 1246: #line 8401 "gram.y" /* yacc.c:1652 */ { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[-2].str); n->options = (yyvsp[0].list); n->isReset = false; (yyval.node) = (Node *)n; } #line 36253 "gram.c" /* yacc.c:1652 */ break; case 1247: #line 8410 "gram.y" /* yacc.c:1652 */ { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[-2].str); n->options = (yyvsp[0].list); n->isReset = true; (yyval.node) = (Node *)n; } #line 36266 "gram.c" /* yacc.c:1652 */ break; case 1248: #line 8427 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36279 "gram.c" /* yacc.c:1652 */ break; case 1249: #line 8436 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36292 "gram.c" /* yacc.c:1652 */ break; case 1250: #line 8445 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36305 "gram.c" /* yacc.c:1652 */ break; case 1251: #line 8454 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DATABASE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36318 "gram.c" /* yacc.c:1652 */ break; case 1252: #line 8463 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36331 "gram.c" /* yacc.c:1652 */ break; case 1253: #line 8472 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMCONSTRAINT; n->object = (Node *) (yyvsp[-5].list); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 36344 "gram.c" /* yacc.c:1652 */ break; case 1254: #line 8481 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36357 "gram.c" /* yacc.c:1652 */ break; case 1255: #line 8490 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36370 "gram.c" /* yacc.c:1652 */ break; case 1256: #line 8499 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36383 "gram.c" /* yacc.c:1652 */ break; case 1257: #line 8508 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36396 "gram.c" /* yacc.c:1652 */ break; case 1258: #line 8517 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36409 "gram.c" /* yacc.c:1652 */ break; case 1259: #line 8526 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36422 "gram.c" /* yacc.c:1652 */ break; case 1260: #line 8535 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36436 "gram.c" /* yacc.c:1652 */ break; case 1261: #line 8545 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36450 "gram.c" /* yacc.c:1652 */ break; case 1262: #line 8555 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36463 "gram.c" /* yacc.c:1652 */ break; case 1263: #line 8564 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36476 "gram.c" /* yacc.c:1652 */ break; case 1264: #line 8573 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36489 "gram.c" /* yacc.c:1652 */ break; case 1265: #line 8582 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SCHEMA; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36502 "gram.c" /* yacc.c:1652 */ break; case 1266: #line 8591 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36515 "gram.c" /* yacc.c:1652 */ break; case 1267: #line 8600 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36528 "gram.c" /* yacc.c:1652 */ break; case 1268: #line 8609 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36542 "gram.c" /* yacc.c:1652 */ break; case 1269: #line 8619 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36556 "gram.c" /* yacc.c:1652 */ break; case 1270: #line 8629 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36570 "gram.c" /* yacc.c:1652 */ break; case 1271: #line 8639 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36584 "gram.c" /* yacc.c:1652 */ break; case 1272: #line 8649 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36598 "gram.c" /* yacc.c:1652 */ break; case 1273: #line 8659 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36612 "gram.c" /* yacc.c:1652 */ break; case 1274: #line 8669 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36626 "gram.c" /* yacc.c:1652 */ break; case 1275: #line 8679 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36640 "gram.c" /* yacc.c:1652 */ break; case 1276: #line 8689 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36654 "gram.c" /* yacc.c:1652 */ break; case 1277: #line 8699 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36668 "gram.c" /* yacc.c:1652 */ break; case 1278: #line 8709 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36682 "gram.c" /* yacc.c:1652 */ break; case 1279: #line 8719 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->subname = NULL; n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36696 "gram.c" /* yacc.c:1652 */ break; case 1280: #line 8729 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36711 "gram.c" /* yacc.c:1652 */ break; case 1281: #line 8740 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36726 "gram.c" /* yacc.c:1652 */ break; case 1282: #line 8751 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36741 "gram.c" /* yacc.c:1652 */ break; case 1283: #line 8762 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36756 "gram.c" /* yacc.c:1652 */ break; case 1284: #line 8773 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36770 "gram.c" /* yacc.c:1652 */ break; case 1285: #line 8783 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36784 "gram.c" /* yacc.c:1652 */ break; case 1286: #line 8793 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36799 "gram.c" /* yacc.c:1652 */ break; case 1287: #line 8804 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-5].range); n->subname = (yyvsp[-2].str); n->newname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 36814 "gram.c" /* yacc.c:1652 */ break; case 1288: #line 8815 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_RULE; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36828 "gram.c" /* yacc.c:1652 */ break; case 1289: #line 8825 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TRIGGER; n->relation = (yyvsp[-3].range); n->subname = (yyvsp[-5].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36842 "gram.c" /* yacc.c:1652 */ break; case 1290: #line 8835 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 36854 "gram.c" /* yacc.c:1652 */ break; case 1291: #line 8843 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36867 "gram.c" /* yacc.c:1652 */ break; case 1292: #line 8852 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36880 "gram.c" /* yacc.c:1652 */ break; case 1293: #line 8861 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLESPACE; n->subname = (yyvsp[-3].str); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36893 "gram.c" /* yacc.c:1652 */ break; case 1294: #line 8870 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36906 "gram.c" /* yacc.c:1652 */ break; case 1295: #line 8879 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36919 "gram.c" /* yacc.c:1652 */ break; case 1296: #line 8888 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36932 "gram.c" /* yacc.c:1652 */ break; case 1297: #line 8897 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36945 "gram.c" /* yacc.c:1652 */ break; case 1298: #line 8906 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36958 "gram.c" /* yacc.c:1652 */ break; case 1299: #line 8915 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36971 "gram.c" /* yacc.c:1652 */ break; case 1300: #line 8924 "gram.y" /* yacc.c:1652 */ { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ATTRIBUTE; n->relationType = OBJECT_TYPE; n->relation = makeRangeVarFromAnyName((yyvsp[-6].list), (yylsp[-6]), yyscanner); n->subname = (yyvsp[-3].str); n->newname = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 36987 "gram.c" /* yacc.c:1652 */ break; case 1301: #line 8937 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = COLUMN; } #line 36993 "gram.c" /* yacc.c:1652 */ break; case 1302: #line 8938 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 36999 "gram.c" /* yacc.c:1652 */ break; case 1303: #line 8941 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 1; } #line 37005 "gram.c" /* yacc.c:1652 */ break; case 1304: #line 8942 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 37011 "gram.c" /* yacc.c:1652 */ break; case 1305: #line 8953 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-4].objwithargs); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 37023 "gram.c" /* yacc.c:1652 */ break; case 1306: #line 8961 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-4].objwithargs); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 37035 "gram.c" /* yacc.c:1652 */ break; case 1307: #line 8969 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-4].objwithargs); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 37047 "gram.c" /* yacc.c:1652 */ break; case 1308: #line 8977 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_TRIGGER; n->relation = (yyvsp[-4].range); n->object = (Node *) list_make1(makeString((yyvsp[-6].str))); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 37060 "gram.c" /* yacc.c:1652 */ break; case 1309: #line 8986 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-4].range); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 37072 "gram.c" /* yacc.c:1652 */ break; case 1310: #line 8994 "gram.y" /* yacc.c:1652 */ { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_INDEX; n->relation = (yyvsp[-4].range); n->extname = makeString((yyvsp[0].str)); (yyval.node) = (Node *)n; } #line 37084 "gram.c" /* yacc.c:1652 */ break; case 1311: #line 9011 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37097 "gram.c" /* yacc.c:1652 */ break; case 1312: #line 9020 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37110 "gram.c" /* yacc.c:1652 */ break; case 1313: #line 9029 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37123 "gram.c" /* yacc.c:1652 */ break; case 1314: #line 9038 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37136 "gram.c" /* yacc.c:1652 */ break; case 1315: #line 9047 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37149 "gram.c" /* yacc.c:1652 */ break; case 1316: #line 9056 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37162 "gram.c" /* yacc.c:1652 */ break; case 1317: #line 9065 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37175 "gram.c" /* yacc.c:1652 */ break; case 1318: #line 9074 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37188 "gram.c" /* yacc.c:1652 */ break; case 1319: #line 9083 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37201 "gram.c" /* yacc.c:1652 */ break; case 1320: #line 9092 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37214 "gram.c" /* yacc.c:1652 */ break; case 1321: #line 9101 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37227 "gram.c" /* yacc.c:1652 */ break; case 1322: #line 9110 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37240 "gram.c" /* yacc.c:1652 */ break; case 1323: #line 9119 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37253 "gram.c" /* yacc.c:1652 */ break; case 1324: #line 9128 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37266 "gram.c" /* yacc.c:1652 */ break; case 1325: #line 9137 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37279 "gram.c" /* yacc.c:1652 */ break; case 1326: #line 9146 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37292 "gram.c" /* yacc.c:1652 */ break; case 1327: #line 9155 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37305 "gram.c" /* yacc.c:1652 */ break; case 1328: #line 9164 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37318 "gram.c" /* yacc.c:1652 */ break; case 1329: #line 9173 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37331 "gram.c" /* yacc.c:1652 */ break; case 1330: #line 9182 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37344 "gram.c" /* yacc.c:1652 */ break; case 1331: #line 9191 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37357 "gram.c" /* yacc.c:1652 */ break; case 1332: #line 9200 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37370 "gram.c" /* yacc.c:1652 */ break; case 1333: #line 9209 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37383 "gram.c" /* yacc.c:1652 */ break; case 1334: #line 9218 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37396 "gram.c" /* yacc.c:1652 */ break; case 1335: #line 9227 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37409 "gram.c" /* yacc.c:1652 */ break; case 1336: #line 9236 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[-3].range); n->newschema = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 37422 "gram.c" /* yacc.c:1652 */ break; case 1337: #line 9245 "gram.y" /* yacc.c:1652 */ { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newschema = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 37435 "gram.c" /* yacc.c:1652 */ break; case 1338: #line 9263 "gram.y" /* yacc.c:1652 */ { AlterOperatorStmt *n = makeNode(AlterOperatorStmt); n->opername = (yyvsp[-4].objwithargs); n->options = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 37446 "gram.c" /* yacc.c:1652 */ break; case 1339: #line 9271 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 37452 "gram.c" /* yacc.c:1652 */ break; case 1340: #line 9272 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 37458 "gram.c" /* yacc.c:1652 */ break; case 1341: #line 9276 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } #line 37464 "gram.c" /* yacc.c:1652 */ break; case 1342: #line 9278 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); } #line 37470 "gram.c" /* yacc.c:1652 */ break; case 1343: #line 9283 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].typnam); } #line 37476 "gram.c" /* yacc.c:1652 */ break; case 1344: #line 9284 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[0].keyword))); } #line 37482 "gram.c" /* yacc.c:1652 */ break; case 1345: #line 9285 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].list); } #line 37488 "gram.c" /* yacc.c:1652 */ break; case 1346: #line 9286 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[0].value); } #line 37494 "gram.c" /* yacc.c:1652 */ break; case 1347: #line 9287 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)makeString((yyvsp[0].str)); } #line 37500 "gram.c" /* yacc.c:1652 */ break; case 1348: #line 9297 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37512 "gram.c" /* yacc.c:1652 */ break; case 1349: #line 9305 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37524 "gram.c" /* yacc.c:1652 */ break; case 1350: #line 9313 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37536 "gram.c" /* yacc.c:1652 */ break; case 1351: #line 9321 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37548 "gram.c" /* yacc.c:1652 */ break; case 1352: #line 9329 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37560 "gram.c" /* yacc.c:1652 */ break; case 1353: #line 9337 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37572 "gram.c" /* yacc.c:1652 */ break; case 1354: #line 9345 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37584 "gram.c" /* yacc.c:1652 */ break; case 1355: #line 9353 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[-3].value); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37596 "gram.c" /* yacc.c:1652 */ break; case 1356: #line 9361 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37608 "gram.c" /* yacc.c:1652 */ break; case 1357: #line 9369 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37620 "gram.c" /* yacc.c:1652 */ break; case 1358: #line 9377 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37632 "gram.c" /* yacc.c:1652 */ break; case 1359: #line 9385 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37644 "gram.c" /* yacc.c:1652 */ break; case 1360: #line 9393 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[-3].objwithargs); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37656 "gram.c" /* yacc.c:1652 */ break; case 1361: #line 9401 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37668 "gram.c" /* yacc.c:1652 */ break; case 1362: #line 9409 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37680 "gram.c" /* yacc.c:1652 */ break; case 1363: #line 9417 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37692 "gram.c" /* yacc.c:1652 */ break; case 1364: #line 9425 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37704 "gram.c" /* yacc.c:1652 */ break; case 1365: #line 9433 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37716 "gram.c" /* yacc.c:1652 */ break; case 1366: #line 9441 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[-3].list); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37728 "gram.c" /* yacc.c:1652 */ break; case 1367: #line 9449 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37740 "gram.c" /* yacc.c:1652 */ break; case 1368: #line 9457 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37752 "gram.c" /* yacc.c:1652 */ break; case 1369: #line 9465 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37764 "gram.c" /* yacc.c:1652 */ break; case 1370: #line 9473 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37776 "gram.c" /* yacc.c:1652 */ break; case 1371: #line 9481 "gram.y" /* yacc.c:1652 */ { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[-3].str)); n->newowner = (yyvsp[0].rolespec); (yyval.node) = (Node *)n; } #line 37788 "gram.c" /* yacc.c:1652 */ break; case 1372: #line 9499 "gram.y" /* yacc.c:1652 */ { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[-2].str); n->options = (yyvsp[0].list); if ((yyvsp[-1].node) != NULL) { /* FOR TABLE */ if (IsA((yyvsp[-1].node), List)) n->tables = (List *)(yyvsp[-1].node); /* FOR ALL TABLES */ else n->for_all_tables = true; } (yyval.node) = (Node *)n; } #line 37808 "gram.c" /* yacc.c:1652 */ break; case 1373: #line 9517 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 37814 "gram.c" /* yacc.c:1652 */ break; case 1374: #line 9518 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 37820 "gram.c" /* yacc.c:1652 */ break; case 1375: #line 9523 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].list); } #line 37828 "gram.c" /* yacc.c:1652 */ break; case 1376: #line 9527 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeInteger(true); } #line 37836 "gram.c" /* yacc.c:1652 */ break; case 1377: #line 9547 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37847 "gram.c" /* yacc.c:1652 */ break; case 1378: #line 9554 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_ADD; (yyval.node) = (Node *)n; } #line 37859 "gram.c" /* yacc.c:1652 */ break; case 1379: #line 9562 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_SET; (yyval.node) = (Node *)n; } #line 37871 "gram.c" /* yacc.c:1652 */ break; case 1380: #line 9570 "gram.y" /* yacc.c:1652 */ { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[-3].str); n->tables = (yyvsp[0].list); n->tableAction = DEFELEM_DROP; (yyval.node) = (Node *)n; } #line 37883 "gram.c" /* yacc.c:1652 */ break; case 1381: #line 9587 "gram.y" /* yacc.c:1652 */ { CreateSubscriptionStmt *n = makeNode(CreateSubscriptionStmt); n->subname = (yyvsp[-5].str); n->conninfo = (yyvsp[-3].str); n->publication = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37897 "gram.c" /* yacc.c:1652 */ break; case 1382: #line 9600 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].value)); } #line 37905 "gram.c" /* yacc.c:1652 */ break; case 1383: #line 9604 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].value)); } #line 37913 "gram.c" /* yacc.c:1652 */ break; case 1384: #line 9610 "gram.y" /* yacc.c:1652 */ { (yyval.value) = makeString((yyvsp[0].str)); } #line 37919 "gram.c" /* yacc.c:1652 */ break; case 1385: #line 9620 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_OPTIONS; n->subname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37932 "gram.c" /* yacc.c:1652 */ break; case 1386: #line 9629 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_CONNECTION; n->subname = (yyvsp[-2].str); n->conninfo = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 37945 "gram.c" /* yacc.c:1652 */ break; case 1387: #line 9638 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_REFRESH; n->subname = (yyvsp[-3].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37958 "gram.c" /* yacc.c:1652 */ break; case 1388: #line 9647 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_PUBLICATION; n->subname = (yyvsp[-4].str); n->publication = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 37972 "gram.c" /* yacc.c:1652 */ break; case 1389: #line 9657 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; n->subname = (yyvsp[-1].str); n->options = list_make1(makeDefElem("enabled", (Node *)makeInteger(true), (yylsp[-3]))); (yyval.node) = (Node *)n; } #line 37986 "gram.c" /* yacc.c:1652 */ break; case 1390: #line 9667 "gram.y" /* yacc.c:1652 */ { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; n->subname = (yyvsp[-1].str); n->options = list_make1(makeDefElem("enabled", (Node *)makeInteger(false), (yylsp[-3]))); (yyval.node) = (Node *)n; } #line 38000 "gram.c" /* yacc.c:1652 */ break; case 1391: #line 9685 "gram.y" /* yacc.c:1652 */ { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[-1].str); n->missing_ok = false; n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *) n; } #line 38012 "gram.c" /* yacc.c:1652 */ break; case 1392: #line 9693 "gram.y" /* yacc.c:1652 */ { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[-1].str); n->missing_ok = true; n->behavior = (yyvsp[0].dbehavior); (yyval.node) = (Node *) n; } #line 38024 "gram.c" /* yacc.c:1652 */ break; case 1393: #line 9711 "gram.y" /* yacc.c:1652 */ { RuleStmt *n = makeNode(RuleStmt); n->replace = (yyvsp[-11].boolean); n->relation = (yyvsp[-4].range); n->rulename = (yyvsp[-9].str); n->whereClause = (yyvsp[-3].node); n->event = (yyvsp[-6].ival); n->instead = (yyvsp[-1].boolean); n->actions = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38040 "gram.c" /* yacc.c:1652 */ break; case 1394: #line 9725 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38046 "gram.c" /* yacc.c:1652 */ break; case 1395: #line 9726 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 38052 "gram.c" /* yacc.c:1652 */ break; case 1396: #line 9727 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 38058 "gram.c" /* yacc.c:1652 */ break; case 1397: #line 9733 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].node) != NULL) (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); else (yyval.list) = (yyvsp[-2].list); } #line 38068 "gram.c" /* yacc.c:1652 */ break; case 1398: #line 9739 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].node) != NULL) (yyval.list) = list_make1((yyvsp[0].node)); else (yyval.list) = NIL; } #line 38078 "gram.c" /* yacc.c:1652 */ break; case 1404: #line 9755 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 38084 "gram.c" /* yacc.c:1652 */ break; case 1405: #line 9756 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 38090 "gram.c" /* yacc.c:1652 */ break; case 1406: #line 9759 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_SELECT; } #line 38096 "gram.c" /* yacc.c:1652 */ break; case 1407: #line 9760 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_UPDATE; } #line 38102 "gram.c" /* yacc.c:1652 */ break; case 1408: #line 9761 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_DELETE; } #line 38108 "gram.c" /* yacc.c:1652 */ break; case 1409: #line 9762 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CMD_INSERT; } #line 38114 "gram.c" /* yacc.c:1652 */ break; case 1410: #line 9766 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 38120 "gram.c" /* yacc.c:1652 */ break; case 1411: #line 9767 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38126 "gram.c" /* yacc.c:1652 */ break; case 1412: #line 9768 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38132 "gram.c" /* yacc.c:1652 */ break; case 1413: #line 9781 "gram.y" /* yacc.c:1652 */ { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[-1].str); n->payload = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38143 "gram.c" /* yacc.c:1652 */ break; case 1414: #line 9790 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 38149 "gram.c" /* yacc.c:1652 */ break; case 1415: #line 9791 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 38155 "gram.c" /* yacc.c:1652 */ break; case 1416: #line 9795 "gram.y" /* yacc.c:1652 */ { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38165 "gram.c" /* yacc.c:1652 */ break; case 1417: #line 9804 "gram.y" /* yacc.c:1652 */ { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38175 "gram.c" /* yacc.c:1652 */ break; case 1418: #line 9810 "gram.y" /* yacc.c:1652 */ { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *)n; } #line 38185 "gram.c" /* yacc.c:1652 */ break; case 1419: #line 9829 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 38197 "gram.c" /* yacc.c:1652 */ break; case 1420: #line 9837 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38208 "gram.c" /* yacc.c:1652 */ break; case 1421: #line 9844 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38219 "gram.c" /* yacc.c:1652 */ break; case 1422: #line 9851 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 38231 "gram.c" /* yacc.c:1652 */ break; case 1423: #line 9859 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 38243 "gram.c" /* yacc.c:1652 */ break; case 1424: #line 9867 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 38255 "gram.c" /* yacc.c:1652 */ break; case 1425: #line 9875 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38266 "gram.c" /* yacc.c:1652 */ break; case 1426: #line 9882 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38277 "gram.c" /* yacc.c:1652 */ break; case 1427: #line 9889 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38288 "gram.c" /* yacc.c:1652 */ break; case 1428: #line 9896 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38299 "gram.c" /* yacc.c:1652 */ break; case 1429: #line 9903 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38310 "gram.c" /* yacc.c:1652 */ break; case 1430: #line 9910 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38321 "gram.c" /* yacc.c:1652 */ break; case 1431: #line 9917 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38332 "gram.c" /* yacc.c:1652 */ break; case 1432: #line 9924 "gram.y" /* yacc.c:1652 */ { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38343 "gram.c" /* yacc.c:1652 */ break; case 1433: #line 9932 "gram.y" /* yacc.c:1652 */ {} #line 38349 "gram.c" /* yacc.c:1652 */ break; case 1434: #line 9933 "gram.y" /* yacc.c:1652 */ {} #line 38355 "gram.c" /* yacc.c:1652 */ break; case 1435: #line 9934 "gram.y" /* yacc.c:1652 */ {} #line 38361 "gram.c" /* yacc.c:1652 */ break; case 1436: #line 9939 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); } #line 38368 "gram.c" /* yacc.c:1652 */ break; case 1437: #line 9942 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(true, (yylsp[-1])), (yylsp[-1])); } #line 38375 "gram.c" /* yacc.c:1652 */ break; case 1438: #line 9945 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } #line 38382 "gram.c" /* yacc.c:1652 */ break; case 1439: #line 9948 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(true, (yylsp[0])), (yylsp[0])); } #line 38389 "gram.c" /* yacc.c:1652 */ break; case 1440: #line 9951 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(false, (yylsp[-1])), (yylsp[-1])); } #line 38396 "gram.c" /* yacc.c:1652 */ break; case 1441: #line 9958 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 38402 "gram.c" /* yacc.c:1652 */ break; case 1442: #line 9960 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 38408 "gram.c" /* yacc.c:1652 */ break; case 1443: #line 9962 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 38414 "gram.c" /* yacc.c:1652 */ break; case 1445: #line 9968 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38420 "gram.c" /* yacc.c:1652 */ break; case 1446: #line 9972 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 38426 "gram.c" /* yacc.c:1652 */ break; case 1447: #line 9973 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38432 "gram.c" /* yacc.c:1652 */ break; case 1448: #line 9974 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 38438 "gram.c" /* yacc.c:1652 */ break; case 1449: #line 9988 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-5].range); n->view->relpersistence = (yyvsp[-7].ival); n->aliases = (yyvsp[-4].list); n->query = (yyvsp[-1].node); n->replace = false; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); (yyval.node) = (Node *) n; } #line 38454 "gram.c" /* yacc.c:1652 */ break; case 1450: #line 10001 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-5].range); n->view->relpersistence = (yyvsp[-7].ival); n->aliases = (yyvsp[-4].list); n->query = (yyvsp[-1].node); n->replace = true; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); (yyval.node) = (Node *) n; } #line 38470 "gram.c" /* yacc.c:1652 */ break; case 1451: #line 10014 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-7].range); n->view->relpersistence = (yyvsp[-10].ival); n->aliases = (yyvsp[-5].list); n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); n->replace = false; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); if (n->withCheckOption != NO_CHECK_OPTION) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION not supported on recursive views"), parser_errposition((yylsp[0])))); (yyval.node) = (Node *) n; } #line 38491 "gram.c" /* yacc.c:1652 */ break; case 1452: #line 10032 "gram.y" /* yacc.c:1652 */ { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[-7].range); n->view->relpersistence = (yyvsp[-10].ival); n->aliases = (yyvsp[-5].list); n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node)); n->replace = true; n->options = (yyvsp[-3].list); n->withCheckOption = (yyvsp[0].ival); if (n->withCheckOption != NO_CHECK_OPTION) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION not supported on recursive views"), parser_errposition((yylsp[0])))); (yyval.node) = (Node *) n; } #line 38512 "gram.c" /* yacc.c:1652 */ break; case 1453: #line 10051 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CASCADED_CHECK_OPTION; } #line 38518 "gram.c" /* yacc.c:1652 */ break; case 1454: #line 10052 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CASCADED_CHECK_OPTION; } #line 38524 "gram.c" /* yacc.c:1652 */ break; case 1455: #line 10053 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LOCAL_CHECK_OPTION; } #line 38530 "gram.c" /* yacc.c:1652 */ break; case 1456: #line 10054 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = NO_CHECK_OPTION; } #line 38536 "gram.c" /* yacc.c:1652 */ break; case 1457: #line 10065 "gram.y" /* yacc.c:1652 */ { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38546 "gram.c" /* yacc.c:1652 */ break; case 1458: #line 10081 "gram.y" /* yacc.c:1652 */ { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38557 "gram.c" /* yacc.c:1652 */ break; case 1459: #line 10090 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 38563 "gram.c" /* yacc.c:1652 */ break; case 1460: #line 10091 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 38569 "gram.c" /* yacc.c:1652 */ break; case 1461: #line 10095 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 38575 "gram.c" /* yacc.c:1652 */ break; case 1462: #line 10096 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 38581 "gram.c" /* yacc.c:1652 */ break; case 1463: #line 10101 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeInteger((yyvsp[0].ival)), (yylsp[-2])); } #line 38589 "gram.c" /* yacc.c:1652 */ break; case 1464: #line 10105 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *)makeString((yyvsp[0].str)), (yylsp[-2])); } #line 38597 "gram.c" /* yacc.c:1652 */ break; case 1465: #line 10109 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); } #line 38605 "gram.c" /* yacc.c:1652 */ break; case 1466: #line 10126 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 38611 "gram.c" /* yacc.c:1652 */ break; case 1467: #line 10127 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup("connection_limit"); } #line 38617 "gram.c" /* yacc.c:1652 */ break; case 1468: #line 10128 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38623 "gram.c" /* yacc.c:1652 */ break; case 1469: #line 10129 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38629 "gram.c" /* yacc.c:1652 */ break; case 1470: #line 10130 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38635 "gram.c" /* yacc.c:1652 */ break; case 1471: #line 10131 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38641 "gram.c" /* yacc.c:1652 */ break; case 1472: #line 10132 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 38647 "gram.c" /* yacc.c:1652 */ break; case 1473: #line 10139 "gram.y" /* yacc.c:1652 */ {} #line 38653 "gram.c" /* yacc.c:1652 */ break; case 1474: #line 10140 "gram.y" /* yacc.c:1652 */ {} #line 38659 "gram.c" /* yacc.c:1652 */ break; case 1475: #line 10152 "gram.y" /* yacc.c:1652 */ { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-2].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38670 "gram.c" /* yacc.c:1652 */ break; case 1476: #line 10159 "gram.y" /* yacc.c:1652 */ { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-1].str); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38681 "gram.c" /* yacc.c:1652 */ break; case 1477: #line 10166 "gram.y" /* yacc.c:1652 */ { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[-3].str); n->options = list_make1(makeDefElem("tablespace", (Node *)makeString((yyvsp[0].str)), (yylsp[0]))); (yyval.node) = (Node *)n; } #line 38693 "gram.c" /* yacc.c:1652 */ break; case 1478: #line 10177 "gram.y" /* yacc.c:1652 */ { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[-1].str); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 38704 "gram.c" /* yacc.c:1652 */ break; case 1479: #line 10194 "gram.y" /* yacc.c:1652 */ { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[0].str); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 38715 "gram.c" /* yacc.c:1652 */ break; case 1480: #line 10201 "gram.y" /* yacc.c:1652 */ { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[0].str); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 38726 "gram.c" /* yacc.c:1652 */ break; case 1481: #line 10217 "gram.y" /* yacc.c:1652 */ { AlterCollationStmt *n = makeNode(AlterCollationStmt); n->collname = (yyvsp[-2].list); (yyval.node) = (Node *)n; } #line 38736 "gram.c" /* yacc.c:1652 */ break; case 1482: #line 10234 "gram.y" /* yacc.c:1652 */ { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 38746 "gram.c" /* yacc.c:1652 */ break; case 1483: #line 10240 "gram.y" /* yacc.c:1652 */ { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[0].vsetstmt); (yyval.node) = (Node *)n; } #line 38756 "gram.c" /* yacc.c:1652 */ break; case 1484: #line 10256 "gram.y" /* yacc.c:1652 */ { CreateDomainStmt *n = makeNode(CreateDomainStmt); n->domainname = (yyvsp[-3].list); n->typeName = (yyvsp[-1].typnam); SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause, yyscanner); (yyval.node) = (Node *)n; } #line 38769 "gram.c" /* yacc.c:1652 */ break; case 1485: #line 10269 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'T'; n->typeName = (yyvsp[-1].list); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 38781 "gram.c" /* yacc.c:1652 */ break; case 1486: #line 10278 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[-3].list); (yyval.node) = (Node *)n; } #line 38792 "gram.c" /* yacc.c:1652 */ break; case 1487: #line 10286 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[-3].list); (yyval.node) = (Node *)n; } #line 38803 "gram.c" /* yacc.c:1652 */ break; case 1488: #line 10294 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'C'; n->typeName = (yyvsp[-2].list); n->def = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 38815 "gram.c" /* yacc.c:1652 */ break; case 1489: #line 10303 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[-4].list); n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = false; (yyval.node) = (Node *)n; } #line 38829 "gram.c" /* yacc.c:1652 */ break; case 1490: #line 10314 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[-6].list); n->name = (yyvsp[-1].str); n->behavior = (yyvsp[0].dbehavior); n->missing_ok = true; (yyval.node) = (Node *)n; } #line 38843 "gram.c" /* yacc.c:1652 */ break; case 1491: #line 10325 "gram.y" /* yacc.c:1652 */ { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'V'; n->typeName = (yyvsp[-3].list); n->name = (yyvsp[0].str); (yyval.node) = (Node *)n; } #line 38855 "gram.c" /* yacc.c:1652 */ break; case 1492: #line 10334 "gram.y" /* yacc.c:1652 */ {} #line 38861 "gram.c" /* yacc.c:1652 */ break; case 1493: #line 10335 "gram.y" /* yacc.c:1652 */ {} #line 38867 "gram.c" /* yacc.c:1652 */ break; case 1494: #line 10347 "gram.y" /* yacc.c:1652 */ { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[-1].list); n->options = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 38878 "gram.c" /* yacc.c:1652 */ break; case 1495: #line 10357 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ADD_MAPPING; n->cfgname = (yyvsp[-6].list); n->tokentype = (yyvsp[-2].list); n->dicts = (yyvsp[0].list); n->override = false; n->replace = false; (yyval.node) = (Node*)n; } #line 38893 "gram.c" /* yacc.c:1652 */ break; case 1496: #line 10368 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN; n->cfgname = (yyvsp[-6].list); n->tokentype = (yyvsp[-2].list); n->dicts = (yyvsp[0].list); n->override = true; n->replace = false; (yyval.node) = (Node*)n; } #line 38908 "gram.c" /* yacc.c:1652 */ break; case 1497: #line 10379 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT; n->cfgname = (yyvsp[-6].list); n->tokentype = NIL; n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list)); n->override = false; n->replace = true; (yyval.node) = (Node*)n; } #line 38923 "gram.c" /* yacc.c:1652 */ break; case 1498: #line 10390 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN; n->cfgname = (yyvsp[-8].list); n->tokentype = (yyvsp[-4].list); n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list)); n->override = false; n->replace = true; (yyval.node) = (Node*)n; } #line 38938 "gram.c" /* yacc.c:1652 */ break; case 1499: #line 10401 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[-4].list); n->tokentype = (yyvsp[0].list); n->missing_ok = false; (yyval.node) = (Node*)n; } #line 38951 "gram.c" /* yacc.c:1652 */ break; case 1500: #line 10410 "gram.y" /* yacc.c:1652 */ { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[-6].list); n->tokentype = (yyvsp[0].list); n->missing_ok = true; (yyval.node) = (Node*)n; } #line 38964 "gram.c" /* yacc.c:1652 */ break; case 1501: #line 10421 "gram.y" /* yacc.c:1652 */ {} #line 38970 "gram.c" /* yacc.c:1652 */ break; case 1502: #line 10422 "gram.y" /* yacc.c:1652 */ {} #line 38976 "gram.c" /* yacc.c:1652 */ break; case 1503: #line 10438 "gram.y" /* yacc.c:1652 */ { CreateConversionStmt *n = makeNode(CreateConversionStmt); n->conversion_name = (yyvsp[-6].list); n->for_encoding_name = (yyvsp[-4].str); n->to_encoding_name = (yyvsp[-2].str); n->func_name = (yyvsp[0].list); n->def = (yyvsp[-8].boolean); (yyval.node) = (Node *)n; } #line 38990 "gram.c" /* yacc.c:1652 */ break; case 1504: #line 10460 "gram.y" /* yacc.c:1652 */ { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[-1].range); n->indexname = (yyvsp[0].str); n->options = 0; if ((yyvsp[-2].boolean)) n->options |= CLUOPT_VERBOSE; (yyval.node) = (Node*)n; } #line 39004 "gram.c" /* yacc.c:1652 */ break; case 1505: #line 10470 "gram.y" /* yacc.c:1652 */ { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; n->options = 0; if ((yyvsp[0].boolean)) n->options |= CLUOPT_VERBOSE; (yyval.node) = (Node*)n; } #line 39018 "gram.c" /* yacc.c:1652 */ break; case 1506: #line 10481 "gram.y" /* yacc.c:1652 */ { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[0].range); n->indexname = (yyvsp[-2].str); n->options = 0; if ((yyvsp[-3].boolean)) n->options |= CLUOPT_VERBOSE; (yyval.node) = (Node*)n; } #line 39032 "gram.c" /* yacc.c:1652 */ break; case 1507: #line 10493 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 39038 "gram.c" /* yacc.c:1652 */ break; case 1508: #line 10494 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 39044 "gram.c" /* yacc.c:1652 */ break; case 1509: #line 10507 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = NIL; if ((yyvsp[-4].boolean)) n->options = lappend(n->options, makeDefElem("full", NULL, (yylsp[-4]))); if ((yyvsp[-3].boolean)) n->options = lappend(n->options, makeDefElem("freeze", NULL, (yylsp[-3]))); if ((yyvsp[-2].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[-2]))); if ((yyvsp[-1].boolean)) n->options = lappend(n->options, makeDefElem("analyze", NULL, (yylsp[-1]))); n->rels = (yyvsp[0].list); n->is_vacuumcmd = true; (yyval.node) = (Node *)n; } #line 39068 "gram.c" /* yacc.c:1652 */ break; case 1510: #line 10527 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = (yyvsp[-2].list); n->rels = (yyvsp[0].list); n->is_vacuumcmd = true; (yyval.node) = (Node *) n; } #line 39080 "gram.c" /* yacc.c:1652 */ break; case 1511: #line 10537 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = NIL; if ((yyvsp[-1].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[-1]))); n->rels = (yyvsp[0].list); n->is_vacuumcmd = false; (yyval.node) = (Node *)n; } #line 39095 "gram.c" /* yacc.c:1652 */ break; case 1512: #line 10548 "gram.y" /* yacc.c:1652 */ { VacuumStmt *n = makeNode(VacuumStmt); n->options = (yyvsp[-2].list); n->rels = (yyvsp[0].list); n->is_vacuumcmd = false; (yyval.node) = (Node *) n; } #line 39107 "gram.c" /* yacc.c:1652 */ break; case 1513: #line 10559 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 39115 "gram.c" /* yacc.c:1652 */ break; case 1514: #line 10563 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 39123 "gram.c" /* yacc.c:1652 */ break; case 1515: #line 10569 "gram.y" /* yacc.c:1652 */ {} #line 39129 "gram.c" /* yacc.c:1652 */ break; case 1516: #line 10570 "gram.y" /* yacc.c:1652 */ {} #line 39135 "gram.c" /* yacc.c:1652 */ break; case 1517: #line 10575 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 39143 "gram.c" /* yacc.c:1652 */ break; case 1518: #line 10581 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 39149 "gram.c" /* yacc.c:1652 */ break; case 1519: #line 10582 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "analyze"; } #line 39155 "gram.c" /* yacc.c:1652 */ break; case 1520: #line 10586 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 39161 "gram.c" /* yacc.c:1652 */ break; case 1521: #line 10587 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].value); } #line 39167 "gram.c" /* yacc.c:1652 */ break; case 1522: #line 10588 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 39173 "gram.c" /* yacc.c:1652 */ break; case 1523: #line 10592 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 39179 "gram.c" /* yacc.c:1652 */ break; case 1524: #line 10593 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 39185 "gram.c" /* yacc.c:1652 */ break; case 1525: #line 10597 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 39191 "gram.c" /* yacc.c:1652 */ break; case 1526: #line 10598 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 39197 "gram.c" /* yacc.c:1652 */ break; case 1527: #line 10601 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 39203 "gram.c" /* yacc.c:1652 */ break; case 1528: #line 10602 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 39209 "gram.c" /* yacc.c:1652 */ break; case 1529: #line 10605 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 39215 "gram.c" /* yacc.c:1652 */ break; case 1530: #line 10606 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 39221 "gram.c" /* yacc.c:1652 */ break; case 1531: #line 10610 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 39227 "gram.c" /* yacc.c:1652 */ break; case 1532: #line 10611 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39233 "gram.c" /* yacc.c:1652 */ break; case 1533: #line 10616 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list)); } #line 39241 "gram.c" /* yacc.c:1652 */ break; case 1534: #line 10623 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 39247 "gram.c" /* yacc.c:1652 */ break; case 1535: #line 10625 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 39253 "gram.c" /* yacc.c:1652 */ break; case 1536: #line 10629 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39259 "gram.c" /* yacc.c:1652 */ break; case 1537: #line 10630 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39265 "gram.c" /* yacc.c:1652 */ break; case 1538: #line 10644 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = NIL; (yyval.node) = (Node *) n; } #line 39276 "gram.c" /* yacc.c:1652 */ break; case 1539: #line 10651 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2]))); if ((yyvsp[-1].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (Node *) n; } #line 39290 "gram.c" /* yacc.c:1652 */ break; case 1540: #line 10661 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1]))); (yyval.node) = (Node *) n; } #line 39301 "gram.c" /* yacc.c:1652 */ break; case 1541: #line 10668 "gram.y" /* yacc.c:1652 */ { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[0].node); n->options = (yyvsp[-2].list); (yyval.node) = (Node *) n; } #line 39312 "gram.c" /* yacc.c:1652 */ break; case 1551: #line 10690 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 39320 "gram.c" /* yacc.c:1652 */ break; case 1552: #line 10694 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); } #line 39328 "gram.c" /* yacc.c:1652 */ break; case 1553: #line 10701 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 39336 "gram.c" /* yacc.c:1652 */ break; case 1554: #line 10707 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 39342 "gram.c" /* yacc.c:1652 */ break; case 1555: #line 10708 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "analyze"; } #line 39348 "gram.c" /* yacc.c:1652 */ break; case 1556: #line 10712 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 39354 "gram.c" /* yacc.c:1652 */ break; case 1557: #line 10713 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].value); } #line 39360 "gram.c" /* yacc.c:1652 */ break; case 1558: #line 10714 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 39366 "gram.c" /* yacc.c:1652 */ break; case 1559: #line 10725 "gram.y" /* yacc.c:1652 */ { PrepareStmt *n = makeNode(PrepareStmt); n->name = (yyvsp[-3].str); n->argtypes = (yyvsp[-2].list); n->query = (yyvsp[0].node); (yyval.node) = (Node *) n; } #line 39378 "gram.c" /* yacc.c:1652 */ break; case 1560: #line 10734 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 39384 "gram.c" /* yacc.c:1652 */ break; case 1561: #line 10735 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39390 "gram.c" /* yacc.c:1652 */ break; case 1566: #line 10753 "gram.y" /* yacc.c:1652 */ { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-1].str); n->params = (yyvsp[0].list); (yyval.node) = (Node *) n; } #line 39401 "gram.c" /* yacc.c:1652 */ break; case 1567: #line 10761 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-2].str); n->params = (yyvsp[-1].list); ctas->query = (Node *) n; ctas->into = (yyvsp[-5].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-7].ival); (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 39421 "gram.c" /* yacc.c:1652 */ break; case 1568: #line 10778 "gram.y" /* yacc.c:1652 */ { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[-2].str); n->params = (yyvsp[-1].list); ctas->query = (Node *) n; ctas->into = (yyvsp[-5].into); ctas->relkind = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-10].ival); (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean)); (yyval.node) = (Node *) ctas; } #line 39441 "gram.c" /* yacc.c:1652 */ break; case 1569: #line 10795 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 39447 "gram.c" /* yacc.c:1652 */ break; case 1570: #line 10796 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39453 "gram.c" /* yacc.c:1652 */ break; case 1571: #line 10807 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 39463 "gram.c" /* yacc.c:1652 */ break; case 1572: #line 10813 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[0].str); (yyval.node) = (Node *) n; } #line 39473 "gram.c" /* yacc.c:1652 */ break; case 1573: #line 10819 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } #line 39483 "gram.c" /* yacc.c:1652 */ break; case 1574: #line 10825 "gram.y" /* yacc.c:1652 */ { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; } #line 39493 "gram.c" /* yacc.c:1652 */ break; case 1575: #line 10842 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].istmt)->relation = (yyvsp[-3].range); (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict); (yyvsp[-2].istmt)->returningList = (yyvsp[0].list); (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with); (yyval.node) = (Node *) (yyvsp[-2].istmt); } #line 39505 "gram.c" /* yacc.c:1652 */ break; case 1576: #line 10859 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); } #line 39513 "gram.c" /* yacc.c:1652 */ break; case 1577: #line 10863 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL); (yyval.range) = (yyvsp[-2].range); } #line 39522 "gram.c" /* yacc.c:1652 */ break; case 1578: #line 10871 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39532 "gram.c" /* yacc.c:1652 */ break; case 1579: #line 10877 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->override = (yyvsp[-2].ival); (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39543 "gram.c" /* yacc.c:1652 */ break; case 1580: #line 10884 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[-2].list); (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39553 "gram.c" /* yacc.c:1652 */ break; case 1581: #line 10890 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[-5].list); (yyval.istmt)->override = (yyvsp[-2].ival); (yyval.istmt)->selectStmt = (yyvsp[0].node); } #line 39564 "gram.c" /* yacc.c:1652 */ break; case 1582: #line 10897 "gram.y" /* yacc.c:1652 */ { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; } #line 39574 "gram.c" /* yacc.c:1652 */ break; case 1583: #line 10905 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OVERRIDING_USER_VALUE; } #line 39580 "gram.c" /* yacc.c:1652 */ break; case 1584: #line 10906 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; } #line 39586 "gram.c" /* yacc.c:1652 */ break; case 1585: #line 10911 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 39592 "gram.c" /* yacc.c:1652 */ break; case 1586: #line 10913 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 39598 "gram.c" /* yacc.c:1652 */ break; case 1587: #line 10918 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[-1].str); (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; (yyval.target)->location = (yylsp[-1]); } #line 39610 "gram.c" /* yacc.c:1652 */ break; case 1588: #line 10929 "gram.y" /* yacc.c:1652 */ { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_UPDATE; (yyval.onconflict)->infer = (yyvsp[-5].infer); (yyval.onconflict)->targetList = (yyvsp[-1].list); (yyval.onconflict)->whereClause = (yyvsp[0].node); (yyval.onconflict)->location = (yylsp[-7]); } #line 39623 "gram.c" /* yacc.c:1652 */ break; case 1589: #line 10939 "gram.y" /* yacc.c:1652 */ { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_NOTHING; (yyval.onconflict)->infer = (yyvsp[-2].infer); (yyval.onconflict)->targetList = NIL; (yyval.onconflict)->whereClause = NULL; (yyval.onconflict)->location = (yylsp[-4]); } #line 39636 "gram.c" /* yacc.c:1652 */ break; case 1590: #line 10948 "gram.y" /* yacc.c:1652 */ { (yyval.onconflict) = NULL; } #line 39644 "gram.c" /* yacc.c:1652 */ break; case 1591: #line 10955 "gram.y" /* yacc.c:1652 */ { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = (yyvsp[-2].list); (yyval.infer)->whereClause = (yyvsp[0].node); (yyval.infer)->conname = NULL; (yyval.infer)->location = (yylsp[-3]); } #line 39656 "gram.c" /* yacc.c:1652 */ break; case 1592: #line 10964 "gram.y" /* yacc.c:1652 */ { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = NIL; (yyval.infer)->whereClause = NULL; (yyval.infer)->conname = (yyvsp[0].str); (yyval.infer)->location = (yylsp[-2]); } #line 39668 "gram.c" /* yacc.c:1652 */ break; case 1593: #line 10972 "gram.y" /* yacc.c:1652 */ { (yyval.infer) = NULL; } #line 39676 "gram.c" /* yacc.c:1652 */ break; case 1594: #line 10978 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39682 "gram.c" /* yacc.c:1652 */ break; case 1595: #line 10979 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39688 "gram.c" /* yacc.c:1652 */ break; case 1596: #line 10992 "gram.y" /* yacc.c:1652 */ { DeleteStmt *n = makeNode(DeleteStmt); n->relation = (yyvsp[-3].range); n->usingClause = (yyvsp[-2].list); n->whereClause = (yyvsp[-1].node); n->returningList = (yyvsp[0].list); n->withClause = (yyvsp[-6].with); (yyval.node) = (Node *)n; } #line 39702 "gram.c" /* yacc.c:1652 */ break; case 1597: #line 11004 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39708 "gram.c" /* yacc.c:1652 */ break; case 1598: #line 11005 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 39714 "gram.c" /* yacc.c:1652 */ break; case 1599: #line 11017 "gram.y" /* yacc.c:1652 */ { LockStmt *n = makeNode(LockStmt); n->relations = (yyvsp[-2].list); n->mode = (yyvsp[-1].ival); n->nowait = (yyvsp[0].boolean); (yyval.node) = (Node *)n; } #line 39727 "gram.c" /* yacc.c:1652 */ break; case 1600: #line 11027 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival); } #line 39733 "gram.c" /* yacc.c:1652 */ break; case 1601: #line 11028 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = AccessExclusiveLock; } #line 39739 "gram.c" /* yacc.c:1652 */ break; case 1602: #line 11031 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = AccessShareLock; } #line 39745 "gram.c" /* yacc.c:1652 */ break; case 1603: #line 11032 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RowShareLock; } #line 39751 "gram.c" /* yacc.c:1652 */ break; case 1604: #line 11033 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = RowExclusiveLock; } #line 39757 "gram.c" /* yacc.c:1652 */ break; case 1605: #line 11034 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ShareUpdateExclusiveLock; } #line 39763 "gram.c" /* yacc.c:1652 */ break; case 1606: #line 11035 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ShareLock; } #line 39769 "gram.c" /* yacc.c:1652 */ break; case 1607: #line 11036 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ShareRowExclusiveLock; } #line 39775 "gram.c" /* yacc.c:1652 */ break; case 1608: #line 11037 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ExclusiveLock; } #line 39781 "gram.c" /* yacc.c:1652 */ break; case 1609: #line 11038 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = AccessExclusiveLock; } #line 39787 "gram.c" /* yacc.c:1652 */ break; case 1610: #line 11041 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 39793 "gram.c" /* yacc.c:1652 */ break; case 1611: #line 11042 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 39799 "gram.c" /* yacc.c:1652 */ break; case 1612: #line 11046 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LockWaitError; } #line 39805 "gram.c" /* yacc.c:1652 */ break; case 1613: #line 11047 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LockWaitSkip; } #line 39811 "gram.c" /* yacc.c:1652 */ break; case 1614: #line 11048 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LockWaitBlock; } #line 39817 "gram.c" /* yacc.c:1652 */ break; case 1615: #line 11064 "gram.y" /* yacc.c:1652 */ { UpdateStmt *n = makeNode(UpdateStmt); n->relation = (yyvsp[-5].range); n->targetList = (yyvsp[-3].list); n->fromClause = (yyvsp[-2].list); n->whereClause = (yyvsp[-1].node); n->returningList = (yyvsp[0].list); n->withClause = (yyvsp[-7].with); (yyval.node) = (Node *)n; } #line 39832 "gram.c" /* yacc.c:1652 */ break; case 1616: #line 11077 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 39838 "gram.c" /* yacc.c:1652 */ break; case 1617: #line 11078 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); } #line 39844 "gram.c" /* yacc.c:1652 */ break; case 1618: #line 11083 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node); (yyval.list) = list_make1((yyvsp[-2].target)); } #line 39853 "gram.c" /* yacc.c:1652 */ break; case 1619: #line 11088 "gram.y" /* yacc.c:1652 */ { int ncolumns = list_length((yyvsp[-3].list)); int i = 1; ListCell *col_cell; /* Create a MultiAssignRef source for each target */ foreach(col_cell, (yyvsp[-3].list)) { ResTarget *res_col = (ResTarget *) lfirst(col_cell); MultiAssignRef *r = makeNode(MultiAssignRef); r->source = (Node *) (yyvsp[0].node); r->colno = i; r->ncolumns = ncolumns; res_col->val = (Node *) r; i++; } (yyval.list) = (yyvsp[-3].list); } #line 39878 "gram.c" /* yacc.c:1652 */ break; case 1620: #line 11112 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[-1].str); (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.target)->val = NULL; /* upper production sets this */ (yyval.target)->location = (yylsp[-1]); } #line 39890 "gram.c" /* yacc.c:1652 */ break; case 1621: #line 11122 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 39896 "gram.c" /* yacc.c:1652 */ break; case 1622: #line 11123 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); } #line 39902 "gram.c" /* yacc.c:1652 */ break; case 1623: #line 11134 "gram.y" /* yacc.c:1652 */ { DeclareCursorStmt *n = makeNode(DeclareCursorStmt); n->portalname = (yyvsp[-5].str); /* currently we always set FAST_PLAN option */ n->options = (yyvsp[-4].ival) | (yyvsp[-2].ival) | CURSOR_OPT_FAST_PLAN; n->query = (yyvsp[0].node); (yyval.node) = (Node *)n; } #line 39915 "gram.c" /* yacc.c:1652 */ break; case 1624: #line 11144 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 39921 "gram.c" /* yacc.c:1652 */ break; case 1625: #line 11147 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 39927 "gram.c" /* yacc.c:1652 */ break; case 1626: #line 11148 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; } #line 39933 "gram.c" /* yacc.c:1652 */ break; case 1627: #line 11149 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; } #line 39939 "gram.c" /* yacc.c:1652 */ break; case 1628: #line 11150 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; } #line 39945 "gram.c" /* yacc.c:1652 */ break; case 1629: #line 11151 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; } #line 39951 "gram.c" /* yacc.c:1652 */ break; case 1630: #line 11154 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 39957 "gram.c" /* yacc.c:1652 */ break; case 1631: #line 11155 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CURSOR_OPT_HOLD; } #line 39963 "gram.c" /* yacc.c:1652 */ break; case 1632: #line 11156 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 39969 "gram.c" /* yacc.c:1652 */ break; case 1635: #line 11209 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 39975 "gram.c" /* yacc.c:1652 */ break; case 1636: #line 11210 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 39981 "gram.c" /* yacc.c:1652 */ break; case 1637: #line 11225 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 39987 "gram.c" /* yacc.c:1652 */ break; case 1638: #line 11227 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, NULL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[-1].node); } #line 39998 "gram.c" /* yacc.c:1652 */ break; case 1639: #line 11234 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), list_nth((yyvsp[0].list), 0), list_nth((yyvsp[0].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 40010 "gram.c" /* yacc.c:1652 */ break; case 1640: #line 11242 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), list_nth((yyvsp[-1].list), 0), list_nth((yyvsp[-1].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 40022 "gram.c" /* yacc.c:1652 */ break; case 1641: #line 11250 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL, NULL, NULL, (yyvsp[-1].with), yyscanner); (yyval.node) = (yyvsp[0].node); } #line 40034 "gram.c" /* yacc.c:1652 */ break; case 1642: #line 11258 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL, NULL, NULL, (yyvsp[-2].with), yyscanner); (yyval.node) = (yyvsp[-1].node); } #line 40046 "gram.c" /* yacc.c:1652 */ break; case 1643: #line 11266 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list), list_nth((yyvsp[0].list), 0), list_nth((yyvsp[0].list), 1), (yyvsp[-4].with), yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 40058 "gram.c" /* yacc.c:1652 */ break; case 1644: #line 11274 "gram.y" /* yacc.c:1652 */ { insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list), list_nth((yyvsp[-1].list), 0), list_nth((yyvsp[-1].list), 1), (yyvsp[-4].with), yyscanner); (yyval.node) = (yyvsp[-3].node); } #line 40070 "gram.c" /* yacc.c:1652 */ break; case 1645: #line 11284 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40076 "gram.c" /* yacc.c:1652 */ break; case 1646: #line 11285 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40082 "gram.c" /* yacc.c:1652 */ break; case 1647: #line 11315 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = makeNode(SelectStmt); n->targetList = (yyvsp[-6].list); n->intoClause = (yyvsp[-5].into); n->fromClause = (yyvsp[-4].list); n->whereClause = (yyvsp[-3].node); n->groupClause = (yyvsp[-2].list); n->havingClause = (yyvsp[-1].node); n->windowClause = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 40098 "gram.c" /* yacc.c:1652 */ break; case 1648: #line 11329 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = makeNode(SelectStmt); n->distinctClause = (yyvsp[-7].list); n->targetList = (yyvsp[-6].list); n->intoClause = (yyvsp[-5].into); n->fromClause = (yyvsp[-4].list); n->whereClause = (yyvsp[-3].node); n->groupClause = (yyvsp[-2].list); n->havingClause = (yyvsp[-1].node); n->windowClause = (yyvsp[0].list); (yyval.node) = (Node *)n; } #line 40115 "gram.c" /* yacc.c:1652 */ break; case 1649: #line 11341 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40121 "gram.c" /* yacc.c:1652 */ break; case 1650: #line 11343 "gram.y" /* yacc.c:1652 */ { /* same as SELECT * FROM relation_expr */ ColumnRef *cr = makeNode(ColumnRef); ResTarget *rt = makeNode(ResTarget); SelectStmt *n = makeNode(SelectStmt); cr->fields = list_make1(makeNode(A_Star)); cr->location = -1; rt->name = NULL; rt->indirection = NIL; rt->val = (Node *)cr; rt->location = -1; n->targetList = list_make1(rt); n->fromClause = list_make1((yyvsp[0].range)); (yyval.node) = (Node *)n; } #line 40144 "gram.c" /* yacc.c:1652 */ break; case 1651: #line 11362 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } #line 40152 "gram.c" /* yacc.c:1652 */ break; case 1652: #line 11366 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } #line 40160 "gram.c" /* yacc.c:1652 */ break; case 1653: #line 11370 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].boolean), (yyvsp[-3].node), (yyvsp[0].node)); } #line 40168 "gram.c" /* yacc.c:1652 */ break; case 1654: #line 11387 "gram.y" /* yacc.c:1652 */ { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } #line 40179 "gram.c" /* yacc.c:1652 */ break; case 1655: #line 11394 "gram.y" /* yacc.c:1652 */ { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[-1]); } #line 40190 "gram.c" /* yacc.c:1652 */ break; case 1656: #line 11401 "gram.y" /* yacc.c:1652 */ { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[0].list); (yyval.with)->recursive = true; (yyval.with)->location = (yylsp[-2]); } #line 40201 "gram.c" /* yacc.c:1652 */ break; case 1657: #line 11410 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40207 "gram.c" /* yacc.c:1652 */ break; case 1658: #line 11411 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 40213 "gram.c" /* yacc.c:1652 */ break; case 1659: #line 11415 "gram.y" /* yacc.c:1652 */ { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = (yyvsp[-6].str); n->aliascolnames = (yyvsp[-5].list); n->ctematerialized = (yyvsp[-3].ival); n->ctequery = (yyvsp[-1].node); n->location = (yylsp[-6]); (yyval.node) = (Node *) n; } #line 40227 "gram.c" /* yacc.c:1652 */ break; case 1660: #line 11427 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CTEMaterializeAlways; } #line 40233 "gram.c" /* yacc.c:1652 */ break; case 1661: #line 11428 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CTEMaterializeNever; } #line 40239 "gram.c" /* yacc.c:1652 */ break; case 1662: #line 11429 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = CTEMaterializeDefault; } #line 40245 "gram.c" /* yacc.c:1652 */ break; case 1663: #line 11433 "gram.y" /* yacc.c:1652 */ { (yyval.with) = (yyvsp[0].with); } #line 40251 "gram.c" /* yacc.c:1652 */ break; case 1664: #line 11434 "gram.y" /* yacc.c:1652 */ { (yyval.with) = NULL; } #line 40257 "gram.c" /* yacc.c:1652 */ break; case 1665: #line 11439 "gram.y" /* yacc.c:1652 */ { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[0].range); (yyval.into)->colNames = NIL; (yyval.into)->options = NIL; (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = NULL; (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; } #line 40272 "gram.c" /* yacc.c:1652 */ break; case 1666: #line 11450 "gram.y" /* yacc.c:1652 */ { (yyval.into) = NULL; } #line 40278 "gram.c" /* yacc.c:1652 */ break; case 1667: #line 11459 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 40287 "gram.c" /* yacc.c:1652 */ break; case 1668: #line 11464 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 40296 "gram.c" /* yacc.c:1652 */ break; case 1669: #line 11469 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 40305 "gram.c" /* yacc.c:1652 */ break; case 1670: #line 11474 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 40314 "gram.c" /* yacc.c:1652 */ break; case 1671: #line 11479 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-3])))); (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 40326 "gram.c" /* yacc.c:1652 */ break; case 1672: #line 11487 "gram.y" /* yacc.c:1652 */ { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[-3])))); (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; } #line 40338 "gram.c" /* yacc.c:1652 */ break; case 1673: #line 11495 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; } #line 40347 "gram.c" /* yacc.c:1652 */ break; case 1674: #line 11500 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } #line 40356 "gram.c" /* yacc.c:1652 */ break; case 1675: #line 11505 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; } #line 40365 "gram.c" /* yacc.c:1652 */ break; case 1676: #line 11511 "gram.y" /* yacc.c:1652 */ {} #line 40371 "gram.c" /* yacc.c:1652 */ break; case 1677: #line 11512 "gram.y" /* yacc.c:1652 */ {} #line 40377 "gram.c" /* yacc.c:1652 */ break; case 1678: #line 11516 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 40383 "gram.c" /* yacc.c:1652 */ break; case 1679: #line 11517 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 40389 "gram.c" /* yacc.c:1652 */ break; case 1680: #line 11518 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 40395 "gram.c" /* yacc.c:1652 */ break; case 1681: #line 11525 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(NIL); } #line 40401 "gram.c" /* yacc.c:1652 */ break; case 1682: #line 11526 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 40407 "gram.c" /* yacc.c:1652 */ break; case 1683: #line 11530 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL;} #line 40413 "gram.c" /* yacc.c:1652 */ break; case 1684: #line 11531 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40419 "gram.c" /* yacc.c:1652 */ break; case 1685: #line 11535 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list);} #line 40425 "gram.c" /* yacc.c:1652 */ break; case 1686: #line 11536 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40431 "gram.c" /* yacc.c:1652 */ break; case 1687: #line 11540 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40437 "gram.c" /* yacc.c:1652 */ break; case 1688: #line 11544 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].sortby)); } #line 40443 "gram.c" /* yacc.c:1652 */ break; case 1689: #line 11545 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); } #line 40449 "gram.c" /* yacc.c:1652 */ break; case 1690: #line 11549 "gram.y" /* yacc.c:1652 */ { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[-3].node); (yyval.sortby)->sortby_dir = SORTBY_USING; (yyval.sortby)->sortby_nulls = (yyvsp[0].ival); (yyval.sortby)->useOp = (yyvsp[-1].list); (yyval.sortby)->location = (yylsp[-1]); } #line 40462 "gram.c" /* yacc.c:1652 */ break; case 1691: #line 11558 "gram.y" /* yacc.c:1652 */ { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[-2].node); (yyval.sortby)->sortby_dir = (yyvsp[-1].ival); (yyval.sortby)->sortby_nulls = (yyvsp[0].ival); (yyval.sortby)->useOp = NIL; (yyval.sortby)->location = -1; /* no operator */ } #line 40475 "gram.c" /* yacc.c:1652 */ break; case 1692: #line 11570 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-1].node)); } #line 40481 "gram.c" /* yacc.c:1652 */ break; case 1693: #line 11571 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } #line 40487 "gram.c" /* yacc.c:1652 */ break; case 1694: #line 11572 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[0].node)); } #line 40493 "gram.c" /* yacc.c:1652 */ break; case 1695: #line 11573 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].node), NULL); } #line 40499 "gram.c" /* yacc.c:1652 */ break; case 1696: #line 11577 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40505 "gram.c" /* yacc.c:1652 */ break; case 1697: #line 11578 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL,NULL); } #line 40511 "gram.c" /* yacc.c:1652 */ break; case 1698: #line 11583 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40517 "gram.c" /* yacc.c:1652 */ break; case 1699: #line 11585 "gram.y" /* yacc.c:1652 */ { /* Disabled because it was too confusing, bjm 2002-02-18 */ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("LIMIT #,# syntax is not supported"), errhint("Use separate LIMIT and OFFSET clauses."), parser_errposition((yylsp[-3])))); } #line 40530 "gram.c" /* yacc.c:1652 */ break; case 1700: #line 11601 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-2].node); } #line 40536 "gram.c" /* yacc.c:1652 */ break; case 1701: #line 11603 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(1, -1); } #line 40542 "gram.c" /* yacc.c:1652 */ break; case 1702: #line 11608 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40548 "gram.c" /* yacc.c:1652 */ break; case 1703: #line 11611 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 40554 "gram.c" /* yacc.c:1652 */ break; case 1704: #line 11615 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40560 "gram.c" /* yacc.c:1652 */ break; case 1705: #line 11617 "gram.y" /* yacc.c:1652 */ { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[0])); } #line 40569 "gram.c" /* yacc.c:1652 */ break; case 1706: #line 11624 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40575 "gram.c" /* yacc.c:1652 */ break; case 1707: #line 11644 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40581 "gram.c" /* yacc.c:1652 */ break; case 1708: #line 11646 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } #line 40587 "gram.c" /* yacc.c:1652 */ break; case 1709: #line 11648 "gram.y" /* yacc.c:1652 */ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } #line 40593 "gram.c" /* yacc.c:1652 */ break; case 1710: #line 11652 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); } #line 40599 "gram.c" /* yacc.c:1652 */ break; case 1711: #line 11653 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); } #line 40605 "gram.c" /* yacc.c:1652 */ break; case 1712: #line 11657 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40611 "gram.c" /* yacc.c:1652 */ break; case 1713: #line 11658 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40617 "gram.c" /* yacc.c:1652 */ break; case 1714: #line 11661 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40623 "gram.c" /* yacc.c:1652 */ break; case 1715: #line 11662 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 40629 "gram.c" /* yacc.c:1652 */ break; case 1716: #line 11687 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40635 "gram.c" /* yacc.c:1652 */ break; case 1717: #line 11688 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40641 "gram.c" /* yacc.c:1652 */ break; case 1718: #line 11692 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40647 "gram.c" /* yacc.c:1652 */ break; case 1719: #line 11693 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); } #line 40653 "gram.c" /* yacc.c:1652 */ break; case 1720: #line 11697 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40659 "gram.c" /* yacc.c:1652 */ break; case 1721: #line 11698 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40665 "gram.c" /* yacc.c:1652 */ break; case 1722: #line 11699 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40671 "gram.c" /* yacc.c:1652 */ break; case 1723: #line 11700 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40677 "gram.c" /* yacc.c:1652 */ break; case 1724: #line 11701 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40683 "gram.c" /* yacc.c:1652 */ break; case 1725: #line 11706 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1])); } #line 40691 "gram.c" /* yacc.c:1652 */ break; case 1726: #line 11719 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3])); } #line 40699 "gram.c" /* yacc.c:1652 */ break; case 1727: #line 11726 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3])); } #line 40707 "gram.c" /* yacc.c:1652 */ break; case 1728: #line 11733 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4])); } #line 40715 "gram.c" /* yacc.c:1652 */ break; case 1729: #line 11739 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 40721 "gram.c" /* yacc.c:1652 */ break; case 1730: #line 11740 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 40727 "gram.c" /* yacc.c:1652 */ break; case 1731: #line 11744 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40733 "gram.c" /* yacc.c:1652 */ break; case 1732: #line 11745 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40739 "gram.c" /* yacc.c:1652 */ break; case 1733: #line 11749 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40745 "gram.c" /* yacc.c:1652 */ break; case 1734: #line 11750 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40751 "gram.c" /* yacc.c:1652 */ break; case 1735: #line 11754 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40757 "gram.c" /* yacc.c:1652 */ break; case 1736: #line 11755 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 40763 "gram.c" /* yacc.c:1652 */ break; case 1737: #line 11760 "gram.y" /* yacc.c:1652 */ { LockingClause *n = makeNode(LockingClause); n->lockedRels = (yyvsp[-1].list); n->strength = (yyvsp[-2].ival); n->waitPolicy = (yyvsp[0].ival); (yyval.node) = (Node *) n; } #line 40775 "gram.c" /* yacc.c:1652 */ break; case 1738: #line 11770 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORUPDATE; } #line 40781 "gram.c" /* yacc.c:1652 */ break; case 1739: #line 11771 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORNOKEYUPDATE; } #line 40787 "gram.c" /* yacc.c:1652 */ break; case 1740: #line 11772 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORSHARE; } #line 40793 "gram.c" /* yacc.c:1652 */ break; case 1741: #line 11773 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = LCS_FORKEYSHARE; } #line 40799 "gram.c" /* yacc.c:1652 */ break; case 1742: #line 11777 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40805 "gram.c" /* yacc.c:1652 */ break; case 1743: #line 11778 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40811 "gram.c" /* yacc.c:1652 */ break; case 1744: #line 11789 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[-1].list)); (yyval.node) = (Node *) n; } #line 40821 "gram.c" /* yacc.c:1652 */ break; case 1745: #line 11795 "gram.y" /* yacc.c:1652 */ { SelectStmt *n = (SelectStmt *) (yyvsp[-4].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list)); (yyval.node) = (Node *) n; } #line 40831 "gram.c" /* yacc.c:1652 */ break; case 1746: #line 11812 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 40837 "gram.c" /* yacc.c:1652 */ break; case 1747: #line 11813 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 40843 "gram.c" /* yacc.c:1652 */ break; case 1748: #line 11817 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 40849 "gram.c" /* yacc.c:1652 */ break; case 1749: #line 11818 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 40855 "gram.c" /* yacc.c:1652 */ break; case 1750: #line 11825 "gram.y" /* yacc.c:1652 */ { (yyvsp[-1].range)->alias = (yyvsp[0].alias); (yyval.node) = (Node *) (yyvsp[-1].range); } #line 40864 "gram.c" /* yacc.c:1652 */ break; case 1751: #line 11830 "gram.y" /* yacc.c:1652 */ { RangeTableSample *n = (RangeTableSample *) (yyvsp[0].node); (yyvsp[-2].range)->alias = (yyvsp[-1].alias); /* relation_expr goes inside the RangeTableSample node */ n->relation = (Node *) (yyvsp[-2].range); (yyval.node) = (Node *) n; } #line 40876 "gram.c" /* yacc.c:1652 */ break; case 1752: #line 11838 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); n->alias = linitial((yyvsp[0].list)); n->coldeflist = lsecond((yyvsp[0].list)); (yyval.node) = (Node *) n; } #line 40887 "gram.c" /* yacc.c:1652 */ break; case 1753: #line 11845 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = (RangeFunction *) (yyvsp[-1].node); n->lateral = true; n->alias = linitial((yyvsp[0].list)); n->coldeflist = lsecond((yyvsp[0].list)); (yyval.node) = (Node *) n; } #line 40899 "gram.c" /* yacc.c:1652 */ break; case 1754: #line 11853 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); n->alias = (yyvsp[0].alias); (yyval.node) = (Node *) n; } #line 40909 "gram.c" /* yacc.c:1652 */ break; case 1755: #line 11859 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node); n->lateral = true; n->alias = (yyvsp[0].alias); (yyval.node) = (Node *) n; } #line 40920 "gram.c" /* yacc.c:1652 */ break; case 1756: #line 11866 "gram.y" /* yacc.c:1652 */ { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = false; n->subquery = (yyvsp[-1].node); n->alias = (yyvsp[0].alias); /* * The SQL spec does not permit a subselect * () without an alias clause, * so we don't either. This avoids the problem * of needing to invent a unique refname for it. * That could be surmounted if there's sufficient * popular demand, but for now let's just implement * the spec and see if anyone complains. * However, it does seem like a good idea to emit * an error message that's better than "syntax error". */ if ((yyvsp[0].alias) == NULL) { if (IsA((yyvsp[-1].node), SelectStmt) && ((SelectStmt *) (yyvsp[-1].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[-1])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[-1])))); } (yyval.node) = (Node *) n; } #line 40959 "gram.c" /* yacc.c:1652 */ break; case 1757: #line 11901 "gram.y" /* yacc.c:1652 */ { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = true; n->subquery = (yyvsp[-1].node); n->alias = (yyvsp[0].alias); /* same comment as above */ if ((yyvsp[0].alias) == NULL) { if (IsA((yyvsp[-1].node), SelectStmt) && ((SelectStmt *) (yyvsp[-1].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[-1])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[-1])))); } (yyval.node) = (Node *) n; } #line 40988 "gram.c" /* yacc.c:1652 */ break; case 1758: #line 11926 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[0].jexpr); } #line 40996 "gram.c" /* yacc.c:1652 */ break; case 1759: #line 11930 "gram.y" /* yacc.c:1652 */ { (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias); (yyval.node) = (Node *) (yyvsp[-2].jexpr); } #line 41005 "gram.c" /* yacc.c:1652 */ break; case 1760: #line 11956 "gram.y" /* yacc.c:1652 */ { (yyval.jexpr) = (yyvsp[-1].jexpr); } #line 41013 "gram.c" /* yacc.c:1652 */ break; case 1761: #line 11960 "gram.y" /* yacc.c:1652 */ { /* CROSS JOIN is same as unqualified inner join */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = false; n->larg = (yyvsp[-3].node); n->rarg = (yyvsp[0].node); n->usingClause = NIL; n->quals = NULL; (yyval.jexpr) = n; } #line 41029 "gram.c" /* yacc.c:1652 */ break; case 1762: #line 11972 "gram.y" /* yacc.c:1652 */ { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[-3].jtype); n->isNatural = false; n->larg = (yyvsp[-4].node); n->rarg = (yyvsp[-1].node); if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List)) n->usingClause = (List *) (yyvsp[0].node); /* USING clause */ else n->quals = (yyvsp[0].node); /* ON clause */ (yyval.jexpr) = n; } #line 41046 "gram.c" /* yacc.c:1652 */ break; case 1763: #line 11985 "gram.y" /* yacc.c:1652 */ { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = false; n->larg = (yyvsp[-3].node); n->rarg = (yyvsp[-1].node); if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List)) n->usingClause = (List *) (yyvsp[0].node); /* USING clause */ else n->quals = (yyvsp[0].node); /* ON clause */ (yyval.jexpr) = n; } #line 41064 "gram.c" /* yacc.c:1652 */ break; case 1764: #line 11999 "gram.y" /* yacc.c:1652 */ { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[-2].jtype); n->isNatural = true; n->larg = (yyvsp[-4].node); n->rarg = (yyvsp[0].node); n->usingClause = NIL; /* figure out which columns later... */ n->quals = NULL; /* fill later */ (yyval.jexpr) = n; } #line 41079 "gram.c" /* yacc.c:1652 */ break; case 1765: #line 12010 "gram.y" /* yacc.c:1652 */ { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = true; n->larg = (yyvsp[-3].node); n->rarg = (yyvsp[0].node); n->usingClause = NIL; /* figure out which columns later... */ n->quals = NULL; /* fill later */ (yyval.jexpr) = n; } #line 41095 "gram.c" /* yacc.c:1652 */ break; case 1766: #line 12025 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } #line 41105 "gram.c" /* yacc.c:1652 */ break; case 1767: #line 12031 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[0].str); } #line 41114 "gram.c" /* yacc.c:1652 */ break; case 1768: #line 12036 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[-3].str); (yyval.alias)->colnames = (yyvsp[-1].list); } #line 41124 "gram.c" /* yacc.c:1652 */ break; case 1769: #line 12042 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[0].str); } #line 41133 "gram.c" /* yacc.c:1652 */ break; case 1770: #line 12048 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = (yyvsp[0].alias); } #line 41139 "gram.c" /* yacc.c:1652 */ break; case 1771: #line 12049 "gram.y" /* yacc.c:1652 */ { (yyval.alias) = NULL; } #line 41145 "gram.c" /* yacc.c:1652 */ break; case 1772: #line 12058 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].alias), NIL); } #line 41153 "gram.c" /* yacc.c:1652 */ break; case 1773: #line 12062 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, (yyvsp[-1].list)); } #line 41161 "gram.c" /* yacc.c:1652 */ break; case 1774: #line 12066 "gram.y" /* yacc.c:1652 */ { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } #line 41171 "gram.c" /* yacc.c:1652 */ break; case 1775: #line 12072 "gram.y" /* yacc.c:1652 */ { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[-3].str); (yyval.list) = list_make2(a, (yyvsp[-1].list)); } #line 41181 "gram.c" /* yacc.c:1652 */ break; case 1776: #line 12078 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(NULL, NIL); } #line 41189 "gram.c" /* yacc.c:1652 */ break; case 1777: #line 12083 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_FULL; } #line 41195 "gram.c" /* yacc.c:1652 */ break; case 1778: #line 12084 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_LEFT; } #line 41201 "gram.c" /* yacc.c:1652 */ break; case 1779: #line 12085 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_RIGHT; } #line 41207 "gram.c" /* yacc.c:1652 */ break; case 1780: #line 12086 "gram.y" /* yacc.c:1652 */ { (yyval.jtype) = JOIN_INNER; } #line 41213 "gram.c" /* yacc.c:1652 */ break; case 1781: #line 12090 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41219 "gram.c" /* yacc.c:1652 */ break; case 1782: #line 12091 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41225 "gram.c" /* yacc.c:1652 */ break; case 1783: #line 12103 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[-1].list); } #line 41231 "gram.c" /* yacc.c:1652 */ break; case 1784: #line 12104 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 41237 "gram.c" /* yacc.c:1652 */ break; case 1785: #line 12110 "gram.y" /* yacc.c:1652 */ { /* inheritance query, implicitly */ (yyval.range) = (yyvsp[0].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; } #line 41248 "gram.c" /* yacc.c:1652 */ break; case 1786: #line 12117 "gram.y" /* yacc.c:1652 */ { /* inheritance query, explicitly */ (yyval.range) = (yyvsp[-1].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; } #line 41259 "gram.c" /* yacc.c:1652 */ break; case 1787: #line 12124 "gram.y" /* yacc.c:1652 */ { /* no inheritance */ (yyval.range) = (yyvsp[0].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; } #line 41270 "gram.c" /* yacc.c:1652 */ break; case 1788: #line 12131 "gram.y" /* yacc.c:1652 */ { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[-1].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; } #line 41281 "gram.c" /* yacc.c:1652 */ break; case 1789: #line 12141 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].range)); } #line 41287 "gram.c" /* yacc.c:1652 */ break; case 1790: #line 12142 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } #line 41293 "gram.c" /* yacc.c:1652 */ break; case 1791: #line 12156 "gram.y" /* yacc.c:1652 */ { (yyval.range) = (yyvsp[0].range); } #line 41301 "gram.c" /* yacc.c:1652 */ break; case 1792: #line 12160 "gram.y" /* yacc.c:1652 */ { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[0].str); (yyvsp[-1].range)->alias = alias; (yyval.range) = (yyvsp[-1].range); } #line 41312 "gram.c" /* yacc.c:1652 */ break; case 1793: #line 12167 "gram.y" /* yacc.c:1652 */ { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[0].str); (yyvsp[-2].range)->alias = alias; (yyval.range) = (yyvsp[-2].range); } #line 41323 "gram.c" /* yacc.c:1652 */ break; case 1794: #line 12180 "gram.y" /* yacc.c:1652 */ { RangeTableSample *n = makeNode(RangeTableSample); /* n->relation will be filled in later */ n->method = (yyvsp[-4].list); n->args = (yyvsp[-2].list); n->repeatable = (yyvsp[0].node); n->location = (yylsp[-4]); (yyval.node) = (Node *) n; } #line 41337 "gram.c" /* yacc.c:1652 */ break; case 1795: #line 12192 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) (yyvsp[-1].node); } #line 41343 "gram.c" /* yacc.c:1652 */ break; case 1796: #line 12193 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41349 "gram.c" /* yacc.c:1652 */ break; case 1797: #line 12209 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[0].boolean); n->is_rowsfrom = false; n->functions = list_make1(list_make2((yyvsp[-1].node), NIL)); /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; } #line 41363 "gram.c" /* yacc.c:1652 */ break; case 1798: #line 12219 "gram.y" /* yacc.c:1652 */ { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[0].boolean); n->is_rowsfrom = true; n->functions = (yyvsp[-2].list); /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; } #line 41377 "gram.c" /* yacc.c:1652 */ break; case 1799: #line 12231 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); } #line 41383 "gram.c" /* yacc.c:1652 */ break; case 1800: #line 12235 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].list)); } #line 41389 "gram.c" /* yacc.c:1652 */ break; case 1801: #line 12236 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); } #line 41395 "gram.c" /* yacc.c:1652 */ break; case 1802: #line 12239 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 41401 "gram.c" /* yacc.c:1652 */ break; case 1803: #line 12240 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41407 "gram.c" /* yacc.c:1652 */ break; case 1804: #line 12243 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 41413 "gram.c" /* yacc.c:1652 */ break; case 1805: #line 12244 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 41419 "gram.c" /* yacc.c:1652 */ break; case 1806: #line 12249 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 41425 "gram.c" /* yacc.c:1652 */ break; case 1807: #line 12250 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41431 "gram.c" /* yacc.c:1652 */ break; case 1808: #line 12255 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 41437 "gram.c" /* yacc.c:1652 */ break; case 1809: #line 12257 "gram.y" /* yacc.c:1652 */ { CurrentOfExpr *n = makeNode(CurrentOfExpr); /* cvarno is filled in by parse analysis */ n->cursor_name = (yyvsp[0].str); n->cursor_param = 0; (yyval.node) = (Node *) n; } #line 41449 "gram.c" /* yacc.c:1652 */ break; case 1810: #line 12264 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 41455 "gram.c" /* yacc.c:1652 */ break; case 1811: #line 12269 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 41461 "gram.c" /* yacc.c:1652 */ break; case 1812: #line 12270 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41467 "gram.c" /* yacc.c:1652 */ break; case 1813: #line 12275 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 41475 "gram.c" /* yacc.c:1652 */ break; case 1814: #line 12279 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 41483 "gram.c" /* yacc.c:1652 */ break; case 1815: #line 12285 "gram.y" /* yacc.c:1652 */ { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[-2].str); n->typeName = (yyvsp[-1].typnam); n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collClause = (CollateClause *) (yyvsp[0].node); n->collOid = InvalidOid; n->constraints = NIL; n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } #line 41505 "gram.c" /* yacc.c:1652 */ break; case 1816: #line 12309 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[-4].node); n->docexpr = (yyvsp[-3].node); n->columns = (yyvsp[-1].list); n->namespaces = NIL; n->location = (yylsp[-6]); (yyval.node) = (Node *)n; } #line 41519 "gram.c" /* yacc.c:1652 */ break; case 1817: #line 12320 "gram.y" /* yacc.c:1652 */ { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[-4].node); n->docexpr = (yyvsp[-3].node); n->columns = (yyvsp[-1].list); n->namespaces = (yyvsp[-7].list); n->location = (yylsp[-11]); (yyval.node) = (Node *)n; } #line 41533 "gram.c" /* yacc.c:1652 */ break; case 1818: #line 12331 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 41539 "gram.c" /* yacc.c:1652 */ break; case 1819: #line 12332 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 41545 "gram.c" /* yacc.c:1652 */ break; case 1820: #line 12337 "gram.y" /* yacc.c:1652 */ { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[-1].str); fc->for_ordinality = false; fc->typeName = (yyvsp[0].typnam); fc->is_not_null = false; fc->colexpr = NULL; fc->coldefexpr = NULL; fc->location = (yylsp[-1]); (yyval.node) = (Node *) fc; } #line 41563 "gram.c" /* yacc.c:1652 */ break; case 1821: #line 12351 "gram.y" /* yacc.c:1652 */ { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ListCell *option; bool nullability_seen = false; fc->colname = (yyvsp[-2].str); fc->typeName = (yyvsp[-1].typnam); fc->for_ordinality = false; fc->is_not_null = false; fc->colexpr = NULL; fc->coldefexpr = NULL; fc->location = (yylsp[-2]); foreach(option, (yyvsp[0].list)) { DefElem *defel = (DefElem *) lfirst(option); if (strcmp(defel->defname, "default") == 0) { if (fc->coldefexpr != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only one DEFAULT value is allowed"), parser_errposition(defel->location))); fc->coldefexpr = defel->arg; } else if (strcmp(defel->defname, "path") == 0) { if (fc->colexpr != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only one PATH value per column is allowed"), parser_errposition(defel->location))); fc->colexpr = defel->arg; } else if (strcmp(defel->defname, "is_not_null") == 0) { if (nullability_seen) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname), parser_errposition(defel->location))); fc->is_not_null = intVal(defel->arg); nullability_seen = true; } else { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized column option \"%s\"", defel->defname), parser_errposition(defel->location))); } } (yyval.node) = (Node *) fc; } #line 41624 "gram.c" /* yacc.c:1652 */ break; case 1822: #line 12408 "gram.y" /* yacc.c:1652 */ { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[-2].str); fc->for_ordinality = true; /* other fields are ignored, initialized by makeNode */ fc->location = (yylsp[-2]); (yyval.node) = (Node *) fc; } #line 41639 "gram.c" /* yacc.c:1652 */ break; case 1823: #line 12422 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].defelt)); } #line 41645 "gram.c" /* yacc.c:1652 */ break; case 1824: #line 12424 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); } #line 41651 "gram.c" /* yacc.c:1652 */ break; case 1825: #line 12429 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1])); } #line 41657 "gram.c" /* yacc.c:1652 */ break; case 1826: #line 12431 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); } #line 41663 "gram.c" /* yacc.c:1652 */ break; case 1827: #line 12433 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(true), (yylsp[-1])); } #line 41669 "gram.c" /* yacc.c:1652 */ break; case 1828: #line 12435 "gram.y" /* yacc.c:1652 */ { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeInteger(false), (yylsp[0])); } #line 41675 "gram.c" /* yacc.c:1652 */ break; case 1829: #line 12440 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 41681 "gram.c" /* yacc.c:1652 */ break; case 1830: #line 12442 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 41687 "gram.c" /* yacc.c:1652 */ break; case 1831: #line 12447 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } #line 41699 "gram.c" /* yacc.c:1652 */ break; case 1832: #line 12455 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[0].node); (yyval.target)->location = (yylsp[-1]); } #line 41711 "gram.c" /* yacc.c:1652 */ break; case 1833: #line 12475 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); } #line 41720 "gram.c" /* yacc.c:1652 */ break; case 1834: #line 12480 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = (yyvsp[0].list); (yyval.typnam)->setof = true; } #line 41730 "gram.c" /* yacc.c:1652 */ break; case 1835: #line 12487 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); } #line 41739 "gram.c" /* yacc.c:1652 */ break; case 1836: #line 12492 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-4].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival))); (yyval.typnam)->setof = true; } #line 41749 "gram.c" /* yacc.c:1652 */ break; case 1837: #line 12498 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); } #line 41758 "gram.c" /* yacc.c:1652 */ break; case 1838: #line 12503 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = true; } #line 41768 "gram.c" /* yacc.c:1652 */ break; case 1839: #line 12512 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); } #line 41774 "gram.c" /* yacc.c:1652 */ break; case 1840: #line 12514 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); } #line 41780 "gram.c" /* yacc.c:1652 */ break; case 1841: #line 12516 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41786 "gram.c" /* yacc.c:1652 */ break; case 1842: #line 12520 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41792 "gram.c" /* yacc.c:1652 */ break; case 1843: #line 12521 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41798 "gram.c" /* yacc.c:1652 */ break; case 1844: #line 12522 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41804 "gram.c" /* yacc.c:1652 */ break; case 1845: #line 12523 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41810 "gram.c" /* yacc.c:1652 */ break; case 1846: #line 12524 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41816 "gram.c" /* yacc.c:1652 */ break; case 1847: #line 12526 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-1].typnam); (yyval.typnam)->typmods = (yyvsp[0].list); } #line 41825 "gram.c" /* yacc.c:1652 */ break; case 1848: #line 12531 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[-3].typnam); (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } #line 41835 "gram.c" /* yacc.c:1652 */ break; case 1849: #line 12550 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41841 "gram.c" /* yacc.c:1652 */ break; case 1850: #line 12551 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41847 "gram.c" /* yacc.c:1652 */ break; case 1851: #line 12552 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41853 "gram.c" /* yacc.c:1652 */ break; case 1852: #line 12553 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 41859 "gram.c" /* yacc.c:1652 */ break; case 1853: #line 12565 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeName((yyvsp[-1].str)); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41869 "gram.c" /* yacc.c:1652 */ break; case 1854: #line 12571 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list))); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-2]); } #line 41879 "gram.c" /* yacc.c:1652 */ break; case 1855: #line 12578 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 41885 "gram.c" /* yacc.c:1652 */ break; case 1856: #line 12579 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 41891 "gram.c" /* yacc.c:1652 */ break; case 1857: #line 12586 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } #line 41900 "gram.c" /* yacc.c:1652 */ break; case 1858: #line 12591 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[0]); } #line 41909 "gram.c" /* yacc.c:1652 */ break; case 1859: #line 12596 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[0]); } #line 41918 "gram.c" /* yacc.c:1652 */ break; case 1860: #line 12601 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[0]); } #line 41927 "gram.c" /* yacc.c:1652 */ break; case 1861: #line 12606 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[0]); } #line 41936 "gram.c" /* yacc.c:1652 */ break; case 1862: #line 12611 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->location = (yylsp[-1]); } #line 41945 "gram.c" /* yacc.c:1652 */ break; case 1863: #line 12616 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[-1]); } #line 41954 "gram.c" /* yacc.c:1652 */ break; case 1864: #line 12621 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41964 "gram.c" /* yacc.c:1652 */ break; case 1865: #line 12627 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41974 "gram.c" /* yacc.c:1652 */ break; case 1866: #line 12633 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[0].list); (yyval.typnam)->location = (yylsp[-1]); } #line 41984 "gram.c" /* yacc.c:1652 */ break; case 1867: #line 12639 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[0]); } #line 41993 "gram.c" /* yacc.c:1652 */ break; case 1868: #line 12646 "gram.y" /* yacc.c:1652 */ { /* * Check FLOAT() precision limits assuming IEEE floating * types - thomas 1997-09-18 */ if ((yyvsp[-1].ival) < 1) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be at least 1 bit"), parser_errposition((yylsp[-1])))); else if ((yyvsp[-1].ival) <= 24) (yyval.typnam) = SystemTypeName("float4"); else if ((yyvsp[-1].ival) <= 53) (yyval.typnam) = SystemTypeName("float8"); else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be less than 54 bits"), parser_errposition((yylsp[-1])))); } #line 42018 "gram.c" /* yacc.c:1652 */ break; case 1869: #line 12667 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("float8"); } #line 42026 "gram.c" /* yacc.c:1652 */ break; case 1870: #line 12677 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 42034 "gram.c" /* yacc.c:1652 */ break; case 1871: #line 12681 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 42042 "gram.c" /* yacc.c:1652 */ break; case 1872: #line 12689 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 42050 "gram.c" /* yacc.c:1652 */ break; case 1873: #line 12693 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } #line 42059 "gram.c" /* yacc.c:1652 */ break; case 1874: #line 12701 "gram.y" /* yacc.c:1652 */ { char *typname; typname = (yyvsp[-3].boolean) ? "varbit" : "bit"; (yyval.typnam) = SystemTypeName(typname); (yyval.typnam)->typmods = (yyvsp[-1].list); (yyval.typnam)->location = (yylsp[-4]); } #line 42072 "gram.c" /* yacc.c:1652 */ break; case 1875: #line 12713 "gram.y" /* yacc.c:1652 */ { /* bit defaults to bit(1), varbit to no limit */ if ((yyvsp[0].boolean)) { (yyval.typnam) = SystemTypeName("varbit"); } else { (yyval.typnam) = SystemTypeName("bit"); (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); } (yyval.typnam)->location = (yylsp[-1]); } #line 42090 "gram.c" /* yacc.c:1652 */ break; case 1876: #line 12734 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 42098 "gram.c" /* yacc.c:1652 */ break; case 1877: #line 12738 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 42106 "gram.c" /* yacc.c:1652 */ break; case 1878: #line 12744 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = (yyvsp[0].typnam); } #line 42114 "gram.c" /* yacc.c:1652 */ break; case 1879: #line 12748 "gram.y" /* yacc.c:1652 */ { /* Length was not specified so allow to be unrestricted. * This handles problems with fixed-length (bpchar) strings * which in column definitions must default to a length * of one, but should not be constrained if the length * was not specified. */ (yyval.typnam) = (yyvsp[0].typnam); (yyval.typnam)->typmods = NIL; } #line 42129 "gram.c" /* yacc.c:1652 */ break; case 1880: #line 12761 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName((yyvsp[-3].str)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); (yyval.typnam)->location = (yylsp[-3]); } #line 42139 "gram.c" /* yacc.c:1652 */ break; case 1881: #line 12769 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName((yyvsp[0].str)); /* char defaults to char(1), varchar to no limit */ if (strcmp((yyvsp[0].str), "bpchar") == 0) (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[0]); } #line 42151 "gram.c" /* yacc.c:1652 */ break; case 1882: #line 12779 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 42157 "gram.c" /* yacc.c:1652 */ break; case 1883: #line 12781 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 42163 "gram.c" /* yacc.c:1652 */ break; case 1884: #line 12783 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "varchar"; } #line 42169 "gram.c" /* yacc.c:1652 */ break; case 1885: #line 12785 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 42175 "gram.c" /* yacc.c:1652 */ break; case 1886: #line 12787 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 42181 "gram.c" /* yacc.c:1652 */ break; case 1887: #line 12789 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; } #line 42187 "gram.c" /* yacc.c:1652 */ break; case 1888: #line 12793 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 42193 "gram.c" /* yacc.c:1652 */ break; case 1889: #line 12794 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 42199 "gram.c" /* yacc.c:1652 */ break; case 1890: #line 12802 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } #line 42212 "gram.c" /* yacc.c:1652 */ break; case 1891: #line 12811 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[-1]); } #line 42224 "gram.c" /* yacc.c:1652 */ break; case 1892: #line 12819 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.typnam)->location = (yylsp[-4]); } #line 42237 "gram.c" /* yacc.c:1652 */ break; case 1893: #line 12828 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[-1]); } #line 42249 "gram.c" /* yacc.c:1652 */ break; case 1894: #line 12839 "gram.y" /* yacc.c:1652 */ { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[0]); } #line 42258 "gram.c" /* yacc.c:1652 */ break; case 1895: #line 12846 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 42264 "gram.c" /* yacc.c:1652 */ break; case 1896: #line 12847 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 42270 "gram.c" /* yacc.c:1652 */ break; case 1897: #line 12848 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 42276 "gram.c" /* yacc.c:1652 */ break; case 1898: #line 12853 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); } #line 42282 "gram.c" /* yacc.c:1652 */ break; case 1899: #line 12855 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); } #line 42288 "gram.c" /* yacc.c:1652 */ break; case 1900: #line 12857 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); } #line 42294 "gram.c" /* yacc.c:1652 */ break; case 1901: #line 12859 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); } #line 42300 "gram.c" /* yacc.c:1652 */ break; case 1902: #line 12861 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); } #line 42306 "gram.c" /* yacc.c:1652 */ break; case 1903: #line 12863 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 42312 "gram.c" /* yacc.c:1652 */ break; case 1904: #line 12865 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[-2]))); } #line 42321 "gram.c" /* yacc.c:1652 */ break; case 1905: #line 12870 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[-2]))); } #line 42330 "gram.c" /* yacc.c:1652 */ break; case 1906: #line 12875 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } #line 42340 "gram.c" /* yacc.c:1652 */ break; case 1907: #line 12881 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } #line 42352 "gram.c" /* yacc.c:1652 */ break; case 1908: #line 12889 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[-2]))); } #line 42361 "gram.c" /* yacc.c:1652 */ break; case 1909: #line 12894 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } #line 42372 "gram.c" /* yacc.c:1652 */ break; case 1910: #line 12901 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[-2])); } #line 42382 "gram.c" /* yacc.c:1652 */ break; case 1911: #line 12907 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 42388 "gram.c" /* yacc.c:1652 */ break; case 1912: #line 12912 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0]))); } #line 42396 "gram.c" /* yacc.c:1652 */ break; case 1913: #line 12916 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])), makeIntConst((yyvsp[-1].ival), (yylsp[-1]))); } #line 42405 "gram.c" /* yacc.c:1652 */ break; case 1914: #line 12951 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 42411 "gram.c" /* yacc.c:1652 */ break; case 1915: #line 12953 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } #line 42417 "gram.c" /* yacc.c:1652 */ break; case 1916: #line 12955 "gram.y" /* yacc.c:1652 */ { CollateClause *n = makeNode(CollateClause); n->arg = (yyvsp[-2].node); n->collname = (yyvsp[0].list); n->location = (yylsp[-1]); (yyval.node) = (Node *) n; } #line 42429 "gram.c" /* yacc.c:1652 */ break; case 1917: #line 12963 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[0].node), (yyvsp[-4].node)), (yylsp[-3])); } #line 42439 "gram.c" /* yacc.c:1652 */ break; case 1918: #line 12978 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } #line 42445 "gram.c" /* yacc.c:1652 */ break; case 1919: #line 12980 "gram.y" /* yacc.c:1652 */ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } #line 42451 "gram.c" /* yacc.c:1652 */ break; case 1920: #line 12982 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42457 "gram.c" /* yacc.c:1652 */ break; case 1921: #line 12984 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42463 "gram.c" /* yacc.c:1652 */ break; case 1922: #line 12986 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42469 "gram.c" /* yacc.c:1652 */ break; case 1923: #line 12988 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42475 "gram.c" /* yacc.c:1652 */ break; case 1924: #line 12990 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42481 "gram.c" /* yacc.c:1652 */ break; case 1925: #line 12992 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42487 "gram.c" /* yacc.c:1652 */ break; case 1926: #line 12994 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42493 "gram.c" /* yacc.c:1652 */ break; case 1927: #line 12996 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42499 "gram.c" /* yacc.c:1652 */ break; case 1928: #line 12998 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42505 "gram.c" /* yacc.c:1652 */ break; case 1929: #line 13000 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42511 "gram.c" /* yacc.c:1652 */ break; case 1930: #line 13002 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42517 "gram.c" /* yacc.c:1652 */ break; case 1931: #line 13004 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42523 "gram.c" /* yacc.c:1652 */ break; case 1932: #line 13007 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42529 "gram.c" /* yacc.c:1652 */ break; case 1933: #line 13009 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } #line 42535 "gram.c" /* yacc.c:1652 */ break; case 1934: #line 13011 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } #line 42541 "gram.c" /* yacc.c:1652 */ break; case 1935: #line 13014 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42547 "gram.c" /* yacc.c:1652 */ break; case 1936: #line 13016 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42553 "gram.c" /* yacc.c:1652 */ break; case 1937: #line 13018 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } #line 42559 "gram.c" /* yacc.c:1652 */ break; case 1938: #line 13020 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); } #line 42565 "gram.c" /* yacc.c:1652 */ break; case 1939: #line 13023 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42574 "gram.c" /* yacc.c:1652 */ break; case 1940: #line 13028 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } #line 42586 "gram.c" /* yacc.c:1652 */ break; case 1941: #line 13036 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } #line 42595 "gram.c" /* yacc.c:1652 */ break; case 1942: #line 13041 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } #line 42607 "gram.c" /* yacc.c:1652 */ break; case 1943: #line 13049 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 42616 "gram.c" /* yacc.c:1652 */ break; case 1944: #line 13054 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } #line 42628 "gram.c" /* yacc.c:1652 */ break; case 1945: #line 13062 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } #line 42637 "gram.c" /* yacc.c:1652 */ break; case 1946: #line 13067 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } #line 42649 "gram.c" /* yacc.c:1652 */ break; case 1947: #line 13076 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[0].node), makeNullAConst(-1)), (yylsp[-2])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[-3].node), (Node *) n, (yylsp[-2])); } #line 42661 "gram.c" /* yacc.c:1652 */ break; case 1948: #line 13084 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[-5].node), (Node *) n, (yylsp[-4])); } #line 42673 "gram.c" /* yacc.c:1652 */ break; case 1949: #line 13092 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[0].node), makeNullAConst(-1)), (yylsp[-3])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[-4].node), (Node *) n, (yylsp[-3])); } #line 42685 "gram.c" /* yacc.c:1652 */ break; case 1950: #line 13100 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[-6].node), (Node *) n, (yylsp[-5])); } #line 42697 "gram.c" /* yacc.c:1652 */ break; case 1951: #line 13118 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-2].node); n->nulltesttype = IS_NULL; n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 42709 "gram.c" /* yacc.c:1652 */ break; case 1952: #line 13126 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-1].node); n->nulltesttype = IS_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 42721 "gram.c" /* yacc.c:1652 */ break; case 1953: #line 13134 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-3].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } #line 42733 "gram.c" /* yacc.c:1652 */ break; case 1954: #line 13142 "gram.y" /* yacc.c:1652 */ { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[-1].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 42745 "gram.c" /* yacc.c:1652 */ break; case 1955: #line 13150 "gram.y" /* yacc.c:1652 */ { if (list_length((yyvsp[-2].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on left side of OVERLAPS expression"), parser_errposition((yylsp[-2])))); if (list_length((yyvsp[0].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on right side of OVERLAPS expression"), parser_errposition((yylsp[0])))); (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"), list_concat((yyvsp[-2].list), (yyvsp[0].list)), (yylsp[-1])); } #line 42765 "gram.c" /* yacc.c:1652 */ break; case 1956: #line 13166 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_TRUE; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } #line 42777 "gram.c" /* yacc.c:1652 */ break; case 1957: #line 13174 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_TRUE; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } #line 42789 "gram.c" /* yacc.c:1652 */ break; case 1958: #line 13182 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_FALSE; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } #line 42801 "gram.c" /* yacc.c:1652 */ break; case 1959: #line 13190 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_FALSE; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } #line 42813 "gram.c" /* yacc.c:1652 */ break; case 1960: #line 13198 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-2].node); b->booltesttype = IS_UNKNOWN; b->location = (yylsp[-1]); (yyval.node) = (Node *)b; } #line 42825 "gram.c" /* yacc.c:1652 */ break; case 1961: #line 13206 "gram.y" /* yacc.c:1652 */ { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[-3].node); b->booltesttype = IS_NOT_UNKNOWN; b->location = (yylsp[-2]); (yyval.node) = (Node *)b; } #line 42837 "gram.c" /* yacc.c:1652 */ break; case 1962: #line 13214 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } #line 42845 "gram.c" /* yacc.c:1652 */ break; case 1963: #line 13218 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } #line 42853 "gram.c" /* yacc.c:1652 */ break; case 1964: #line 13222 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); } #line 42861 "gram.c" /* yacc.c:1652 */ break; case 1965: #line 13226 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); } #line 42869 "gram.c" /* yacc.c:1652 */ break; case 1966: #line 13230 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN, "BETWEEN", (yyvsp[-5].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } #line 42881 "gram.c" /* yacc.c:1652 */ break; case 1967: #line 13238 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN, "NOT BETWEEN", (yyvsp[-6].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } #line 42893 "gram.c" /* yacc.c:1652 */ break; case 1968: #line 13246 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM, "BETWEEN SYMMETRIC", (yyvsp[-5].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-4])); } #line 42905 "gram.c" /* yacc.c:1652 */ break; case 1969: #line 13254 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM, "NOT BETWEEN SYMMETRIC", (yyvsp[-6].node), (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)), (yylsp[-5])); } #line 42917 "gram.c" /* yacc.c:1652 */ break; case 1970: #line 13262 "gram.y" /* yacc.c:1652 */ { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[0].node), SubLink)) { /* generate foo = ANY (subquery) */ SubLink *n = (SubLink *) (yyvsp[0].node); n->subLinkType = ANY_SUBLINK; n->subLinkId = 0; n->testexpr = (yyvsp[-2].node); n->operName = NIL; /* show it's IN not = ANY */ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } else { /* generate scalar IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } } #line 42941 "gram.c" /* yacc.c:1652 */ break; case 1971: #line 13282 "gram.y" /* yacc.c:1652 */ { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[0].node), SubLink)) { /* generate NOT (foo = ANY (subquery)) */ /* Make an = ANY node */ SubLink *n = (SubLink *) (yyvsp[0].node); n->subLinkType = ANY_SUBLINK; n->subLinkId = 0; n->testexpr = (yyvsp[-3].node); n->operName = NIL; /* show it's IN not = ANY */ n->location = (yylsp[-2]); /* Stick a NOT on top; must have same parse location */ (yyval.node) = makeNotExpr((Node *) n, (yylsp[-2])); } else { /* generate scalar NOT IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2])); } } #line 42967 "gram.c" /* yacc.c:1652 */ break; case 1972: #line 13304 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = (yyvsp[-1].ival); n->subLinkId = 0; n->testexpr = (yyvsp[-3].node); n->operName = (yyvsp[-2].list); n->subselect = (yyvsp[0].node); n->location = (yylsp[-2]); (yyval.node) = (Node *)n; } #line 42982 "gram.c" /* yacc.c:1652 */ break; case 1973: #line 13315 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[-3].ival) == ANY_SUBLINK) (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); else (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4])); } #line 42993 "gram.c" /* yacc.c:1652 */ break; case 1974: #line 13322 "gram.y" /* yacc.c:1652 */ { /* Not sure how to get rid of the parentheses * but there are lots of shift/reduce errors without them. * * Should be able to implement this by plopping the entire * select into a node, then transforming the target expressions * from whatever they are into count(*), and testing the * entire result equal to one. * But, will probably implement a separate node in the executor. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNIQUE predicate is not yet implemented"), parser_errposition((yylsp[-1])))); } #line 43013 "gram.c" /* yacc.c:1652 */ break; case 1975: #line 13338 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-2].node)), (yylsp[-1])); } #line 43022 "gram.c" /* yacc.c:1652 */ break; case 1976: #line 13343 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } #line 43032 "gram.c" /* yacc.c:1652 */ break; case 1977: #line 13349 "gram.y" /* yacc.c:1652 */ { /* * The SQL spec only allows DEFAULT in "contextually typed * expressions", but for us, it's easier to allow it in * any a_expr and then throw error during parse analysis * if it's in an inappropriate context. This way also * lets us say something smarter than "syntax error". */ SetToDefault *n = makeNode(SetToDefault); /* parse analysis will fill in the rest */ n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 43050 "gram.c" /* yacc.c:1652 */ break; case 1978: #line 13374 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43056 "gram.c" /* yacc.c:1652 */ break; case 1979: #line 13376 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); } #line 43062 "gram.c" /* yacc.c:1652 */ break; case 1980: #line 13378 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); } #line 43068 "gram.c" /* yacc.c:1652 */ break; case 1981: #line 13380 "gram.y" /* yacc.c:1652 */ { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); } #line 43074 "gram.c" /* yacc.c:1652 */ break; case 1982: #line 13382 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43080 "gram.c" /* yacc.c:1652 */ break; case 1983: #line 13384 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43086 "gram.c" /* yacc.c:1652 */ break; case 1984: #line 13386 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43092 "gram.c" /* yacc.c:1652 */ break; case 1985: #line 13388 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43098 "gram.c" /* yacc.c:1652 */ break; case 1986: #line 13390 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43104 "gram.c" /* yacc.c:1652 */ break; case 1987: #line 13392 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43110 "gram.c" /* yacc.c:1652 */ break; case 1988: #line 13394 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43116 "gram.c" /* yacc.c:1652 */ break; case 1989: #line 13396 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43122 "gram.c" /* yacc.c:1652 */ break; case 1990: #line 13398 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43128 "gram.c" /* yacc.c:1652 */ break; case 1991: #line 13400 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43134 "gram.c" /* yacc.c:1652 */ break; case 1992: #line 13402 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43140 "gram.c" /* yacc.c:1652 */ break; case 1993: #line 13404 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43146 "gram.c" /* yacc.c:1652 */ break; case 1994: #line 13406 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); } #line 43152 "gram.c" /* yacc.c:1652 */ break; case 1995: #line 13408 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); } #line 43158 "gram.c" /* yacc.c:1652 */ break; case 1996: #line 13410 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[0].list), (yyvsp[-1].node), NULL, (yylsp[0])); } #line 43164 "gram.c" /* yacc.c:1652 */ break; case 1997: #line 13412 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3])); } #line 43172 "gram.c" /* yacc.c:1652 */ break; case 1998: #line 13416 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4])); } #line 43180 "gram.c" /* yacc.c:1652 */ break; case 1999: #line 13420 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[-5].node), (Node *) (yyvsp[-1].list), (yylsp[-4])); } #line 43188 "gram.c" /* yacc.c:1652 */ break; case 2000: #line 13424 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[-6].node), (Node *) (yyvsp[-1].list), (yylsp[-5])); } #line 43196 "gram.c" /* yacc.c:1652 */ break; case 2001: #line 13428 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-2].node)), (yylsp[-1])); } #line 43205 "gram.c" /* yacc.c:1652 */ break; case 2002: #line 13433 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[-3].node)), (yylsp[-2])), (yylsp[-2])); } #line 43215 "gram.c" /* yacc.c:1652 */ break; case 2003: #line 13448 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43221 "gram.c" /* yacc.c:1652 */ break; case 2004: #line 13449 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43227 "gram.c" /* yacc.c:1652 */ break; case 2005: #line 13451 "gram.y" /* yacc.c:1652 */ { ParamRef *p = makeNode(ParamRef); p->number = (yyvsp[-1].ival); p->location = (yylsp[-1]); if ((yyvsp[0].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (Node *) p; n->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *) n; } else (yyval.node) = (Node *) p; } #line 43246 "gram.c" /* yacc.c:1652 */ break; case 2006: #line 13466 "gram.y" /* yacc.c:1652 */ { if ((yyvsp[0].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (yyvsp[-2].node); n->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *)n; } else if (operator_precedence_warning) { /* * If precedence warnings are enabled, insert * AEXPR_PAREN nodes wrapping all explicitly * parenthesized subexpressions; this prevents bogus * warnings from being issued when the ordering has * been forced by parentheses. Take care that an * AEXPR_PAREN node has the same exprLocation as its * child, so as not to cause surprising changes in * error cursor positioning. * * In principle we should not be relying on a GUC to * decide whether to insert AEXPR_PAREN nodes. * However, since they have no effect except to * suppress warnings, it's probably safe enough; and * we'd just as soon not waste cycles on dummy parse * nodes if we don't have to. */ (yyval.node) = (Node *) makeA_Expr(AEXPR_PAREN, NIL, (yyvsp[-2].node), NULL, exprLocation((yyvsp[-2].node))); } else (yyval.node) = (yyvsp[-2].node); } #line 43284 "gram.c" /* yacc.c:1652 */ break; case 2007: #line 13500 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43290 "gram.c" /* yacc.c:1652 */ break; case 2008: #line 13502 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43296 "gram.c" /* yacc.c:1652 */ break; case 2009: #line 13504 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[0].node); n->location = (yylsp[0]); (yyval.node) = (Node *)n; } #line 43311 "gram.c" /* yacc.c:1652 */ break; case 2010: #line 13515 "gram.y" /* yacc.c:1652 */ { /* * Because the select_with_parens nonterminal is designed * to "eat" as many levels of parens as possible, the * '(' a_expr ')' opt_indirection production above will * fail to match a sub-SELECT with indirection decoration; * the sub-SELECT won't be regarded as an a_expr as long * as there are parens around it. To support applying * subscripting or field selection to a sub-SELECT result, * we need this redundant-looking production. */ SubLink *n = makeNode(SubLink); A_Indirection *a = makeNode(A_Indirection); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[-1].node); n->location = (yylsp[-1]); a->arg = (Node *)n; a->indirection = check_indirection((yyvsp[0].list), yyscanner); (yyval.node) = (Node *)a; } #line 43339 "gram.c" /* yacc.c:1652 */ break; case 2011: #line 13539 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = EXISTS_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[0].node); n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 43354 "gram.c" /* yacc.c:1652 */ break; case 2012: #line 13550 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subLinkType = ARRAY_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[0].node); n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 43369 "gram.c" /* yacc.c:1652 */ break; case 2013: #line 13561 "gram.y" /* yacc.c:1652 */ { A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[0].node)); /* point outermost A_ArrayExpr to the ARRAY keyword */ n->location = (yylsp[-1]); (yyval.node) = (Node *)n; } #line 43380 "gram.c" /* yacc.c:1652 */ break; case 2014: #line 13568 "gram.y" /* yacc.c:1652 */ { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[0].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->row_format = COERCE_EXPLICIT_CALL; /* abuse */ r->location = (yylsp[0]); (yyval.node) = (Node *)r; } #line 43394 "gram.c" /* yacc.c:1652 */ break; case 2015: #line 13578 "gram.y" /* yacc.c:1652 */ { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[0].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->row_format = COERCE_IMPLICIT_CAST; /* abuse */ r->location = (yylsp[0]); (yyval.node) = (Node *)r; } #line 43408 "gram.c" /* yacc.c:1652 */ break; case 2016: #line 13588 "gram.y" /* yacc.c:1652 */ { GroupingFunc *g = makeNode(GroupingFunc); g->args = (yyvsp[-1].list); g->location = (yylsp[-3]); (yyval.node) = (Node *)g; } #line 43419 "gram.c" /* yacc.c:1652 */ break; case 2017: #line 13597 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL, (yylsp[-2])); } #line 43427 "gram.c" /* yacc.c:1652 */ break; case 2018: #line 13601 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list), (yylsp[-4])); n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 43437 "gram.c" /* yacc.c:1652 */ break; case 2019: #line 13607 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)), (yylsp[-5])); n->func_variadic = true; n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 43448 "gram.c" /* yacc.c:1652 */ break; case 2020: #line 13614 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)), (yylsp[-7])); n->func_variadic = true; n->agg_order = (yyvsp[-1].list); (yyval.node) = (Node *)n; } #line 43459 "gram.c" /* yacc.c:1652 */ break; case 2021: #line 13621 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); n->agg_order = (yyvsp[-1].list); /* Ideally we'd mark the FuncCall node to indicate * "must be an aggregate", but there's no provision * for that in FuncCall at the moment. */ (yyval.node) = (Node *)n; } #line 43473 "gram.c" /* yacc.c:1652 */ break; case 2022: #line 13631 "gram.y" /* yacc.c:1652 */ { FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list), (yylsp[-5])); n->agg_order = (yyvsp[-1].list); n->agg_distinct = true; (yyval.node) = (Node *)n; } #line 43484 "gram.c" /* yacc.c:1652 */ break; case 2023: #line 13638 "gram.y" /* yacc.c:1652 */ { /* * We consider AGGREGATE(*) to invoke a parameterless * aggregate. This does the right thing for COUNT(*), * and there are no other aggregates in SQL that accept * '*' as parameter. * * The FuncCall node is also marked agg_star = true, * so that later processing can detect what the argument * really was. */ FuncCall *n = makeFuncCall((yyvsp[-3].list), NIL, (yylsp[-3])); n->agg_star = true; (yyval.node) = (Node *)n; } #line 43504 "gram.c" /* yacc.c:1652 */ break; case 2024: #line 13666 "gram.y" /* yacc.c:1652 */ { FuncCall *n = (FuncCall *) (yyvsp[-3].node); /* * The order clause for WITHIN GROUP and the one for * plain-aggregate ORDER BY share a field, so we have to * check here that at most one is present. We also check * for DISTINCT and VARIADIC here to give a better error * location. Other consistency checks are deferred to * parse analysis. */ if ((yyvsp[-2].list) != NIL) { if (n->agg_order != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), parser_errposition((yylsp[-2])))); if (n->agg_distinct) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use DISTINCT with WITHIN GROUP"), parser_errposition((yylsp[-2])))); if (n->func_variadic) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use VARIADIC with WITHIN GROUP"), parser_errposition((yylsp[-2])))); n->agg_order = (yyvsp[-2].list); n->agg_within_group = true; } n->agg_filter = (yyvsp[-1].node); n->over = (yyvsp[0].windef); (yyval.node) = (Node *) n; } #line 43543 "gram.c" /* yacc.c:1652 */ break; case 2025: #line 13701 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43549 "gram.c" /* yacc.c:1652 */ break; case 2026: #line 13711 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43555 "gram.c" /* yacc.c:1652 */ break; case 2027: #line 13712 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43561 "gram.c" /* yacc.c:1652 */ break; case 2028: #line 13720 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[-1].node)), (yylsp[-4])); } #line 43571 "gram.c" /* yacc.c:1652 */ break; case 2029: #line 13726 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0])); } #line 43579 "gram.c" /* yacc.c:1652 */ break; case 2030: #line 13730 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0])); } #line 43587 "gram.c" /* yacc.c:1652 */ break; case 2031: #line 13734 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43595 "gram.c" /* yacc.c:1652 */ break; case 2032: #line 13738 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0])); } #line 43603 "gram.c" /* yacc.c:1652 */ break; case 2033: #line 13742 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43611 "gram.c" /* yacc.c:1652 */ break; case 2034: #line 13746 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0])); } #line 43619 "gram.c" /* yacc.c:1652 */ break; case 2035: #line 13750 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43627 "gram.c" /* yacc.c:1652 */ break; case 2036: #line 13754 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0])); } #line 43635 "gram.c" /* yacc.c:1652 */ break; case 2037: #line 13758 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3])); } #line 43643 "gram.c" /* yacc.c:1652 */ break; case 2038: #line 13762 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0])); } #line 43651 "gram.c" /* yacc.c:1652 */ break; case 2039: #line 13766 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0])); } #line 43659 "gram.c" /* yacc.c:1652 */ break; case 2040: #line 13770 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0])); } #line 43667 "gram.c" /* yacc.c:1652 */ break; case 2041: #line 13774 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0])); } #line 43675 "gram.c" /* yacc.c:1652 */ break; case 2042: #line 13778 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0])); } #line 43683 "gram.c" /* yacc.c:1652 */ break; case 2043: #line 13782 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0])); } #line 43691 "gram.c" /* yacc.c:1652 */ break; case 2044: #line 13786 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); } #line 43697 "gram.c" /* yacc.c:1652 */ break; case 2045: #line 13788 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[-1].list), (yylsp[-3])); } #line 43705 "gram.c" /* yacc.c:1652 */ break; case 2046: #line 13792 "gram.y" /* yacc.c:1652 */ { /* overlay(A PLACING B FROM C FOR D) is converted to * overlay(A, B, C, D) * overlay(A PLACING B FROM C) is converted to * overlay(A, B, C) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[-1].list), (yylsp[-3])); } #line 43718 "gram.c" /* yacc.c:1652 */ break; case 2047: #line 13801 "gram.y" /* yacc.c:1652 */ { /* position(A in B) is converted to position(B, A) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), (yyvsp[-1].list), (yylsp[-3])); } #line 43727 "gram.c" /* yacc.c:1652 */ break; case 2048: #line 13806 "gram.y" /* yacc.c:1652 */ { /* substring(A from B for C) is converted to * substring(A, B, C) - thomas 2000-11-28 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"), (yyvsp[-1].list), (yylsp[-3])); } #line 43738 "gram.c" /* yacc.c:1652 */ break; case 2049: #line 13813 "gram.y" /* yacc.c:1652 */ { /* TREAT(expr AS target) converts expr of a particular type to target, * which is defined to be a subtype of the original expression. * In SQL99, this is intended for use with structured UDTs, * but let's make this a generally useful form allowing stronger * coercions than are handled by implicit casting. * * Convert SystemTypeName() to SystemFuncName() even though * at the moment they result in the same thing. */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName(((Value *)llast((yyvsp[-1].typnam)->names))->val.str), list_make1((yyvsp[-3].node)), (yylsp[-5])); } #line 43757 "gram.c" /* yacc.c:1652 */ break; case 2050: #line 13828 "gram.y" /* yacc.c:1652 */ { /* various trim expressions are defined in SQL * - thomas 1997-07-19 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-4])); } #line 43768 "gram.c" /* yacc.c:1652 */ break; case 2051: #line 13835 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[-1].list), (yylsp[-4])); } #line 43776 "gram.c" /* yacc.c:1652 */ break; case 2052: #line 13839 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[-1].list), (yylsp[-4])); } #line 43784 "gram.c" /* yacc.c:1652 */ break; case 2053: #line 13843 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[-1].list), (yylsp[-3])); } #line 43792 "gram.c" /* yacc.c:1652 */ break; case 2054: #line 13847 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5])); } #line 43800 "gram.c" /* yacc.c:1652 */ break; case 2055: #line 13851 "gram.y" /* yacc.c:1652 */ { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[-1].list); c->location = (yylsp[-3]); (yyval.node) = (Node *)c; } #line 43811 "gram.c" /* yacc.c:1652 */ break; case 2056: #line 13858 "gram.y" /* yacc.c:1652 */ { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[-1].list); v->op = IS_GREATEST; v->location = (yylsp[-3]); (yyval.node) = (Node *)v; } #line 43823 "gram.c" /* yacc.c:1652 */ break; case 2057: #line 13866 "gram.y" /* yacc.c:1652 */ { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[-1].list); v->op = IS_LEAST; v->location = (yylsp[-3]); (yyval.node) = (Node *)v; } #line 43835 "gram.c" /* yacc.c:1652 */ break; case 2058: #line 13874 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3])); } #line 43843 "gram.c" /* yacc.c:1652 */ break; case 2059: #line 13878 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4])); } #line 43851 "gram.c" /* yacc.c:1652 */ break; case 2060: #line 13882 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6])); } #line 43859 "gram.c" /* yacc.c:1652 */ break; case 2061: #line 13886 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6])); } #line 43867 "gram.c" /* yacc.c:1652 */ break; case 2062: #line 13890 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8])); } #line 43875 "gram.c" /* yacc.c:1652 */ break; case 2063: #line 13894 "gram.y" /* yacc.c:1652 */ { /* xmlexists(A PASSING [BY REF] B [BY REF]) is * converted to xmlexists(A, B)*/ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"), list_make2((yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-4])); } #line 43885 "gram.c" /* yacc.c:1652 */ break; case 2064: #line 13900 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3])); } #line 43893 "gram.c" /* yacc.c:1652 */ break; case 2065: #line 13904 "gram.y" /* yacc.c:1652 */ { XmlExpr *x = (XmlExpr *) makeXmlExpr(IS_XMLPARSE, NULL, NIL, list_make2((yyvsp[-2].node), makeBoolAConst((yyvsp[-1].boolean), -1)), (yylsp[-5])); x->xmloption = (yyvsp[-3].ival); (yyval.node) = (Node *)x; } #line 43906 "gram.c" /* yacc.c:1652 */ break; case 2066: #line 13913 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4])); } #line 43914 "gram.c" /* yacc.c:1652 */ break; case 2067: #line 13917 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6])); } #line 43922 "gram.c" /* yacc.c:1652 */ break; case 2068: #line 13921 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6])); } #line 43931 "gram.c" /* yacc.c:1652 */ break; case 2069: #line 13926 "gram.y" /* yacc.c:1652 */ { XmlSerialize *n = makeNode(XmlSerialize); n->xmloption = (yyvsp[-4].ival); n->expr = (yyvsp[-3].node); n->typeName = (yyvsp[-1].typnam); n->location = (yylsp[-6]); (yyval.node) = (Node *)n; } #line 43944 "gram.c" /* yacc.c:1652 */ break; case 2070: #line 13940 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 43950 "gram.c" /* yacc.c:1652 */ break; case 2071: #line 13942 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNullAConst(-1); } #line 43956 "gram.c" /* yacc.c:1652 */ break; case 2072: #line 13946 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); } #line 43962 "gram.c" /* yacc.c:1652 */ break; case 2073: #line 13948 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); } #line 43968 "gram.c" /* yacc.c:1652 */ break; case 2074: #line 13950 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); } #line 43974 "gram.c" /* yacc.c:1652 */ break; case 2075: #line 13952 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); } #line 43980 "gram.c" /* yacc.c:1652 */ break; case 2076: #line 13955 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 43986 "gram.c" /* yacc.c:1652 */ break; case 2077: #line 13958 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 43992 "gram.c" /* yacc.c:1652 */ break; case 2078: #line 13959 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 43998 "gram.c" /* yacc.c:1652 */ break; case 2079: #line 13963 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } #line 44010 "gram.c" /* yacc.c:1652 */ break; case 2080: #line 13971 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } #line 44022 "gram.c" /* yacc.c:1652 */ break; case 2081: #line 13980 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = XMLOPTION_DOCUMENT; } #line 44028 "gram.c" /* yacc.c:1652 */ break; case 2082: #line 13981 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = XMLOPTION_CONTENT; } #line 44034 "gram.c" /* yacc.c:1652 */ break; case 2083: #line 13984 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = true; } #line 44040 "gram.c" /* yacc.c:1652 */ break; case 2084: #line 13985 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 44046 "gram.c" /* yacc.c:1652 */ break; case 2085: #line 13986 "gram.y" /* yacc.c:1652 */ { (yyval.boolean) = false; } #line 44052 "gram.c" /* yacc.c:1652 */ break; case 2086: #line 13992 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44060 "gram.c" /* yacc.c:1652 */ break; case 2087: #line 13996 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 44068 "gram.c" /* yacc.c:1652 */ break; case 2088: #line 14000 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44076 "gram.c" /* yacc.c:1652 */ break; case 2089: #line 14004 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 44084 "gram.c" /* yacc.c:1652 */ break; case 2092: #line 14019 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44090 "gram.c" /* yacc.c:1652 */ break; case 2093: #line 14020 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44096 "gram.c" /* yacc.c:1652 */ break; case 2094: #line 14024 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[-1].node); } #line 44102 "gram.c" /* yacc.c:1652 */ break; case 2095: #line 14025 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 44108 "gram.c" /* yacc.c:1652 */ break; case 2096: #line 14033 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44114 "gram.c" /* yacc.c:1652 */ break; case 2097: #line 14034 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44120 "gram.c" /* yacc.c:1652 */ break; case 2098: #line 14038 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].windef)); } #line 44126 "gram.c" /* yacc.c:1652 */ break; case 2099: #line 14040 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); } #line 44132 "gram.c" /* yacc.c:1652 */ break; case 2100: #line 14045 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[0].windef); n->name = (yyvsp[-2].str); (yyval.windef) = n; } #line 44142 "gram.c" /* yacc.c:1652 */ break; case 2101: #line 14053 "gram.y" /* yacc.c:1652 */ { (yyval.windef) = (yyvsp[0].windef); } #line 44148 "gram.c" /* yacc.c:1652 */ break; case 2102: #line 14055 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->name = (yyvsp[0].str); n->refname = NULL; n->partitionClause = NIL; n->orderClause = NIL; n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; n->location = (yylsp[0]); (yyval.windef) = n; } #line 44165 "gram.c" /* yacc.c:1652 */ break; case 2103: #line 14068 "gram.y" /* yacc.c:1652 */ { (yyval.windef) = NULL; } #line 44171 "gram.c" /* yacc.c:1652 */ break; case 2104: #line 14073 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->name = NULL; n->refname = (yyvsp[-4].str); n->partitionClause = (yyvsp[-3].list); n->orderClause = (yyvsp[-2].list); /* copy relevant fields of opt_frame_clause */ n->frameOptions = (yyvsp[-1].windef)->frameOptions; n->startOffset = (yyvsp[-1].windef)->startOffset; n->endOffset = (yyvsp[-1].windef)->endOffset; n->location = (yylsp[-5]); (yyval.windef) = n; } #line 44189 "gram.c" /* yacc.c:1652 */ break; case 2105: #line 14098 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44195 "gram.c" /* yacc.c:1652 */ break; case 2106: #line 14099 "gram.y" /* yacc.c:1652 */ { (yyval.str) = NULL; } #line 44201 "gram.c" /* yacc.c:1652 */ break; case 2107: #line 14102 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44207 "gram.c" /* yacc.c:1652 */ break; case 2108: #line 14103 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44213 "gram.c" /* yacc.c:1652 */ break; case 2109: #line 14112 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } #line 44224 "gram.c" /* yacc.c:1652 */ break; case 2110: #line 14119 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } #line 44235 "gram.c" /* yacc.c:1652 */ break; case 2111: #line 14126 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[-1].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; n->frameOptions |= (yyvsp[0].ival); (yyval.windef) = n; } #line 44246 "gram.c" /* yacc.c:1652 */ break; case 2112: #line 14133 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 44258 "gram.c" /* yacc.c:1652 */ break; case 2113: #line 14143 "gram.y" /* yacc.c:1652 */ { WindowDef *n = (yyvsp[0].windef); /* reject invalid cases */ if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[0])))); if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot end with current row"), parser_errposition((yylsp[0])))); n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; (yyval.windef) = n; } #line 44279 "gram.c" /* yacc.c:1652 */ break; case 2114: #line 14160 "gram.y" /* yacc.c:1652 */ { WindowDef *n1 = (yyvsp[-2].windef); WindowDef *n2 = (yyvsp[0].windef); /* form merged options */ int frameOptions = n1->frameOptions; /* shift converts START_ options to END_ options */ frameOptions |= n2->frameOptions << 1; frameOptions |= FRAMEOPTION_BETWEEN; /* reject invalid cases */ if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[-2])))); if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame end cannot be UNBOUNDED PRECEDING"), parser_errposition((yylsp[0])))); if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING)) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from current row cannot have preceding rows"), parser_errposition((yylsp[0])))); if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) && (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING | FRAMEOPTION_END_CURRENT_ROW))) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot have preceding rows"), parser_errposition((yylsp[0])))); n1->frameOptions = frameOptions; n1->endOffset = n2->startOffset; (yyval.windef) = n1; } #line 44320 "gram.c" /* yacc.c:1652 */ break; case 2115: #line 14205 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 44332 "gram.c" /* yacc.c:1652 */ break; case 2116: #line 14213 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 44344 "gram.c" /* yacc.c:1652 */ break; case 2117: #line 14221 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; } #line 44356 "gram.c" /* yacc.c:1652 */ break; case 2118: #line 14229 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING; n->startOffset = (yyvsp[-1].node); n->endOffset = NULL; (yyval.windef) = n; } #line 44368 "gram.c" /* yacc.c:1652 */ break; case 2119: #line 14237 "gram.y" /* yacc.c:1652 */ { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING; n->startOffset = (yyvsp[-1].node); n->endOffset = NULL; (yyval.windef) = n; } #line 44380 "gram.c" /* yacc.c:1652 */ break; case 2120: #line 14247 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; } #line 44386 "gram.c" /* yacc.c:1652 */ break; case 2121: #line 14248 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; } #line 44392 "gram.c" /* yacc.c:1652 */ break; case 2122: #line 14249 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; } #line 44398 "gram.c" /* yacc.c:1652 */ break; case 2123: #line 14250 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 44404 "gram.c" /* yacc.c:1652 */ break; case 2124: #line 14251 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = 0; } #line 44410 "gram.c" /* yacc.c:1652 */ break; case 2125: #line 14265 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44416 "gram.c" /* yacc.c:1652 */ break; case 2126: #line 14266 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44422 "gram.c" /* yacc.c:1652 */ break; case 2127: #line 14267 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } #line 44428 "gram.c" /* yacc.c:1652 */ break; case 2128: #line 14270 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44434 "gram.c" /* yacc.c:1652 */ break; case 2129: #line 14271 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44440 "gram.c" /* yacc.c:1652 */ break; case 2130: #line 14274 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); } #line 44446 "gram.c" /* yacc.c:1652 */ break; case 2131: #line 14277 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ANY_SUBLINK; } #line 44452 "gram.c" /* yacc.c:1652 */ break; case 2132: #line 14278 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ANY_SUBLINK; } #line 44458 "gram.c" /* yacc.c:1652 */ break; case 2133: #line 14279 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = ALL_SUBLINK; } #line 44464 "gram.c" /* yacc.c:1652 */ break; case 2134: #line 14282 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44470 "gram.c" /* yacc.c:1652 */ break; case 2135: #line 14283 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44476 "gram.c" /* yacc.c:1652 */ break; case 2136: #line 14286 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "+"; } #line 44482 "gram.c" /* yacc.c:1652 */ break; case 2137: #line 14287 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "-"; } #line 44488 "gram.c" /* yacc.c:1652 */ break; case 2138: #line 14288 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "*"; } #line 44494 "gram.c" /* yacc.c:1652 */ break; case 2139: #line 14289 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "/"; } #line 44500 "gram.c" /* yacc.c:1652 */ break; case 2140: #line 14290 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "%"; } #line 44506 "gram.c" /* yacc.c:1652 */ break; case 2141: #line 14291 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "^"; } #line 44512 "gram.c" /* yacc.c:1652 */ break; case 2142: #line 14292 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "<"; } #line 44518 "gram.c" /* yacc.c:1652 */ break; case 2143: #line 14293 "gram.y" /* yacc.c:1652 */ { (yyval.str) = ">"; } #line 44524 "gram.c" /* yacc.c:1652 */ break; case 2144: #line 14294 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "="; } #line 44530 "gram.c" /* yacc.c:1652 */ break; case 2145: #line 14295 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "<="; } #line 44536 "gram.c" /* yacc.c:1652 */ break; case 2146: #line 14296 "gram.y" /* yacc.c:1652 */ { (yyval.str) = ">="; } #line 44542 "gram.c" /* yacc.c:1652 */ break; case 2147: #line 14297 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "<>"; } #line 44548 "gram.c" /* yacc.c:1652 */ break; case 2148: #line 14301 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44554 "gram.c" /* yacc.c:1652 */ break; case 2149: #line 14303 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44560 "gram.c" /* yacc.c:1652 */ break; case 2150: #line 14308 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44566 "gram.c" /* yacc.c:1652 */ break; case 2151: #line 14310 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44572 "gram.c" /* yacc.c:1652 */ break; case 2152: #line 14315 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 44578 "gram.c" /* yacc.c:1652 */ break; case 2153: #line 14317 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[-1].list); } #line 44584 "gram.c" /* yacc.c:1652 */ break; case 2154: #line 14319 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("~~")); } #line 44590 "gram.c" /* yacc.c:1652 */ break; case 2155: #line 14321 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("!~~")); } #line 44596 "gram.c" /* yacc.c:1652 */ break; case 2156: #line 14323 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("~~*")); } #line 44602 "gram.c" /* yacc.c:1652 */ break; case 2157: #line 14325 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString("!~~*")); } #line 44608 "gram.c" /* yacc.c:1652 */ break; case 2158: #line 14337 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44616 "gram.c" /* yacc.c:1652 */ break; case 2159: #line 14341 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 44624 "gram.c" /* yacc.c:1652 */ break; case 2160: #line 14348 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44632 "gram.c" /* yacc.c:1652 */ break; case 2161: #line 14352 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 44640 "gram.c" /* yacc.c:1652 */ break; case 2162: #line 14358 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44648 "gram.c" /* yacc.c:1652 */ break; case 2163: #line 14362 "gram.y" /* yacc.c:1652 */ { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[-2].str); na->arg = (Expr *) (yyvsp[0].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[-2]); (yyval.node) = (Node *) na; } #line 44661 "gram.c" /* yacc.c:1652 */ break; case 2164: #line 14371 "gram.y" /* yacc.c:1652 */ { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[-2].str); na->arg = (Expr *) (yyvsp[0].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[-2]); (yyval.node) = (Node *) na; } #line 44674 "gram.c" /* yacc.c:1652 */ break; case 2165: #line 14381 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].typnam)); } #line 44680 "gram.c" /* yacc.c:1652 */ break; case 2166: #line 14382 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); } #line 44686 "gram.c" /* yacc.c:1652 */ break; case 2167: #line 14386 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); } #line 44694 "gram.c" /* yacc.c:1652 */ break; case 2168: #line 14390 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2])); } #line 44702 "gram.c" /* yacc.c:1652 */ break; case 2169: #line 14394 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1])); } #line 44710 "gram.c" /* yacc.c:1652 */ break; case 2170: #line 14399 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44716 "gram.c" /* yacc.c:1652 */ break; case 2171: #line 14400 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); } #line 44722 "gram.c" /* yacc.c:1652 */ break; case 2172: #line 14406 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node)); } #line 44730 "gram.c" /* yacc.c:1652 */ break; case 2173: #line 14409 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44736 "gram.c" /* yacc.c:1652 */ break; case 2174: #line 14416 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44742 "gram.c" /* yacc.c:1652 */ break; case 2175: #line 14417 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "year"; } #line 44748 "gram.c" /* yacc.c:1652 */ break; case 2176: #line 14418 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "month"; } #line 44754 "gram.c" /* yacc.c:1652 */ break; case 2177: #line 14419 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "day"; } #line 44760 "gram.c" /* yacc.c:1652 */ break; case 2178: #line 14420 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "hour"; } #line 44766 "gram.c" /* yacc.c:1652 */ break; case 2179: #line 14421 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "minute"; } #line 44772 "gram.c" /* yacc.c:1652 */ break; case 2180: #line 14422 "gram.y" /* yacc.c:1652 */ { (yyval.str) = "second"; } #line 44778 "gram.c" /* yacc.c:1652 */ break; case 2181: #line 14423 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 44784 "gram.c" /* yacc.c:1652 */ break; case 2182: #line 14434 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make4((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } #line 44792 "gram.c" /* yacc.c:1652 */ break; case 2183: #line 14438 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } #line 44800 "gram.c" /* yacc.c:1652 */ break; case 2184: #line 14445 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44806 "gram.c" /* yacc.c:1652 */ break; case 2185: #line 14451 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); } #line 44812 "gram.c" /* yacc.c:1652 */ break; case 2186: #line 14452 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44818 "gram.c" /* yacc.c:1652 */ break; case 2187: #line 14469 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); } #line 44826 "gram.c" /* yacc.c:1652 */ break; case 2188: #line 14473 "gram.y" /* yacc.c:1652 */ { /* not legal per SQL99, but might as well allow it */ (yyval.list) = list_make3((yyvsp[-2].node), (yyvsp[0].node), (yyvsp[-1].node)); } #line 44835 "gram.c" /* yacc.c:1652 */ break; case 2189: #line 14478 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].node)); } #line 44843 "gram.c" /* yacc.c:1652 */ break; case 2190: #line 14482 "gram.y" /* yacc.c:1652 */ { /* * Since there are no cases where this syntax allows * a textual FOR value, we forcibly cast the argument * to int4. The possible matches in pg_proc are * substring(text,int4) and substring(text,text), * and we don't want the parser to choose the latter, * which it is likely to do if the second argument * is unknown or doesn't have an implicit cast to int4. */ (yyval.list) = list_make3((yyvsp[-1].node), makeIntConst(1, -1), makeTypeCast((yyvsp[0].node), SystemTypeName("int4"), -1)); } #line 44862 "gram.c" /* yacc.c:1652 */ break; case 2191: #line 14497 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44870 "gram.c" /* yacc.c:1652 */ break; case 2192: #line 14501 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 44876 "gram.c" /* yacc.c:1652 */ break; case 2193: #line 14505 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44882 "gram.c" /* yacc.c:1652 */ break; case 2194: #line 14508 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44888 "gram.c" /* yacc.c:1652 */ break; case 2195: #line 14511 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); } #line 44894 "gram.c" /* yacc.c:1652 */ break; case 2196: #line 14512 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44900 "gram.c" /* yacc.c:1652 */ break; case 2197: #line 14513 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 44906 "gram.c" /* yacc.c:1652 */ break; case 2198: #line 14517 "gram.y" /* yacc.c:1652 */ { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[0].node); /* other fields will be filled later */ (yyval.node) = (Node *)n; } #line 44917 "gram.c" /* yacc.c:1652 */ break; case 2199: #line 14523 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *)(yyvsp[-1].list); } #line 44923 "gram.c" /* yacc.c:1652 */ break; case 2200: #line 14534 "gram.y" /* yacc.c:1652 */ { CaseExpr *c = makeNode(CaseExpr); c->casetype = InvalidOid; /* not analyzed yet */ c->arg = (Expr *) (yyvsp[-3].node); c->args = (yyvsp[-2].list); c->defresult = (Expr *) (yyvsp[-1].node); c->location = (yylsp[-4]); (yyval.node) = (Node *)c; } #line 44937 "gram.c" /* yacc.c:1652 */ break; case 2201: #line 14547 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 44943 "gram.c" /* yacc.c:1652 */ break; case 2202: #line 14548 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 44949 "gram.c" /* yacc.c:1652 */ break; case 2203: #line 14553 "gram.y" /* yacc.c:1652 */ { CaseWhen *w = makeNode(CaseWhen); w->expr = (Expr *) (yyvsp[-2].node); w->result = (Expr *) (yyvsp[0].node); w->location = (yylsp[-3]); (yyval.node) = (Node *)w; } #line 44961 "gram.c" /* yacc.c:1652 */ break; case 2204: #line 14563 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44967 "gram.c" /* yacc.c:1652 */ break; case 2205: #line 14564 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 44973 "gram.c" /* yacc.c:1652 */ break; case 2206: #line 14567 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 44979 "gram.c" /* yacc.c:1652 */ break; case 2207: #line 14568 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 44985 "gram.c" /* yacc.c:1652 */ break; case 2208: #line 14572 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner); } #line 44993 "gram.c" /* yacc.c:1652 */ break; case 2209: #line 14576 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner); } #line 45001 "gram.c" /* yacc.c:1652 */ break; case 2210: #line 14583 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeString((yyvsp[0].str)); } #line 45009 "gram.c" /* yacc.c:1652 */ break; case 2211: #line 14587 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (Node *) makeNode(A_Star); } #line 45017 "gram.c" /* yacc.c:1652 */ break; case 2212: #line 14591 "gram.y" /* yacc.c:1652 */ { A_Indices *ai = makeNode(A_Indices); ai->is_slice = false; ai->lidx = NULL; ai->uidx = (yyvsp[-1].node); (yyval.node) = (Node *) ai; } #line 45029 "gram.c" /* yacc.c:1652 */ break; case 2213: #line 14599 "gram.y" /* yacc.c:1652 */ { A_Indices *ai = makeNode(A_Indices); ai->is_slice = true; ai->lidx = (yyvsp[-3].node); ai->uidx = (yyvsp[-1].node); (yyval.node) = (Node *) ai; } #line 45041 "gram.c" /* yacc.c:1652 */ break; case 2214: #line 14609 "gram.y" /* yacc.c:1652 */ { (yyval.node) = (yyvsp[0].node); } #line 45047 "gram.c" /* yacc.c:1652 */ break; case 2215: #line 14610 "gram.y" /* yacc.c:1652 */ { (yyval.node) = NULL; } #line 45053 "gram.c" /* yacc.c:1652 */ break; case 2216: #line 14614 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].node)); } #line 45059 "gram.c" /* yacc.c:1652 */ break; case 2217: #line 14615 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 45065 "gram.c" /* yacc.c:1652 */ break; case 2218: #line 14619 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 45071 "gram.c" /* yacc.c:1652 */ break; case 2219: #line 14620 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); } #line 45077 "gram.c" /* yacc.c:1652 */ break; case 2222: #line 14634 "gram.y" /* yacc.c:1652 */ { (yyval.list) = (yyvsp[0].list); } #line 45083 "gram.c" /* yacc.c:1652 */ break; case 2223: #line 14635 "gram.y" /* yacc.c:1652 */ { (yyval.list) = NIL; } #line 45089 "gram.c" /* yacc.c:1652 */ break; case 2224: #line 14639 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].target)); } #line 45095 "gram.c" /* yacc.c:1652 */ break; case 2225: #line 14640 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); } #line 45101 "gram.c" /* yacc.c:1652 */ break; case 2226: #line 14644 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[-2].node); (yyval.target)->location = (yylsp[-2]); } #line 45113 "gram.c" /* yacc.c:1652 */ break; case 2227: #line 14660 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[0].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[-1].node); (yyval.target)->location = (yylsp[-1]); } #line 45125 "gram.c" /* yacc.c:1652 */ break; case 2228: #line 14668 "gram.y" /* yacc.c:1652 */ { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)(yyvsp[0].node); (yyval.target)->location = (yylsp[0]); } #line 45137 "gram.c" /* yacc.c:1652 */ break; case 2229: #line 14676 "gram.y" /* yacc.c:1652 */ { ColumnRef *n = makeNode(ColumnRef); n->fields = list_make1(makeNode(A_Star)); n->location = (yylsp[0]); (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *)n; (yyval.target)->location = (yylsp[0]); } #line 45153 "gram.c" /* yacc.c:1652 */ break; case 2230: #line 14697 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].range)); } #line 45159 "gram.c" /* yacc.c:1652 */ break; case 2231: #line 14698 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); } #line 45165 "gram.c" /* yacc.c:1652 */ break; case 2232: #line 14710 "gram.y" /* yacc.c:1652 */ { (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0])); } #line 45173 "gram.c" /* yacc.c:1652 */ break; case 2233: #line 14714 "gram.y" /* yacc.c:1652 */ { check_qualified_name((yyvsp[0].list), yyscanner); (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[-1])); switch (list_length((yyvsp[0].list))) { case 1: (yyval.range)->catalogname = NULL; (yyval.range)->schemaname = (yyvsp[-1].str); (yyval.range)->relname = strVal(linitial((yyvsp[0].list))); break; case 2: (yyval.range)->catalogname = (yyvsp[-1].str); (yyval.range)->schemaname = strVal(linitial((yyvsp[0].list))); (yyval.range)->relname = strVal(lsecond((yyvsp[0].list))); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)))), parser_errposition((yylsp[-1])))); break; } } #line 45202 "gram.c" /* yacc.c:1652 */ break; case 2234: #line 14741 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 45208 "gram.c" /* yacc.c:1652 */ break; case 2235: #line 14743 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); } #line 45214 "gram.c" /* yacc.c:1652 */ break; case 2236: #line 14747 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45220 "gram.c" /* yacc.c:1652 */ break; case 2237: #line 14750 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45226 "gram.c" /* yacc.c:1652 */ break; case 2238: #line 14753 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45232 "gram.c" /* yacc.c:1652 */ break; case 2239: #line 14755 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45238 "gram.c" /* yacc.c:1652 */ break; case 2240: #line 14757 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45244 "gram.c" /* yacc.c:1652 */ break; case 2241: #line 14759 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45250 "gram.c" /* yacc.c:1652 */ break; case 2242: #line 14770 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1(makeString((yyvsp[0].str))); } #line 45256 "gram.c" /* yacc.c:1652 */ break; case 2243: #line 14772 "gram.y" /* yacc.c:1652 */ { (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)), yyscanner); } #line 45265 "gram.c" /* yacc.c:1652 */ break; case 2244: #line 14783 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0])); } #line 45273 "gram.c" /* yacc.c:1652 */ break; case 2245: #line 14787 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0])); } #line 45281 "gram.c" /* yacc.c:1652 */ break; case 2246: #line 14791 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); } #line 45289 "gram.c" /* yacc.c:1652 */ break; case 2247: #line 14795 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } #line 45297 "gram.c" /* yacc.c:1652 */ break; case 2248: #line 14799 "gram.y" /* yacc.c:1652 */ { /* This is a bit constant per SQL99: * Without Feature F511, "BIT data type", * a shall not be a * or a . */ (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0])); } #line 45310 "gram.c" /* yacc.c:1652 */ break; case 2249: #line 14808 "gram.y" /* yacc.c:1652 */ { /* generic type 'literal' syntax */ TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list)); t->location = (yylsp[-1]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 45321 "gram.c" /* yacc.c:1652 */ break; case 2250: #line 14815 "gram.y" /* yacc.c:1652 */ { /* generic syntax with a type modifier */ TypeName *t = makeTypeNameFromNameList((yyvsp[-5].list)); ListCell *lc; /* * We must use func_arg_list and opt_sort_clause in the * production to avoid reduce/reduce conflicts, but we * don't actually wish to allow NamedArgExpr in this * context, nor ORDER BY. */ foreach(lc, (yyvsp[-3].list)) { NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); if (IsA(arg, NamedArgExpr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have parameter name"), parser_errposition(arg->location))); } if ((yyvsp[-2].list) != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have ORDER BY"), parser_errposition((yylsp[-2])))); t->typmods = (yyvsp[-3].list); t->location = (yylsp[-5]); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 45357 "gram.c" /* yacc.c:1652 */ break; case 2251: #line 14847 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam)); } #line 45365 "gram.c" /* yacc.c:1652 */ break; case 2252: #line 14851 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-2].typnam); t->typmods = (yyvsp[0].list); (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t); } #line 45375 "gram.c" /* yacc.c:1652 */ break; case 2253: #line 14857 "gram.y" /* yacc.c:1652 */ { TypeName *t = (yyvsp[-4].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[-2].ival), (yylsp[-2]))); (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t); } #line 45386 "gram.c" /* yacc.c:1652 */ break; case 2254: #line 14864 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeBoolAConst(true, (yylsp[0])); } #line 45394 "gram.c" /* yacc.c:1652 */ break; case 2255: #line 14868 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeBoolAConst(false, (yylsp[0])); } #line 45402 "gram.c" /* yacc.c:1652 */ break; case 2256: #line 14872 "gram.y" /* yacc.c:1652 */ { (yyval.node) = makeNullAConst((yylsp[0])); } #line 45410 "gram.c" /* yacc.c:1652 */ break; case 2257: #line 14877 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 45416 "gram.c" /* yacc.c:1652 */ break; case 2258: #line 14878 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45422 "gram.c" /* yacc.c:1652 */ break; case 2259: #line 14880 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = (yyvsp[0].ival); } #line 45428 "gram.c" /* yacc.c:1652 */ break; case 2260: #line 14881 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = + (yyvsp[0].ival); } #line 45434 "gram.c" /* yacc.c:1652 */ break; case 2261: #line 14882 "gram.y" /* yacc.c:1652 */ { (yyval.ival) = - (yyvsp[0].ival); } #line 45440 "gram.c" /* yacc.c:1652 */ break; case 2262: #line 14887 "gram.y" /* yacc.c:1652 */ { RoleSpec *spc = (RoleSpec *) (yyvsp[0].rolespec); switch (spc->roletype) { case ROLESPEC_CSTRING: (yyval.str) = spc->rolename; break; case ROLESPEC_PUBLIC: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("role name \"%s\" is reserved", "public"), parser_errposition((yylsp[0])))); break; case ROLESPEC_SESSION_USER: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "SESSION_USER"), parser_errposition((yylsp[0])))); break; case ROLESPEC_CURRENT_USER: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "CURRENT_USER"), parser_errposition((yylsp[0])))); break; } } #line 45475 "gram.c" /* yacc.c:1652 */ break; case 2263: #line 14920 "gram.y" /* yacc.c:1652 */ { /* * "public" and "none" are not keywords, but they must * be treated specially here. */ RoleSpec *n; if (strcmp((yyvsp[0].str), "public") == 0) { n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[0])); n->roletype = ROLESPEC_PUBLIC; } else if (strcmp((yyvsp[0].str), "none") == 0) { ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("role name \"%s\" is reserved", "none"), parser_errposition((yylsp[0])))); } else { n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[0])); n->rolename = pstrdup((yyvsp[0].str)); } (yyval.rolespec) = n; } #line 45506 "gram.c" /* yacc.c:1652 */ break; case 2264: #line 14947 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); } #line 45514 "gram.c" /* yacc.c:1652 */ break; case 2265: #line 14951 "gram.y" /* yacc.c:1652 */ { (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0])); } #line 45522 "gram.c" /* yacc.c:1652 */ break; case 2266: #line 14957 "gram.y" /* yacc.c:1652 */ { (yyval.list) = list_make1((yyvsp[0].rolespec)); } #line 45528 "gram.c" /* yacc.c:1652 */ break; case 2267: #line 14959 "gram.y" /* yacc.c:1652 */ { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); } #line 45534 "gram.c" /* yacc.c:1652 */ break; case 2268: #line 14975 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45540 "gram.c" /* yacc.c:1652 */ break; case 2269: #line 14976 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45546 "gram.c" /* yacc.c:1652 */ break; case 2270: #line 14977 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45552 "gram.c" /* yacc.c:1652 */ break; case 2271: #line 14982 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45558 "gram.c" /* yacc.c:1652 */ break; case 2272: #line 14983 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45564 "gram.c" /* yacc.c:1652 */ break; case 2273: #line 14984 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45570 "gram.c" /* yacc.c:1652 */ break; case 2274: #line 14989 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45576 "gram.c" /* yacc.c:1652 */ break; case 2275: #line 14990 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45582 "gram.c" /* yacc.c:1652 */ break; case 2276: #line 14991 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45588 "gram.c" /* yacc.c:1652 */ break; case 2277: #line 14992 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45594 "gram.c" /* yacc.c:1652 */ break; case 2278: #line 14998 "gram.y" /* yacc.c:1652 */ { (yyval.str) = (yyvsp[0].str); } #line 45600 "gram.c" /* yacc.c:1652 */ break; case 2279: #line 14999 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45606 "gram.c" /* yacc.c:1652 */ break; case 2280: #line 15000 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45612 "gram.c" /* yacc.c:1652 */ break; case 2281: #line 15001 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45618 "gram.c" /* yacc.c:1652 */ break; case 2282: #line 15002 "gram.y" /* yacc.c:1652 */ { (yyval.str) = pstrdup((yyvsp[0].keyword)); } #line 45624 "gram.c" /* yacc.c:1652 */ break; #line 45628 "gram.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; /* 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 ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (&yylloc, yyscanner, YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (&yylloc, yyscanner, yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } yyerror_range[1] = yylloc; 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, &yylloc, yyscanner); 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; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; /* Using YYLLOC is tempting, but would change the location of the lookahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, yyerror_range, 2); *++yylsp = yyloc; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, yyscanner, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif /*-----------------------------------------------------. | yyreturn -- parsing is finished, return the result. | `-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc, yyscanner); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif return yyresult; } #line 15501 "gram.y" /* yacc.c:1918 */ /* * The signature of this function is required by bison. However, we * ignore the passed yylloc and instead use the last token position * available from the scanner. */ static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg) { parser_yyerror(msg); } static RawStmt * makeRawStmt(Node *stmt, int stmt_location) { RawStmt *rs = makeNode(RawStmt); rs->stmt = stmt; rs->stmt_location = stmt_location; rs->stmt_len = 0; /* might get changed later */ return rs; } /* Adjust a RawStmt to reflect that it doesn't run to the end of the string */ static void updateRawStmtEnd(RawStmt *rs, int end_location) { /* * If we already set the length, don't change it. This is for situations * like "select foo ;; select bar" where the same statement will be last * in the string for more than one semicolon. */ if (rs->stmt_len > 0) return; /* OK, update length of RawStmt */ rs->stmt_len = end_location - rs->stmt_location; } static Node * makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner) { /* * Generate a ColumnRef node, with an A_Indirection node added if there * is any subscripting in the specified indirection list. However, * any field selection at the start of the indirection list must be * transposed into the "fields" part of the ColumnRef node. */ ColumnRef *c = makeNode(ColumnRef); int nfields = 0; ListCell *l; c->location = location; foreach(l, indirection) { if (IsA(lfirst(l), A_Indices)) { A_Indirection *i = makeNode(A_Indirection); if (nfields == 0) { /* easy case - all indirection goes to A_Indirection */ c->fields = list_make1(makeString(colname)); i->indirection = check_indirection(indirection, yyscanner); } else { /* got to split the list in two */ i->indirection = check_indirection(list_copy_tail(indirection, nfields), yyscanner); indirection = list_truncate(indirection, nfields); c->fields = lcons(makeString(colname), indirection); } i->arg = (Node *) c; return (Node *) i; } else if (IsA(lfirst(l), A_Star)) { /* We only allow '*' at the end of a ColumnRef */ if (lnext(l) != NULL) parser_yyerror("improper use of \"*\""); } nfields++; } /* No subscripting, so all indirection gets added to field list */ c->fields = lcons(makeString(colname), indirection); return (Node *) c; } static Node * makeTypeCast(Node *arg, TypeName *typename, int location) { TypeCast *n = makeNode(TypeCast); n->arg = arg; n->typeName = typename; n->location = location; return (Node *) n; } static Node * makeStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeStringConstCast(char *str, int location, TypeName *typename) { Node *s = makeStringConst(str, location); return makeTypeCast(s, typename, -1); } static Node * makeIntConst(int val, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; n->val.val.ival = val; n->location = location; return (Node *)n; } static Node * makeFloatConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Float; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeBitStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_BitString; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeNullAConst(int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Null; n->location = location; return (Node *)n; } static Node * makeAConst(Value *v, int location) { Node *n; switch (v->type) { case T_Float: n = makeFloatConst(v->val.str, location); break; case T_Integer: n = makeIntConst(v->val.ival, location); break; case T_String: default: n = makeStringConst(v->val.str, location); break; } return n; } /* makeBoolAConst() * Create an A_Const string node and put it inside a boolean cast. */ static Node * makeBoolAConst(bool state, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = (state ? "t" : "f"); n->location = location; return makeTypeCast((Node *)n, SystemTypeName("bool"), -1); } /* makeRoleSpec * Create a RoleSpec with the given type */ static RoleSpec * makeRoleSpec(RoleSpecType type, int location) { RoleSpec *spec = makeNode(RoleSpec); spec->roletype = type; spec->location = location; return spec; } /* check_qualified_name --- check the result of qualified_name production * * It's easiest to let the grammar production for qualified_name allow * subscripts and '*', which we then must reject here. */ static void check_qualified_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) parser_yyerror("syntax error"); } } /* check_func_name --- check the result of func_name production * * It's easiest to let the grammar production for func_name allow subscripts * and '*', which we then must reject here. */ static List * check_func_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) parser_yyerror("syntax error"); } return names; } /* check_indirection --- check the result of indirection production * * We only allow '*' at the end of the list, but it's hard to enforce that * in the grammar, so do it here. */ static List * check_indirection(List *indirection, core_yyscan_t yyscanner) { ListCell *l; foreach(l, indirection) { if (IsA(lfirst(l), A_Star)) { if (lnext(l) != NULL) parser_yyerror("improper use of \"*\""); } } return indirection; } /* extractArgTypes() * Given a list of FunctionParameter nodes, extract a list of just the * argument types (TypeNames) for input parameters only. This is what * is needed to look up an existing function, which is what is wanted by * the productions that use this call. */ static List * extractArgTypes(List *parameters) { List *result = NIL; ListCell *i; foreach(i, parameters) { FunctionParameter *p = (FunctionParameter *) lfirst(i); if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE) result = lappend(result, p->argType); } return result; } /* extractAggrArgTypes() * As above, but work from the output of the aggr_args production. */ static List * extractAggrArgTypes(List *aggrargs) { Assert(list_length(aggrargs) == 2); return extractArgTypes((List *) linitial(aggrargs)); } /* makeOrderedSetArgs() * Build the result of the aggr_args production (which see the comments for). * This handles only the case where both given lists are nonempty, so that * we have to deal with multiple VARIADIC arguments. */ static List * makeOrderedSetArgs(List *directargs, List *orderedargs, core_yyscan_t yyscanner) { FunctionParameter *lastd = (FunctionParameter *) llast(directargs); Value *ndirectargs; /* No restriction unless last direct arg is VARIADIC */ if (lastd->mode == FUNC_PARAM_VARIADIC) { FunctionParameter *firsto = (FunctionParameter *) linitial(orderedargs); /* * We ignore the names, though the aggr_arg production allows them; * it doesn't allow default values, so those need not be checked. */ if (list_length(orderedargs) != 1 || firsto->mode != FUNC_PARAM_VARIADIC || !equal(lastd->argType, firsto->argType)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"), parser_errposition(exprLocation((Node *) firsto)))); /* OK, drop the duplicate VARIADIC argument from the internal form */ orderedargs = NIL; } /* don't merge into the next line, as list_concat changes directargs */ ndirectargs = makeInteger(list_length(directargs)); return list_make2(list_concat(directargs, orderedargs), ndirectargs); } /* insertSelectOptions() * Insert ORDER BY, etc into an already-constructed SelectStmt. * * This routine is just to avoid duplicating code in SelectStmt productions. */ static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, Node *limitOffset, Node *limitCount, WithClause *withClause, core_yyscan_t yyscanner) { Assert(IsA(stmt, SelectStmt)); /* * Tests here are to reject constructs like * (SELECT foo ORDER BY bar) ORDER BY baz */ if (sortClause) { if (stmt->sortClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple ORDER BY clauses not allowed"), parser_errposition(exprLocation((Node *) sortClause)))); stmt->sortClause = sortClause; } /* We can handle multiple locking clauses, though */ stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause); if (limitOffset) { if (stmt->limitOffset) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple OFFSET clauses not allowed"), parser_errposition(exprLocation(limitOffset)))); stmt->limitOffset = limitOffset; } if (limitCount) { if (stmt->limitCount) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple LIMIT clauses not allowed"), parser_errposition(exprLocation(limitCount)))); stmt->limitCount = limitCount; } if (withClause) { if (stmt->withClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple WITH clauses not allowed"), parser_errposition(exprLocation((Node *) withClause)))); stmt->withClause = withClause; } } static Node * makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg) { SelectStmt *n = makeNode(SelectStmt); n->op = op; n->all = all; n->larg = (SelectStmt *) larg; n->rarg = (SelectStmt *) rarg; return (Node *) n; } /* SystemFuncName() * Build a properly-qualified reference to a built-in function. */ List * SystemFuncName(char *name) { return list_make2(makeString("pg_catalog"), makeString(name)); } /* SystemTypeName() * Build a properly-qualified reference to a built-in type. * * typmod is defaulted, but may be changed afterwards by caller. * Likewise for the location. */ TypeName * SystemTypeName(char *name) { return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"), makeString(name))); } /* doNegate() * Handle negation of a numeric constant. * * Formerly, we did this here because the optimizer couldn't cope with * indexquals that looked like "var = -4" --- it wants "var = const" * and a unary minus operator applied to a constant didn't qualify. * As of Postgres 7.0, that problem doesn't exist anymore because there * is a constant-subexpression simplifier in the optimizer. However, * there's still a good reason for doing this here, which is that we can * postpone committing to a particular internal representation for simple * negative constants. It's better to leave "-123.456" in string form * until we know what the desired type is. */ static Node * doNegate(Node *n, int location) { if (IsA(n, A_Const)) { A_Const *con = (A_Const *)n; /* report the constant's location as that of the '-' sign */ con->location = location; if (con->val.type == T_Integer) { con->val.val.ival = -con->val.val.ival; return n; } if (con->val.type == T_Float) { doNegateFloat(&con->val); return n; } } return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location); } static void doNegateFloat(Value *v) { char *oldval = v->val.str; Assert(IsA(v, Float)); if (*oldval == '+') oldval++; if (*oldval == '-') v->val.str = oldval+1; /* just strip the '-' */ else v->val.str = psprintf("-%s", oldval); } static Node * makeAndExpr(Node *lexpr, Node *rexpr, int location) { Node *lexp = lexpr; /* Look through AEXPR_PAREN nodes so they don't affect flattening */ while (IsA(lexp, A_Expr) && ((A_Expr *) lexp)->kind == AEXPR_PAREN) lexp = ((A_Expr *) lexp)->lexpr; /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */ if (IsA(lexp, BoolExpr)) { BoolExpr *blexpr = (BoolExpr *) lexp; if (blexpr->boolop == AND_EXPR) { blexpr->args = lappend(blexpr->args, rexpr); return (Node *) blexpr; } } return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location); } static Node * makeOrExpr(Node *lexpr, Node *rexpr, int location) { Node *lexp = lexpr; /* Look through AEXPR_PAREN nodes so they don't affect flattening */ while (IsA(lexp, A_Expr) && ((A_Expr *) lexp)->kind == AEXPR_PAREN) lexp = ((A_Expr *) lexp)->lexpr; /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */ if (IsA(lexp, BoolExpr)) { BoolExpr *blexpr = (BoolExpr *) lexp; if (blexpr->boolop == OR_EXPR) { blexpr->args = lappend(blexpr->args, rexpr); return (Node *) blexpr; } } return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location); } static Node * makeNotExpr(Node *expr, int location) { return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location); } static Node * makeAArrayExpr(List *elements, int location) { A_ArrayExpr *n = makeNode(A_ArrayExpr); n->elements = elements; n->location = location; return (Node *) n; } static Node * makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location) { SQLValueFunction *svf = makeNode(SQLValueFunction); svf->op = op; /* svf->type will be filled during parse analysis */ svf->typmod = typmod; svf->location = location; return (Node *) svf; } static Node * makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location) { XmlExpr *x = makeNode(XmlExpr); x->op = op; x->name = name; /* * named_args is a list of ResTarget; it'll be split apart into separate * expression and name lists in transformXmlExpr(). */ x->named_args = named_args; x->arg_names = NIL; x->args = args; /* xmloption, if relevant, must be filled in by caller */ /* type and typmod will be filled in during parse analysis */ x->type = InvalidOid; /* marks the node as not analyzed */ x->location = location; return (Node *) x; } /* * Merge the input and output parameters of a table function. */ static List * mergeTableFuncParameters(List *func_args, List *columns) { ListCell *lc; /* Explicit OUT and INOUT parameters shouldn't be used in this syntax */ foreach(lc, func_args) { FunctionParameter *p = (FunctionParameter *) lfirst(lc); if (p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"))); } return list_concat(func_args, columns); } /* * Determine return type of a TABLE function. A single result column * returns setof that column's type; otherwise return setof record. */ static TypeName * TableFuncTypeName(List *columns) { TypeName *result; if (list_length(columns) == 1) { FunctionParameter *p = (FunctionParameter *) linitial(columns); result = copyObject(p->argType); } else result = SystemTypeName("record"); result->setof = true; return result; } /* * Convert a list of (dotted) names to a RangeVar (like * makeRangeVarFromNameList, but with position support). The * "AnyName" refers to the any_name production in the grammar. */ static RangeVar * makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner) { RangeVar *r = makeNode(RangeVar); switch (list_length(names)) { case 1: r->catalogname = NULL; r->schemaname = NULL; r->relname = strVal(linitial(names)); break; case 2: r->catalogname = NULL; r->schemaname = strVal(linitial(names)); r->relname = strVal(lsecond(names)); break; case 3: r->catalogname = strVal(linitial(names)); r->schemaname = strVal(lsecond(names)); r->relname = strVal(lthird(names)); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(names)), parser_errposition(position))); break; } r->relpersistence = RELPERSISTENCE_PERMANENT; r->location = position; return r; } /* Separate Constraint nodes from COLLATE clauses in a ColQualList */ static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner) { ListCell *cell; ListCell *prev; ListCell *next; *collClause = NULL; prev = NULL; for (cell = list_head(qualList); cell; cell = next) { Node *n = (Node *) lfirst(cell); next = lnext(cell); if (IsA(n, Constraint)) { /* keep it in list */ prev = cell; continue; } if (IsA(n, CollateClause)) { CollateClause *c = (CollateClause *) n; if (*collClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple COLLATE clauses not allowed"), parser_errposition(c->location))); *collClause = c; } else elog(ERROR, "unexpected node type %d", (int) n->type); /* remove non-Constraint nodes from qualList */ qualList = list_delete_cell(qualList, cell, prev); } *constraintList = qualList; } /* * Process result of ConstraintAttributeSpec, and set appropriate bool flags * in the output command node. Pass NULL for any flags the particular * command doesn't support. */ static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner) { /* defaults */ if (deferrable) *deferrable = false; if (initdeferred) *initdeferred = false; if (not_valid) *not_valid = false; if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED)) { if (deferrable) *deferrable = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); } if (cas_bits & CAS_INITIALLY_DEFERRED) { if (initdeferred) *initdeferred = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); } if (cas_bits & CAS_NOT_VALID) { if (not_valid) *not_valid = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NOT VALID", constrType), parser_errposition(location))); } if (cas_bits & CAS_NO_INHERIT) { if (no_inherit) *no_inherit = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NO INHERIT", constrType), parser_errposition(location))); } } /*---------- * Recursive view transformation * * Convert * * CREATE RECURSIVE VIEW relname (aliases) AS query * * to * * CREATE VIEW relname (aliases) AS * WITH RECURSIVE relname (aliases) AS (query) * SELECT aliases FROM relname * * Actually, just the WITH ... part, which is then inserted into the original * view definition as the query. * ---------- */ static Node * makeRecursiveViewSelect(char *relname, List *aliases, Node *query) { SelectStmt *s = makeNode(SelectStmt); WithClause *w = makeNode(WithClause); CommonTableExpr *cte = makeNode(CommonTableExpr); List *tl = NIL; ListCell *lc; /* create common table expression */ cte->ctename = relname; cte->aliascolnames = aliases; cte->ctematerialized = CTEMaterializeDefault; cte->ctequery = query; cte->location = -1; /* create WITH clause and attach CTE */ w->recursive = true; w->ctes = list_make1(cte); w->location = -1; /* create target list for the new SELECT from the alias list of the * recursive view specification */ foreach (lc, aliases) { ResTarget *rt = makeNode(ResTarget); rt->name = NULL; rt->indirection = NIL; rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0); rt->location = -1; tl = lappend(tl, rt); } /* create new SELECT combining WITH clause, target list, and fake FROM * clause */ s->withClause = w; s->targetList = tl; s->fromClause = list_make1(makeRangeVar(NULL, relname, -1)); return (Node *) s; } /* parser_init() * Initialize to parse one query string */ void parser_init(base_yy_extra_type *yyext) { yyext->parsetree = NIL; /* in case grammar forgets to set it */ }