/* A Bison parser, made by GNU Bison 2.4.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2009, 2010 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. */
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "2.4.3"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* Pure parsers. */
#define YYPURE 1
/* Push parsers. */
#define YYPUSH 0
/* Pull parsers. */
#define YYPULL 1
/* Using locations. */
#define YYLSP_NEEDED 1
/* Substitute the variable and function names. */
#define yyparse base_yyparse
#define yylex base_yylex
#define yyerror base_yyerror
#define yylval base_yylval
#define yychar base_yychar
#define yydebug base_yydebug
#define yynerrs base_yynerrs
#define yylloc base_yylloc
/* Copy the first part of user declarations. */
/* Line 189 of yacc.c */
#line 1 "gram.y"
/*#define YYDEBUG 1*/
/*-------------------------------------------------------------------------
*
* gram.y
* POSTGRESQL BISON rules/actions
*
* Portions Copyright (c) 2003-2013, PgPool Global Development Group
* Portions Copyright (c) 1996-2012, 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.
* SQL92-specific syntax is separated from plain SQL/Postgres syntax
* to help isolate the non-extensible portions of the parser.
*
* 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 SQL_inheritance 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. The handling of SQL_inheritance is
* a good example.
*
* 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 "pool_parser.h"
#include
#include
#include
#include
#include
#include "nodes.h"
#include "keywords.h"
#include "pool_memory.h"
#include "gramparse.h"
#include "makefuncs.h"
#include "pool_string.h"
#include "parser.h"
#include "pg_class.h"
#include "pg_trigger.h"
/* for XML data type */
typedef enum
{
XML_STANDALONE_YES,
XML_STANDALONE_NO,
XML_STANDALONE_NO_VALUE,
XML_STANDALONE_OMITTED
} XmlStandaloneType;
static DefElem *defWithOids(bool value);
/* Location tracking support --- simpler than bison's default */
#define YYLLOC_DEFAULT(Current, Rhs, N) \
do { \
if (N) \
(Current) = (Rhs)[1]; \
else \
(Current) = (Rhs)[0]; \
} while (0)
/*
* 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;
GrantObjectType objtype;
List *objs;
} PrivTarget;
/* 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 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 FuncCall *makeOverlaps(List *largs, List *rargs,
int location, core_yyscan_t yyscanner);
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 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 *makeAArrayExpr(List *elements, 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);
/* Line 189 of yacc.c */
#line 242 "gram.c"
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
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,
ABORT_P = 269,
ABSOLUTE_P = 270,
ACCESS = 271,
ACTION = 272,
ADD_P = 273,
ADMIN = 274,
AFTER = 275,
AGGREGATE = 276,
ALL = 277,
ALSO = 278,
ALTER = 279,
ALWAYS = 280,
ANALYSE = 281,
ANALYZE = 282,
AND = 283,
ANY = 284,
ARRAY = 285,
AS = 286,
ASC = 287,
ASSERTION = 288,
ASSIGNMENT = 289,
ASYMMETRIC = 290,
AT = 291,
ATTRIBUTE = 292,
AUTHORIZATION = 293,
BACKWARD = 294,
BEFORE = 295,
BEGIN_P = 296,
BETWEEN = 297,
BIGINT = 298,
BINARY = 299,
BIT = 300,
BOOLEAN_P = 301,
BOTH = 302,
BY = 303,
CACHE = 304,
CALLED = 305,
CASCADE = 306,
CASCADED = 307,
CASE = 308,
CAST = 309,
CATALOG_P = 310,
CHAIN = 311,
CHAR_P = 312,
CHARACTER = 313,
CHARACTERISTICS = 314,
CHECK = 315,
CHECKPOINT = 316,
CLASS = 317,
CLOSE = 318,
CLUSTER = 319,
COALESCE = 320,
COLLATE = 321,
COLLATION = 322,
COLUMN = 323,
COMMENT = 324,
COMMENTS = 325,
COMMIT = 326,
COMMITTED = 327,
CONCURRENTLY = 328,
CONFIGURATION = 329,
CONNECTION = 330,
CONSTRAINT = 331,
CONSTRAINTS = 332,
CONTENT_P = 333,
CONTINUE_P = 334,
CONVERSION_P = 335,
COPY = 336,
COST = 337,
CREATE = 338,
CROSS = 339,
CSV = 340,
CURRENT_P = 341,
CURRENT_CATALOG = 342,
CURRENT_DATE = 343,
CURRENT_ROLE = 344,
CURRENT_SCHEMA = 345,
CURRENT_TIME = 346,
CURRENT_TIMESTAMP = 347,
CURRENT_USER = 348,
CURSOR = 349,
CYCLE = 350,
DATA_P = 351,
DATABASE = 352,
DAY_P = 353,
DEALLOCATE = 354,
DEC = 355,
DECIMAL_P = 356,
DECLARE = 357,
DEFAULT = 358,
DEFAULTS = 359,
DEFERRABLE = 360,
DEFERRED = 361,
DEFINER = 362,
DELETE_P = 363,
DELIMITER = 364,
DELIMITERS = 365,
DESC = 366,
DICTIONARY = 367,
DISABLE_P = 368,
DISCARD = 369,
DISTINCT = 370,
DO = 371,
DOCUMENT_P = 372,
DOMAIN_P = 373,
DOUBLE_P = 374,
DROP = 375,
EACH = 376,
ELSE = 377,
ENABLE_P = 378,
ENCODING = 379,
ENCRYPTED = 380,
END_P = 381,
ENUM_P = 382,
ESCAPE = 383,
EXCEPT = 384,
EXCLUDE = 385,
EXCLUDING = 386,
EXCLUSIVE = 387,
EXECUTE = 388,
EXISTS = 389,
EXPLAIN = 390,
EXTENSION = 391,
EXTERNAL = 392,
EXTRACT = 393,
FALSE_P = 394,
FAMILY = 395,
FETCH = 396,
FIRST_P = 397,
FLOAT_P = 398,
FOLLOWING = 399,
FOR = 400,
FORCE = 401,
FOREIGN = 402,
FORWARD = 403,
FREEZE = 404,
FROM = 405,
FULL = 406,
FUNCTION = 407,
FUNCTIONS = 408,
GLOBAL = 409,
GRANT = 410,
GRANTED = 411,
GREATEST = 412,
GROUP_P = 413,
HANDLER = 414,
HAVING = 415,
HEADER_P = 416,
HOLD = 417,
HOUR_P = 418,
IDENTITY_P = 419,
IF_P = 420,
ILIKE = 421,
IMMEDIATE = 422,
IMMUTABLE = 423,
IMPLICIT_P = 424,
IN_P = 425,
INCLUDING = 426,
INCREMENT = 427,
INDEX = 428,
INDEXES = 429,
INHERIT = 430,
INHERITS = 431,
INITIALLY = 432,
INLINE_P = 433,
INNER_P = 434,
INOUT = 435,
INPUT_P = 436,
INSENSITIVE = 437,
INSERT = 438,
INSTEAD = 439,
INT_P = 440,
INTEGER = 441,
INTERSECT = 442,
INTERVAL = 443,
INTO = 444,
INVOKER = 445,
IS = 446,
ISNULL = 447,
ISOLATION = 448,
JOIN = 449,
KEY = 450,
LABEL = 451,
LANGUAGE = 452,
LARGE_P = 453,
LAST_P = 454,
LC_COLLATE_P = 455,
LC_CTYPE_P = 456,
LEADING = 457,
LEAKPROOF = 458,
LEAST = 459,
LEFT = 460,
LEVEL = 461,
LIKE = 462,
LIMIT = 463,
LISTEN = 464,
LOAD = 465,
LOCAL = 466,
LOCALTIME = 467,
LOCALTIMESTAMP = 468,
LOCATION = 469,
LOCK_P = 470,
MAPPING = 471,
MATCH = 472,
MAXVALUE = 473,
MINUTE_P = 474,
MINVALUE = 475,
MODE = 476,
MONTH_P = 477,
MOVE = 478,
NAME_P = 479,
NAMES = 480,
NATIONAL = 481,
NATURAL = 482,
NCHAR = 483,
NEXT = 484,
NO = 485,
NONE = 486,
NOT = 487,
NOTHING = 488,
NOTIFY = 489,
NOTNULL = 490,
NOWAIT = 491,
NULL_P = 492,
NULLIF = 493,
NULLS_P = 494,
NUMERIC = 495,
OBJECT_P = 496,
OF = 497,
OFF = 498,
OFFSET = 499,
OIDS = 500,
ON = 501,
ONLY = 502,
OPERATOR = 503,
OPTION = 504,
OPTIONS = 505,
OR = 506,
ORDER = 507,
OUT_P = 508,
OUTER_P = 509,
OVER = 510,
OVERLAPS = 511,
OVERLAY = 512,
OWNED = 513,
OWNER = 514,
PARSER = 515,
PARTIAL = 516,
PARTITION = 517,
PASSING = 518,
PASSWORD = 519,
PLACING = 520,
PLANS = 521,
POSITION = 522,
PRECEDING = 523,
PRECISION = 524,
PRESERVE = 525,
PREPARE = 526,
PREPARED = 527,
PRIMARY = 528,
PRIOR = 529,
PRIVILEGES = 530,
PROCEDURAL = 531,
PROCEDURE = 532,
QUOTE = 533,
RANGE = 534,
READ = 535,
REAL = 536,
REASSIGN = 537,
RECHECK = 538,
RECURSIVE = 539,
REF = 540,
REFERENCES = 541,
REINDEX = 542,
RELATIVE_P = 543,
RELEASE = 544,
RENAME = 545,
REPEATABLE = 546,
REPLACE = 547,
REPLICA = 548,
RESET = 549,
RESTART = 550,
RESTRICT = 551,
RETURNING = 552,
RETURNS = 553,
REVOKE = 554,
RIGHT = 555,
ROLE = 556,
ROLLBACK = 557,
ROW = 558,
ROWS = 559,
RULE = 560,
SAVEPOINT = 561,
SCHEMA = 562,
SCROLL = 563,
SEARCH = 564,
SECOND_P = 565,
SECURITY = 566,
SELECT = 567,
SEQUENCE = 568,
SEQUENCES = 569,
SERIALIZABLE = 570,
SERVER = 571,
SESSION = 572,
SESSION_USER = 573,
SET = 574,
SETOF = 575,
SHARE = 576,
SHOW = 577,
SIMILAR = 578,
SIMPLE = 579,
SMALLINT = 580,
SNAPSHOT = 581,
SOME = 582,
STABLE = 583,
STANDALONE_P = 584,
START = 585,
STATEMENT = 586,
STATISTICS = 587,
STDIN = 588,
STDOUT = 589,
STORAGE = 590,
STRICT_P = 591,
STRIP_P = 592,
SUBSTRING = 593,
SYMMETRIC = 594,
SYSID = 595,
SYSTEM_P = 596,
TABLE = 597,
TABLES = 598,
TABLESPACE = 599,
TEMP = 600,
TEMPLATE = 601,
TEMPORARY = 602,
TEXT_P = 603,
THEN = 604,
TIME = 605,
TIMESTAMP = 606,
TO = 607,
TRAILING = 608,
TRANSACTION = 609,
TREAT = 610,
TRIGGER = 611,
TRIM = 612,
TRUE_P = 613,
TRUNCATE = 614,
TRUSTED = 615,
TYPE_P = 616,
TYPES_P = 617,
UNBOUNDED = 618,
UNCOMMITTED = 619,
UNENCRYPTED = 620,
UNION = 621,
UNIQUE = 622,
UNKNOWN = 623,
UNLISTEN = 624,
UNLOGGED = 625,
UNTIL = 626,
UPDATE = 627,
USER = 628,
USING = 629,
VACUUM = 630,
VALID = 631,
VALIDATE = 632,
VALIDATOR = 633,
VALUE_P = 634,
VALUES = 635,
VARCHAR = 636,
VARIADIC = 637,
VARYING = 638,
VERBOSE = 639,
VERSION_P = 640,
VIEW = 641,
VOLATILE = 642,
WHEN = 643,
WHERE = 644,
WHITESPACE_P = 645,
WINDOW = 646,
WITH = 647,
WITHOUT = 648,
WORK = 649,
WRAPPER = 650,
WRITE = 651,
XML_P = 652,
XMLATTRIBUTES = 653,
XMLCONCAT = 654,
XMLELEMENT = 655,
XMLEXISTS = 656,
XMLFOREST = 657,
XMLPARSE = 658,
XMLPI = 659,
XMLROOT = 660,
XMLSERIALIZE = 661,
YEAR_P = 662,
YES_P = 663,
ZONE = 664,
NULLS_FIRST = 665,
NULLS_LAST = 666,
WITH_TIME = 667,
POSTFIXOP = 668,
UMINUS = 669
};
#endif
/* Tokens. */
#define IDENT 258
#define FCONST 259
#define SCONST 260
#define BCONST 261
#define XCONST 262
#define Op 263
#define ICONST 264
#define PARAM 265
#define TYPECAST 266
#define DOT_DOT 267
#define COLON_EQUALS 268
#define ABORT_P 269
#define ABSOLUTE_P 270
#define ACCESS 271
#define ACTION 272
#define ADD_P 273
#define ADMIN 274
#define AFTER 275
#define AGGREGATE 276
#define ALL 277
#define ALSO 278
#define ALTER 279
#define ALWAYS 280
#define ANALYSE 281
#define ANALYZE 282
#define AND 283
#define ANY 284
#define ARRAY 285
#define AS 286
#define ASC 287
#define ASSERTION 288
#define ASSIGNMENT 289
#define ASYMMETRIC 290
#define AT 291
#define ATTRIBUTE 292
#define AUTHORIZATION 293
#define BACKWARD 294
#define BEFORE 295
#define BEGIN_P 296
#define BETWEEN 297
#define BIGINT 298
#define BINARY 299
#define BIT 300
#define BOOLEAN_P 301
#define BOTH 302
#define BY 303
#define CACHE 304
#define CALLED 305
#define CASCADE 306
#define CASCADED 307
#define CASE 308
#define CAST 309
#define CATALOG_P 310
#define CHAIN 311
#define CHAR_P 312
#define CHARACTER 313
#define CHARACTERISTICS 314
#define CHECK 315
#define CHECKPOINT 316
#define CLASS 317
#define CLOSE 318
#define CLUSTER 319
#define COALESCE 320
#define COLLATE 321
#define COLLATION 322
#define COLUMN 323
#define COMMENT 324
#define COMMENTS 325
#define COMMIT 326
#define COMMITTED 327
#define CONCURRENTLY 328
#define CONFIGURATION 329
#define CONNECTION 330
#define CONSTRAINT 331
#define CONSTRAINTS 332
#define CONTENT_P 333
#define CONTINUE_P 334
#define CONVERSION_P 335
#define COPY 336
#define COST 337
#define CREATE 338
#define CROSS 339
#define CSV 340
#define CURRENT_P 341
#define CURRENT_CATALOG 342
#define CURRENT_DATE 343
#define CURRENT_ROLE 344
#define CURRENT_SCHEMA 345
#define CURRENT_TIME 346
#define CURRENT_TIMESTAMP 347
#define CURRENT_USER 348
#define CURSOR 349
#define CYCLE 350
#define DATA_P 351
#define DATABASE 352
#define DAY_P 353
#define DEALLOCATE 354
#define DEC 355
#define DECIMAL_P 356
#define DECLARE 357
#define DEFAULT 358
#define DEFAULTS 359
#define DEFERRABLE 360
#define DEFERRED 361
#define DEFINER 362
#define DELETE_P 363
#define DELIMITER 364
#define DELIMITERS 365
#define DESC 366
#define DICTIONARY 367
#define DISABLE_P 368
#define DISCARD 369
#define DISTINCT 370
#define DO 371
#define DOCUMENT_P 372
#define DOMAIN_P 373
#define DOUBLE_P 374
#define DROP 375
#define EACH 376
#define ELSE 377
#define ENABLE_P 378
#define ENCODING 379
#define ENCRYPTED 380
#define END_P 381
#define ENUM_P 382
#define ESCAPE 383
#define EXCEPT 384
#define EXCLUDE 385
#define EXCLUDING 386
#define EXCLUSIVE 387
#define EXECUTE 388
#define EXISTS 389
#define EXPLAIN 390
#define EXTENSION 391
#define EXTERNAL 392
#define EXTRACT 393
#define FALSE_P 394
#define FAMILY 395
#define FETCH 396
#define FIRST_P 397
#define FLOAT_P 398
#define FOLLOWING 399
#define FOR 400
#define FORCE 401
#define FOREIGN 402
#define FORWARD 403
#define FREEZE 404
#define FROM 405
#define FULL 406
#define FUNCTION 407
#define FUNCTIONS 408
#define GLOBAL 409
#define GRANT 410
#define GRANTED 411
#define GREATEST 412
#define GROUP_P 413
#define HANDLER 414
#define HAVING 415
#define HEADER_P 416
#define HOLD 417
#define HOUR_P 418
#define IDENTITY_P 419
#define IF_P 420
#define ILIKE 421
#define IMMEDIATE 422
#define IMMUTABLE 423
#define IMPLICIT_P 424
#define IN_P 425
#define INCLUDING 426
#define INCREMENT 427
#define INDEX 428
#define INDEXES 429
#define INHERIT 430
#define INHERITS 431
#define INITIALLY 432
#define INLINE_P 433
#define INNER_P 434
#define INOUT 435
#define INPUT_P 436
#define INSENSITIVE 437
#define INSERT 438
#define INSTEAD 439
#define INT_P 440
#define INTEGER 441
#define INTERSECT 442
#define INTERVAL 443
#define INTO 444
#define INVOKER 445
#define IS 446
#define ISNULL 447
#define ISOLATION 448
#define JOIN 449
#define KEY 450
#define LABEL 451
#define LANGUAGE 452
#define LARGE_P 453
#define LAST_P 454
#define LC_COLLATE_P 455
#define LC_CTYPE_P 456
#define LEADING 457
#define LEAKPROOF 458
#define LEAST 459
#define LEFT 460
#define LEVEL 461
#define LIKE 462
#define LIMIT 463
#define LISTEN 464
#define LOAD 465
#define LOCAL 466
#define LOCALTIME 467
#define LOCALTIMESTAMP 468
#define LOCATION 469
#define LOCK_P 470
#define MAPPING 471
#define MATCH 472
#define MAXVALUE 473
#define MINUTE_P 474
#define MINVALUE 475
#define MODE 476
#define MONTH_P 477
#define MOVE 478
#define NAME_P 479
#define NAMES 480
#define NATIONAL 481
#define NATURAL 482
#define NCHAR 483
#define NEXT 484
#define NO 485
#define NONE 486
#define NOT 487
#define NOTHING 488
#define NOTIFY 489
#define NOTNULL 490
#define NOWAIT 491
#define NULL_P 492
#define NULLIF 493
#define NULLS_P 494
#define NUMERIC 495
#define OBJECT_P 496
#define OF 497
#define OFF 498
#define OFFSET 499
#define OIDS 500
#define ON 501
#define ONLY 502
#define OPERATOR 503
#define OPTION 504
#define OPTIONS 505
#define OR 506
#define ORDER 507
#define OUT_P 508
#define OUTER_P 509
#define OVER 510
#define OVERLAPS 511
#define OVERLAY 512
#define OWNED 513
#define OWNER 514
#define PARSER 515
#define PARTIAL 516
#define PARTITION 517
#define PASSING 518
#define PASSWORD 519
#define PLACING 520
#define PLANS 521
#define POSITION 522
#define PRECEDING 523
#define PRECISION 524
#define PRESERVE 525
#define PREPARE 526
#define PREPARED 527
#define PRIMARY 528
#define PRIOR 529
#define PRIVILEGES 530
#define PROCEDURAL 531
#define PROCEDURE 532
#define QUOTE 533
#define RANGE 534
#define READ 535
#define REAL 536
#define REASSIGN 537
#define RECHECK 538
#define RECURSIVE 539
#define REF 540
#define REFERENCES 541
#define REINDEX 542
#define RELATIVE_P 543
#define RELEASE 544
#define RENAME 545
#define REPEATABLE 546
#define REPLACE 547
#define REPLICA 548
#define RESET 549
#define RESTART 550
#define RESTRICT 551
#define RETURNING 552
#define RETURNS 553
#define REVOKE 554
#define RIGHT 555
#define ROLE 556
#define ROLLBACK 557
#define ROW 558
#define ROWS 559
#define RULE 560
#define SAVEPOINT 561
#define SCHEMA 562
#define SCROLL 563
#define SEARCH 564
#define SECOND_P 565
#define SECURITY 566
#define SELECT 567
#define SEQUENCE 568
#define SEQUENCES 569
#define SERIALIZABLE 570
#define SERVER 571
#define SESSION 572
#define SESSION_USER 573
#define SET 574
#define SETOF 575
#define SHARE 576
#define SHOW 577
#define SIMILAR 578
#define SIMPLE 579
#define SMALLINT 580
#define SNAPSHOT 581
#define SOME 582
#define STABLE 583
#define STANDALONE_P 584
#define START 585
#define STATEMENT 586
#define STATISTICS 587
#define STDIN 588
#define STDOUT 589
#define STORAGE 590
#define STRICT_P 591
#define STRIP_P 592
#define SUBSTRING 593
#define SYMMETRIC 594
#define SYSID 595
#define SYSTEM_P 596
#define TABLE 597
#define TABLES 598
#define TABLESPACE 599
#define TEMP 600
#define TEMPLATE 601
#define TEMPORARY 602
#define TEXT_P 603
#define THEN 604
#define TIME 605
#define TIMESTAMP 606
#define TO 607
#define TRAILING 608
#define TRANSACTION 609
#define TREAT 610
#define TRIGGER 611
#define TRIM 612
#define TRUE_P 613
#define TRUNCATE 614
#define TRUSTED 615
#define TYPE_P 616
#define TYPES_P 617
#define UNBOUNDED 618
#define UNCOMMITTED 619
#define UNENCRYPTED 620
#define UNION 621
#define UNIQUE 622
#define UNKNOWN 623
#define UNLISTEN 624
#define UNLOGGED 625
#define UNTIL 626
#define UPDATE 627
#define USER 628
#define USING 629
#define VACUUM 630
#define VALID 631
#define VALIDATE 632
#define VALIDATOR 633
#define VALUE_P 634
#define VALUES 635
#define VARCHAR 636
#define VARIADIC 637
#define VARYING 638
#define VERBOSE 639
#define VERSION_P 640
#define VIEW 641
#define VOLATILE 642
#define WHEN 643
#define WHERE 644
#define WHITESPACE_P 645
#define WINDOW 646
#define WITH 647
#define WITHOUT 648
#define WORK 649
#define WRAPPER 650
#define WRITE 651
#define XML_P 652
#define XMLATTRIBUTES 653
#define XMLCONCAT 654
#define XMLELEMENT 655
#define XMLEXISTS 656
#define XMLFOREST 657
#define XMLPARSE 658
#define XMLPI 659
#define XMLROOT 660
#define XMLSERIALIZE 661
#define YEAR_P 662
#define YES_P 663
#define ZONE 664
#define NULLS_FIRST 665
#define NULLS_LAST 666
#define WITH_TIME 667
#define POSTFIXOP 668
#define UMINUS 669
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 214 of yacc.c */
#line 171 "gram.y"
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;
FuncWithArgs *funwithargs;
DefElem *defelt;
SortBy *sortby;
WindowDef *windef;
JoinExpr *jexpr;
IndexElem *ielem;
Alias *alias;
RangeVar *range;
IntoClause *into;
WithClause *with;
A_Indices *aind;
ResTarget *target;
struct PrivTarget *privtarget;
AccessPriv *accesspriv;
InsertStmt *istmt;
VariableSetStmt *vsetstmt;
/* Line 214 of yacc.c */
#line 1145 "gram.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
typedef struct YYLTYPE
{
int first_line;
int first_column;
int last_line;
int last_column;
} YYLTYPE;
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
#endif
/* Copy the second part of user declarations. */
/* Line 264 of yacc.c */
#line 1170 "gram.c"
#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;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif
#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif
#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif
#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
# define YYSIZE_T unsigned int
# endif
#endif
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
# define YY_(msgid) msgid
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
YYID (int yyi)
#else
static int
YYID (yyi)
int yyi;
#endif
{
return yyi;
}
#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 _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (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 _STDLIB_H \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
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)
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
# endif
# endif
/* 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 (YYID (0))
#endif
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 696
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 72676
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 432
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 544
/* YYNRULES -- Number of rules. */
#define YYNRULES 2255
/* YYNRULES -- Number of states. */
#define YYNSTATES 4292
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 669
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to 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, 421, 2, 2,
426, 427, 419, 417, 430, 418, 428, 420, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 431, 429,
414, 413, 415, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 424, 2, 425, 422, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 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, 416, 423
};
#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 9, 11, 13, 15, 17, 19,
21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
161, 163, 165, 167, 169, 171, 173, 175, 177, 179,
181, 183, 185, 187, 189, 191, 193, 195, 197, 199,
201, 203, 205, 207, 209, 211, 213, 215, 217, 219,
221, 223, 225, 227, 229, 231, 232, 238, 240, 241,
244, 245, 248, 249, 252, 255, 259, 263, 265, 269,
273, 276, 278, 280, 283, 286, 289, 293, 297, 303,
309, 310, 314, 320, 326, 331, 335, 341, 345, 351,
357, 364, 366, 368, 372, 378, 385, 390, 392, 393,
396, 397, 399, 401, 403, 405, 407, 409, 412, 416,
420, 423, 429, 431, 435, 439, 443, 447, 451, 455,
458, 461, 464, 467, 471, 475, 479, 483, 485, 489,
491, 495, 497, 499, 502, 505, 508, 510, 512, 514,
516, 518, 520, 522, 526, 533, 535, 537, 539, 541,
543, 544, 546, 548, 551, 555, 560, 564, 567, 570,
572, 575, 577, 580, 584, 589, 593, 596, 601, 603,
605, 607, 609, 611, 614, 617, 620, 623, 628, 635,
640, 647, 652, 659, 664, 671, 673, 677, 680, 684,
689, 696, 703, 710, 716, 722, 729, 736, 741, 750,
755, 758, 762, 769, 774, 778, 782, 786, 790, 794,
799, 804, 808, 812, 816, 820, 824, 828, 833, 838,
842, 845, 849, 852, 855, 859, 863, 866, 869, 871,
875, 878, 880, 882, 883, 886, 887, 890, 891, 895,
898, 899, 901, 905, 909, 911, 917, 921, 926, 928,
932, 937, 944, 949, 958, 961, 964, 975, 982, 984,
986, 988, 990, 992, 994, 998, 1001, 1002, 1004, 1006,
1010, 1014, 1016, 1018, 1022, 1026, 1030, 1034, 1039, 1042,
1044, 1045, 1048, 1049, 1053, 1054, 1056, 1057, 1059, 1063,
1066, 1068, 1070, 1072, 1076, 1077, 1079, 1083, 1085, 1097,
1112, 1123, 1137, 1139, 1141, 1144, 1147, 1150, 1153, 1155,
1156, 1158, 1159, 1163, 1164, 1166, 1170, 1172, 1176, 1178,
1180, 1182, 1184, 1186, 1191, 1196, 1199, 1200, 1204, 1206,
1208, 1211, 1214, 1216, 1220, 1225, 1231, 1234, 1240, 1242,
1245, 1248, 1251, 1255, 1259, 1263, 1264, 1266, 1268, 1270,
1272, 1274, 1276, 1280, 1282, 1288, 1296, 1300, 1309, 1314,
1324, 1336, 1339, 1340, 1344, 1345, 1347, 1351, 1353, 1356,
1359, 1362, 1363, 1365, 1369, 1373, 1380, 1385, 1386, 1388,
1390, 1393, 1396, 1397, 1401, 1405, 1408, 1410, 1412, 1415,
1418, 1423, 1424, 1427, 1430, 1433, 1434, 1438, 1443, 1448,
1449, 1452, 1453, 1458, 1459, 1463, 1471, 1477, 1480, 1484,
1485, 1491, 1496, 1503, 1505, 1506, 1508, 1511, 1514, 1516,
1519, 1523, 1526, 1529, 1532, 1535, 1539, 1543, 1545, 1549,
1551, 1552, 1554, 1557, 1559, 1561, 1565, 1572, 1583, 1585,
1586, 1588, 1591, 1594, 1595, 1598, 1601, 1603, 1604, 1610,
1618, 1620, 1621, 1628, 1631, 1632, 1636, 1642, 1648, 1657,
1660, 1661, 1664, 1667, 1670, 1676, 1679, 1680, 1683, 1691,
1702, 1709, 1716, 1723, 1730, 1738, 1746, 1756, 1766, 1773,
1780, 1789, 1798, 1807, 1816, 1823, 1830, 1838, 1847, 1854,
1861, 1869, 1872, 1875, 1878, 1881, 1883, 1886, 1888, 1889,
1896, 1905, 1913, 1920, 1925, 1926, 1928, 1932, 1937, 1939,
1943, 1945, 1948, 1951, 1954, 1957, 1959, 1961, 1972, 1975,
1976, 1979, 1982, 1984, 1985, 1990, 1997, 2003, 2008, 2013,
2022, 2034, 2038, 2041, 2043, 2047, 2049, 2055, 2063, 2072,
2074, 2076, 2078, 2086, 2096, 2105, 2121, 2142, 2144, 2146,
2149, 2151, 2155, 2157, 2159, 2161, 2165, 2167, 2171, 2172,
2174, 2175, 2177, 2179, 2184, 2185, 2187, 2191, 2192, 2194,
2196, 2198, 2200, 2203, 2204, 2205, 2208, 2211, 2213, 2216,
2219, 2222, 2225, 2232, 2241, 2250, 2255, 2261, 2266, 2271,
2276, 2280, 2288, 2297, 2304, 2311, 2318, 2325, 2332, 2337,
2343, 2347, 2349, 2353, 2357, 2359, 2361, 2363, 2365, 2367,
2369, 2373, 2377, 2381, 2383, 2387, 2391, 2393, 2394, 2396,
2400, 2407, 2416, 2425, 2439, 2441, 2445, 2451, 2458, 2463,
2471, 2474, 2476, 2477, 2480, 2481, 2484, 2489, 2490, 2492,
2493, 2500, 2509, 2518, 2520, 2524, 2530, 2536, 2544, 2554,
2562, 2572, 2578, 2585, 2592, 2597, 2603, 2611, 2613, 2615,
2617, 2619, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2638,
2642, 2646, 2650, 2652, 2656, 2658, 2661, 2664, 2668, 2674,
2677, 2680, 2681, 2688, 2696, 2704, 2712, 2721, 2730, 2737,
2746, 2756, 2766, 2774, 2785, 2793, 2802, 2811, 2820, 2829,
2831, 2833, 2835, 2837, 2839, 2841, 2843, 2845, 2847, 2849,
2851, 2853, 2855, 2857, 2860, 2862, 2866, 2868, 2870, 2879,
2889, 2899, 2909, 2919, 2922, 2923, 2925, 2927, 2930, 2932,
2934, 2936, 2938, 2940, 2942, 2944, 2946, 2948, 2950, 2953,
2956, 2958, 2961, 2965, 2969, 2973, 2977, 2982, 2987, 2991,
2995, 2999, 3004, 3009, 3013, 3018, 3023, 3025, 3027, 3029,
3030, 3038, 3046, 3057, 3059, 3061, 3064, 3069, 3075, 3077,
3081, 3084, 3087, 3090, 3093, 3095, 3098, 3101, 3106, 3110,
3113, 3116, 3119, 3122, 3126, 3129, 3132, 3135, 3141, 3147,
3153, 3155, 3159, 3161, 3164, 3168, 3169, 3171, 3175, 3178,
3185, 3192, 3202, 3206, 3207, 3211, 3212, 3218, 3221, 3222,
3226, 3230, 3234, 3242, 3250, 3261, 3263, 3265, 3267, 3269,
3284, 3286, 3287, 3289, 3290, 3292, 3293, 3296, 3297, 3299,
3303, 3309, 3315, 3323, 3326, 3327, 3329, 3332, 3333, 3335,
3337, 3338, 3340, 3342, 3343, 3353, 3366, 3374, 3377, 3378,
3382, 3385, 3387, 3391, 3395, 3398, 3400, 3404, 3408, 3412,
3415, 3418, 3420, 3422, 3424, 3426, 3429, 3431, 3433, 3435,
3437, 3442, 3448, 3450, 3454, 3458, 3460, 3463, 3468, 3474,
3476, 3478, 3480, 3482, 3486, 3490, 3493, 3496, 3498, 3501,
3504, 3507, 3509, 3512, 3515, 3517, 3519, 3521, 3525, 3528,
3529, 3532, 3534, 3538, 3544, 3546, 3549, 3551, 3552, 3558,
3566, 3572, 3580, 3586, 3594, 3598, 3604, 3610, 3616, 3618,
3622, 3625, 3627, 3630, 3632, 3635, 3647, 3658, 3669, 3672,
3675, 3676, 3686, 3689, 3690, 3695, 3700, 3705, 3707, 3709,
3711, 3712, 3720, 3727, 3734, 3741, 3748, 3757, 3766, 3773,
3780, 3788, 3798, 3808, 3815, 3822, 3829, 3838, 3845, 3854,
3861, 3870, 3877, 3886, 3894, 3904, 3913, 3924, 3933, 3943,
3955, 3964, 3971, 3978, 3985, 3991, 3997, 4006, 4015, 4024,
4033, 4040, 4050, 4052, 4053, 4056, 4057, 4065, 4072, 4079,
4086, 4093, 4100, 4108, 4118, 4128, 4135, 4144, 4153, 4162,
4171, 4180, 4187, 4196, 4203, 4212, 4220, 4230, 4237, 4245,
4252, 4259, 4266, 4273, 4280, 4288, 4296, 4304, 4314, 4324,
4331, 4338, 4345, 4354, 4363, 4372, 4379, 4393, 4395, 4397,
4401, 4405, 4407, 4409, 4411, 4413, 4415, 4417, 4419, 4420,
4422, 4424, 4426, 4428, 4430, 4432, 4433, 4440, 4449, 4453,
4456, 4457, 4460, 4463, 4466, 4469, 4473, 4477, 4480, 4483,
4486, 4489, 4493, 4496, 4502, 4507, 4511, 4515, 4519, 4521,
4523, 4524, 4528, 4531, 4534, 4536, 4539, 4541, 4545, 4548,
4550, 4551, 4561, 4573, 4577, 4582, 4587, 4588, 4591, 4597,
4600, 4601, 4605, 4609, 4613, 4617, 4621, 4625, 4629, 4633,
4637, 4641, 4645, 4649, 4653, 4658, 4662, 4666, 4668, 4669,
4675, 4682, 4687, 4690, 4691, 4696, 4700, 4706, 4713, 4718,
4725, 4732, 4738, 4746, 4756, 4763, 4765, 4766, 4773, 4785,
4797, 4809, 4823, 4833, 4845, 4856, 4861, 4864, 4870, 4873,
4874, 4879, 4885, 4891, 4896, 4903, 4905, 4909, 4911, 4913,
4915, 4917, 4920, 4925, 4927, 4929, 4931, 4932, 4934, 4935,
4937, 4938, 4942, 4943, 4946, 4951, 4955, 4961, 4963, 4965,
4967, 4969, 4971, 4973, 4975, 4977, 4981, 4984, 4986, 4988,
4990, 4992, 4994, 4995, 5001, 5005, 5006, 5008, 5010, 5012,
5014, 5018, 5028, 5032, 5033, 5036, 5040, 5043, 5047, 5054,
5056, 5061, 5064, 5066, 5070, 5073, 5076, 5077, 5085, 5088,
5089, 5095, 5099, 5100, 5103, 5106, 5109, 5113, 5115, 5119,
5121, 5124, 5126, 5127, 5136, 5138, 5142, 5144, 5146, 5150,
5156, 5159, 5161, 5165, 5173, 5175, 5176, 5180, 5183, 5186,
5189, 5190, 5193, 5196, 5198, 5200, 5204, 5208, 5210, 5213,
5218, 5223, 5226, 5230, 5236, 5242, 5244, 5246, 5256, 5258,
5261, 5266, 5271, 5276, 5279, 5283, 5285, 5289, 5296, 5298,
5299, 5302, 5303, 5307, 5311, 5316, 5321, 5326, 5331, 5335,
5338, 5340, 5342, 5343, 5345, 5347, 5348, 5350, 5356, 5358,
5359, 5361, 5362, 5366, 5368, 5372, 5377, 5381, 5384, 5387,
5389, 5391, 5393, 5394, 5397, 5402, 5408, 5411, 5415, 5417,
5419, 5421, 5423, 5427, 5428, 5430, 5432, 5434, 5436, 5438,
5442, 5443, 5446, 5447, 5449, 5453, 5455, 5456, 5458, 5461,
5466, 5471, 5474, 5475, 5478, 5482, 5485, 5486, 5488, 5492,
5494, 5497, 5499, 5502, 5508, 5515, 5521, 5523, 5526, 5528,
5533, 5537, 5542, 5548, 5553, 5559, 5564, 5570, 5573, 5578,
5580, 5583, 5586, 5589, 5591, 5593, 5594, 5599, 5602, 5604,
5607, 5610, 5615, 5617, 5621, 5623, 5626, 5630, 5632, 5635,
5636, 5639, 5644, 5645, 5647, 5648, 5650, 5654, 5658, 5661,
5665, 5671, 5678, 5681, 5685, 5689, 5694, 5695, 5697, 5699,
5701, 5703, 5705, 5708, 5714, 5716, 5718, 5720, 5722, 5725,
5729, 5733, 5734, 5736, 5738, 5740, 5742, 5744, 5747, 5750,
5753, 5756, 5759, 5761, 5765, 5766, 5768, 5770, 5772, 5774,
5780, 5783, 5785, 5787, 5789, 5791, 5797, 5800, 5803, 5806,
5808, 5812, 5816, 5819, 5821, 5822, 5826, 5827, 5833, 5836,
5842, 5845, 5847, 5850, 5854, 5855, 5857, 5859, 5861, 5863,
5865, 5867, 5871, 5875, 5879, 5883, 5887, 5891, 5895, 5896,
5898, 5903, 5905, 5909, 5913, 5919, 5922, 5925, 5929, 5933,
5937, 5941, 5945, 5949, 5953, 5957, 5961, 5965, 5968, 5971,
5975, 5979, 5982, 5986, 5992, 5997, 6004, 6008, 6014, 6019,
6026, 6031, 6038, 6044, 6052, 6056, 6059, 6064, 6067, 6071,
6075, 6080, 6084, 6089, 6093, 6098, 6104, 6111, 6118, 6126,
6133, 6141, 6148, 6156, 6160, 6165, 6170, 6177, 6180, 6184,
6189, 6191, 6195, 6198, 6201, 6205, 6209, 6213, 6217, 6221,
6225, 6229, 6233, 6237, 6241, 6244, 6247, 6253, 6260, 6267,
6275, 6279, 6284, 6286, 6288, 6291, 6296, 6298, 6300, 6302,
6305, 6308, 6311, 6314, 6316, 6321, 6327, 6334, 6343, 6350,
6358, 6366, 6372, 6378, 6380, 6382, 6387, 6389, 6394, 6396,
6401, 6403, 6408, 6410, 6412, 6414, 6416, 6418, 6420, 6427,
6432, 6437, 6442, 6447, 6454, 6460, 6466, 6472, 6477, 6484,
6489, 6494, 6499, 6504, 6510, 6518, 6526, 6536, 6542, 6547,
6554, 6560, 6568, 6576, 6584, 6587, 6591, 6595, 6599, 6604,
6605, 6610, 6612, 6616, 6620, 6622, 6624, 6626, 6629, 6632,
6633, 6636, 6641, 6646, 6653, 6656, 6657, 6659, 6663, 6667,
6670, 6673, 6674, 6681, 6683, 6684, 6688, 6689, 6692, 6695,
6696, 6698, 6703, 6706, 6709, 6712, 6715, 6718, 6723, 6727,
6733, 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751,
6753, 6755, 6757, 6759, 6761, 6763, 6768, 6770, 6775, 6777,
6782, 6784, 6787, 6789, 6792, 6794, 6798, 6800, 6804, 6806,
6810, 6812, 6816, 6820, 6824, 6827, 6829, 6833, 6837, 6838,
6840, 6842, 6844, 6846, 6848, 6850, 6852, 6854, 6859, 6863,
6866, 6870, 6871, 6875, 6879, 6882, 6885, 6887, 6888, 6891,
6894, 6898, 6901, 6903, 6905, 6909, 6915, 6917, 6920, 6925,
6928, 6929, 6931, 6932, 6934, 6937, 6940, 6943, 6947, 6953,
6955, 6958, 6959, 6962, 6964, 6965, 6967, 6969, 6971, 6975,
6979, 6981, 6985, 6989, 6992, 6994, 6996, 6998, 7002, 7004,
7007, 7009, 7013, 7015, 7017, 7019, 7021, 7023, 7025, 7027,
7030, 7032, 7034, 7036, 7038, 7040, 7043, 7049, 7052, 7056,
7063, 7065, 7067, 7069, 7071, 7073, 7075, 7077, 7080, 7083,
7085, 7087, 7089, 7091, 7093, 7095, 7097, 7099, 7101, 7103,
7105, 7107, 7109, 7111, 7113, 7115, 7117, 7119, 7121, 7123,
7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139, 7141, 7143,
7145, 7147, 7149, 7151, 7153, 7155, 7157, 7159, 7161, 7163,
7165, 7167, 7169, 7171, 7173, 7175, 7177, 7179, 7181, 7183,
7185, 7187, 7189, 7191, 7193, 7195, 7197, 7199, 7201, 7203,
7205, 7207, 7209, 7211, 7213, 7215, 7217, 7219, 7221, 7223,
7225, 7227, 7229, 7231, 7233, 7235, 7237, 7239, 7241, 7243,
7245, 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263,
7265, 7267, 7269, 7271, 7273, 7275, 7277, 7279, 7281, 7283,
7285, 7287, 7289, 7291, 7293, 7295, 7297, 7299, 7301, 7303,
7305, 7307, 7309, 7311, 7313, 7315, 7317, 7319, 7321, 7323,
7325, 7327, 7329, 7331, 7333, 7335, 7337, 7339, 7341, 7343,
7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, 7361, 7363,
7365, 7367, 7369, 7371, 7373, 7375, 7377, 7379, 7381, 7383,
7385, 7387, 7389, 7391, 7393, 7395, 7397, 7399, 7401, 7403,
7405, 7407, 7409, 7411, 7413, 7415, 7417, 7419, 7421, 7423,
7425, 7427, 7429, 7431, 7433, 7435, 7437, 7439, 7441, 7443,
7445, 7447, 7449, 7451, 7453, 7455, 7457, 7459, 7461, 7463,
7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, 7481, 7483,
7485, 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503,
7505, 7507, 7509, 7511, 7513, 7515, 7517, 7519, 7521, 7523,
7525, 7527, 7529, 7531, 7533, 7535, 7537, 7539, 7541, 7543,
7545, 7547, 7549, 7551, 7553, 7555, 7557, 7559, 7561, 7563,
7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579, 7581, 7583,
7585, 7587, 7589, 7591, 7593, 7595, 7597, 7599, 7601, 7603,
7605, 7607, 7609, 7611, 7613, 7615, 7617, 7619, 7621, 7623,
7625, 7627, 7629, 7631, 7633, 7635, 7637, 7639, 7641, 7643,
7645, 7647, 7649, 7651, 7653, 7655, 7657, 7659, 7661, 7663,
7665, 7667, 7669, 7671, 7673, 7675, 7677, 7679, 7681, 7683,
7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703,
7705, 7707, 7709, 7711, 7713, 7715, 7717, 7719, 7721, 7723,
7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743,
7745, 7747, 7749, 7751, 7753, 7755, 7757, 7759, 7761, 7763,
7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783,
7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803,
7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823,
7825, 7827, 7829, 7831, 7833, 7835, 7837, 7839, 7841, 7843,
7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863,
7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883,
7885, 7887, 7889, 7891, 7893, 7895
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
433, 0, -1, 434, -1, 434, 429, 435, -1, 435,
-1, 761, -1, 762, -1, 679, -1, 767, -1, 630,
-1, 570, -1, 573, -1, 579, -1, 593, -1, 598,
-1, 714, -1, 451, -1, 735, -1, 736, -1, 549,
-1, 478, -1, 489, -1, 445, -1, 443, -1, 770,
-1, 769, -1, 602, -1, 447, -1, 446, -1, 777,
-1, 476, -1, 492, -1, 772, -1, 653, -1, 473,
-1, 493, -1, 545, -1, 617, -1, 725, -1, 771,
-1, 766, -1, 567, -1, 574, -1, 588, -1, 594,
-1, 695, -1, 450, -1, 631, -1, 638, -1, 639,
-1, 556, -1, 454, -1, 548, -1, 508, -1, 564,
-1, 603, -1, 436, -1, 442, -1, 599, -1, 757,
-1, 794, -1, 813, -1, 619, -1, 800, -1, 477,
-1, 722, -1, 618, -1, 727, -1, 578, -1, 592,
-1, 453, -1, 642, -1, 643, -1, 644, -1, 562,
-1, 744, -1, 646, -1, 566, -1, 616, -1, 448,
-1, 449, -1, 601, -1, 765, -1, 792, -1, 783,
-1, 660, -1, 664, -1, 675, -1, 684, -1, 795,
-1, 747, -1, 756, -1, 802, -1, 745, -1, 789,
-1, 645, -1, 729, -1, 718, -1, 717, -1, 719,
-1, 732, -1, 665, -1, 676, -1, 737, -1, 656,
-1, 817, -1, 749, -1, 651, -1, 748, -1, 806,
-1, 774, -1, 469, -1, 458, -1, 472, -1, 754,
-1, -1, 83, 301, 967, 437, 438, -1, 392, -1,
-1, 438, 441, -1, -1, 439, 440, -1, -1, 264,
966, -1, 264, 237, -1, 125, 264, 966, -1, 365,
264, 966, -1, 175, -1, 75, 208, 968, -1, 376,
371, 966, -1, 373, 956, -1, 3, -1, 440, -1,
340, 965, -1, 19, 956, -1, 301, 956, -1, 170,
301, 956, -1, 170, 158, 956, -1, 83, 373, 967,
437, 438, -1, 24, 301, 967, 437, 439, -1, -1,
170, 97, 958, -1, 24, 301, 967, 444, 470, -1,
24, 373, 967, 437, 439, -1, 24, 373, 967, 470,
-1, 120, 301, 956, -1, 120, 301, 165, 134, 956,
-1, 120, 373, 956, -1, 120, 373, 165, 134, 956,
-1, 83, 158, 967, 437, 438, -1, 24, 158, 967,
452, 373, 956, -1, 18, -1, 120, -1, 120, 158,
956, -1, 120, 158, 165, 134, 956, -1, 83, 307,
455, 38, 967, 456, -1, 83, 307, 969, 456, -1,
969, -1, -1, 456, 457, -1, -1, 508, -1, 684,
-1, 548, -1, 603, -1, 664, -1, 754, -1, 319,
459, -1, 319, 211, 459, -1, 319, 317, 459, -1,
354, 752, -1, 317, 59, 31, 354, 752, -1, 460,
-1, 461, 352, 462, -1, 461, 413, 462, -1, 461,
352, 103, -1, 461, 413, 103, -1, 461, 150, 86,
-1, 350, 409, 466, -1, 55, 966, -1, 307, 966,
-1, 225, 467, -1, 301, 468, -1, 317, 38, 468,
-1, 317, 38, 103, -1, 397, 249, 903, -1, 354,
326, 966, -1, 969, -1, 461, 428, 969, -1, 463,
-1, 462, 430, 463, -1, 465, -1, 554, -1, 280,
364, -1, 280, 72, -1, 291, 280, -1, 315, -1,
358, -1, 139, -1, 246, -1, 468, -1, 966, -1,
3, -1, 890, 966, 892, -1, 890, 426, 965, 427,
966, 892, -1, 554, -1, 103, -1, 211, -1, 966,
-1, 103, -1, -1, 969, -1, 966, -1, 294, 461,
-1, 294, 350, 409, -1, 294, 354, 193, 206, -1,
294, 317, 38, -1, 294, 22, -1, 319, 459, -1,
469, -1, 319, 460, -1, 469, -1, 322, 461, -1,
322, 350, 409, -1, 322, 354, 193, 206, -1, 322,
317, 38, -1, 322, 22, -1, 319, 77, 474, 475,
-1, 22, -1, 954, -1, 106, -1, 167, -1, 61,
-1, 114, 22, -1, 114, 345, -1, 114, 347, -1,
114, 266, -1, 24, 342, 861, 479, -1, 24, 342,
165, 134, 861, 479, -1, 24, 173, 955, 479, -1,
24, 173, 165, 134, 955, 479, -1, 24, 313, 955,
479, -1, 24, 313, 165, 134, 955, 479, -1, 24,
386, 955, 479, -1, 24, 386, 165, 134, 955, 479,
-1, 480, -1, 479, 430, 480, -1, 18, 516, -1,
18, 68, 516, -1, 24, 733, 969, 481, -1, 24,
733, 969, 120, 232, 237, -1, 24, 733, 969, 319,
232, 237, -1, 24, 733, 969, 319, 332, 968, -1,
24, 733, 969, 319, 485, -1, 24, 733, 969, 294,
485, -1, 24, 733, 969, 319, 335, 969, -1, 120,
733, 165, 134, 969, 482, -1, 120, 733, 969, 482,
-1, 24, 733, 969, 734, 361, 870, 483, 484, -1,
24, 733, 969, 582, -1, 18, 525, -1, 377, 76,
957, -1, 120, 76, 165, 134, 957, 482, -1, 120,
76, 957, 482, -1, 319, 392, 245, -1, 319, 393,
245, -1, 64, 246, 957, -1, 319, 393, 64, -1,
123, 356, 957, -1, 123, 25, 356, 957, -1, 123,
293, 356, 957, -1, 123, 356, 22, -1, 123, 356,
373, -1, 113, 356, 957, -1, 113, 356, 22, -1,
113, 356, 373, -1, 123, 305, 957, -1, 123, 25,
305, 957, -1, 123, 293, 305, 957, -1, 113, 305,
957, -1, 175, 955, -1, 230, 175, 955, -1, 242,
649, -1, 232, 242, -1, 259, 352, 967, -1, 319,
344, 957, -1, 319, 485, -1, 294, 485, -1, 582,
-1, 319, 103, 894, -1, 120, 103, -1, 51, -1,
296, -1, -1, 66, 649, -1, -1, 374, 894, -1,
-1, 426, 487, 427, -1, 392, 485, -1, -1, 488,
-1, 487, 430, 488, -1, 971, 413, 623, -1, 971,
-1, 971, 428, 971, 413, 623, -1, 971, 428, 971,
-1, 24, 361, 649, 490, -1, 491, -1, 490, 430,
491, -1, 18, 37, 869, 482, -1, 120, 37, 165,
134, 969, 482, -1, 120, 37, 969, 482, -1, 24,
37, 969, 734, 361, 870, 483, 482, -1, 63, 814,
-1, 63, 22, -1, 81, 499, 955, 528, 500, 494,
495, 501, 437, 496, -1, 81, 818, 352, 495, 437,
496, -1, 150, -1, 352, -1, 966, -1, 333, -1,
334, -1, 497, -1, 426, 503, 427, -1, 497, 498,
-1, -1, 44, -1, 245, -1, 109, 768, 966, -1,
237, 768, 966, -1, 85, -1, 161, -1, 278, 768,
966, -1, 128, 768, 966, -1, 146, 278, 529, -1,
146, 278, 419, -1, 146, 232, 237, 529, -1, 124,
966, -1, 44, -1, -1, 392, 245, -1, -1, 502,
110, 966, -1, -1, 374, -1, -1, 504, -1, 503,
430, 504, -1, 971, 505, -1, 465, -1, 554, -1,
419, -1, 426, 506, 427, -1, -1, 507, -1, 506,
430, 507, -1, 465, -1, 83, 509, 342, 955, 426,
510, 427, 539, 540, 541, 542, -1, 83, 509, 342,
165, 232, 134, 955, 426, 510, 427, 539, 540, 541,
542, -1, 83, 509, 342, 955, 242, 649, 511, 540,
541, 542, -1, 83, 509, 342, 165, 232, 134, 955,
242, 649, 511, 540, 541, 542, -1, 347, -1, 345,
-1, 211, 347, -1, 211, 345, -1, 154, 347, -1,
154, 345, -1, 370, -1, -1, 512, -1, -1, 426,
513, 427, -1, -1, 514, -1, 512, 430, 514, -1,
515, -1, 513, 430, 515, -1, 516, -1, 522, -1,
525, -1, 517, -1, 525, -1, 969, 870, 580, 518,
-1, 969, 392, 250, 518, -1, 518, 519, -1, -1,
76, 957, 520, -1, 520, -1, 521, -1, 66, 649,
-1, 232, 237, -1, 237, -1, 367, 711, 543, -1,
273, 195, 711, 543, -1, 60, 426, 894, 427, 527,
-1, 103, 895, -1, 286, 955, 528, 531, 535, -1,
105, -1, 232, 105, -1, 177, 106, -1, 177, 167,
-1, 207, 955, 523, -1, 523, 171, 524, -1, 523,
131, 524, -1, -1, 104, -1, 77, -1, 174, -1,
335, -1, 70, -1, 22, -1, 76, 957, 526, -1,
526, -1, 60, 426, 894, 427, 614, -1, 367, 426,
529, 427, 711, 543, 614, -1, 367, 544, 614, -1,
273, 195, 426, 529, 427, 711, 543, 614, -1, 273,
195, 544, 614, -1, 130, 688, 426, 532, 427, 711,
543, 534, 614, -1, 147, 195, 426, 529, 427, 286,
955, 528, 531, 535, 614, -1, 230, 175, -1, -1,
426, 529, 427, -1, -1, 530, -1, 529, 430, 530,
-1, 969, -1, 217, 151, -1, 217, 261, -1, 217,
324, -1, -1, 533, -1, 532, 430, 533, -1, 690,
392, 721, -1, 690, 392, 248, 426, 721, 427, -1,
389, 426, 894, 427, -1, -1, 536, -1, 537, -1,
536, 537, -1, 537, 536, -1, -1, 246, 372, 538,
-1, 246, 108, 538, -1, 230, 17, -1, 296, -1,
51, -1, 319, 237, -1, 319, 103, -1, 176, 426,
954, 427, -1, -1, 392, 485, -1, 392, 245, -1,
393, 245, -1, -1, 246, 71, 120, -1, 246, 71,
108, 304, -1, 246, 71, 270, 304, -1, -1, 344,
957, -1, -1, 374, 173, 344, 957, -1, -1, 374,
173, 961, -1, 83, 509, 342, 546, 31, 817, 547,
-1, 955, 528, 540, 541, 542, -1, 392, 96, -1,
392, 230, 96, -1, -1, 83, 509, 313, 955, 550,
-1, 24, 313, 955, 551, -1, 24, 313, 165, 134,
955, 551, -1, 551, -1, -1, 552, -1, 551, 552,
-1, 49, 554, -1, 95, -1, 230, 95, -1, 172,
553, 554, -1, 218, 554, -1, 220, 554, -1, 230,
218, -1, 230, 220, -1, 258, 48, 649, -1, 330,
437, 554, -1, 295, -1, 295, 437, 554, -1, 48,
-1, -1, 4, -1, 418, 4, -1, 968, -1, 554,
-1, 555, 430, 554, -1, 83, 696, 557, 563, 197,
468, -1, 83, 696, 557, 563, 197, 468, 159, 558,
559, 561, -1, 360, -1, -1, 957, -1, 957, 650,
-1, 178, 558, -1, -1, 378, 558, -1, 230, 378,
-1, 560, -1, -1, 120, 563, 197, 468, 482, -1,
120, 563, 197, 165, 134, 468, 482, -1, 276, -1,
-1, 83, 344, 957, 565, 214, 966, -1, 259, 957,
-1, -1, 120, 344, 957, -1, 120, 344, 165, 134,
957, -1, 83, 136, 957, 437, 568, -1, 83, 136,
165, 232, 134, 957, 437, 568, -1, 568, 569, -1,
-1, 307, 957, -1, 385, 468, -1, 150, 468, -1,
24, 136, 957, 372, 571, -1, 571, 572, -1, -1,
352, 468, -1, 24, 136, 957, 452, 21, 963, 624,
-1, 24, 136, 957, 452, 54, 426, 870, 31, 870,
427, -1, 24, 136, 957, 452, 67, 649, -1, 24,
136, 957, 452, 80, 649, -1, 24, 136, 957, 452,
118, 649, -1, 24, 136, 957, 452, 152, 674, -1,
24, 136, 957, 452, 563, 197, 957, -1, 24, 136,
957, 452, 248, 721, 720, -1, 24, 136, 957, 452,
248, 62, 649, 374, 959, -1, 24, 136, 957, 452,
248, 140, 649, 374, 959, -1, 24, 136, 957, 452,
307, 957, -1, 24, 136, 957, 452, 342, 649, -1,
24, 136, 957, 452, 348, 309, 260, 649, -1, 24,
136, 957, 452, 348, 309, 112, 649, -1, 24, 136,
957, 452, 348, 309, 346, 649, -1, 24, 136, 957,
452, 348, 309, 74, 649, -1, 24, 136, 957, 452,
313, 649, -1, 24, 136, 957, 452, 386, 649, -1,
24, 136, 957, 452, 147, 342, 649, -1, 24, 136,
957, 452, 147, 96, 395, 957, -1, 24, 136, 957,
452, 316, 957, -1, 24, 136, 957, 452, 361, 649,
-1, 83, 147, 96, 395, 957, 577, 580, -1, 159,
558, -1, 230, 159, -1, 378, 558, -1, 230, 378,
-1, 575, -1, 576, 575, -1, 576, -1, -1, 120,
147, 96, 395, 957, 482, -1, 120, 147, 96, 395,
165, 134, 957, 482, -1, 24, 147, 96, 395, 957,
577, 582, -1, 24, 147, 96, 395, 957, 576, -1,
250, 426, 581, 427, -1, -1, 585, -1, 581, 430,
585, -1, 250, 426, 583, 427, -1, 584, -1, 583,
430, 584, -1, 585, -1, 319, 585, -1, 18, 585,
-1, 120, 586, -1, 586, 587, -1, 971, -1, 966,
-1, 83, 316, 957, 589, 591, 147, 96, 395, 957,
580, -1, 361, 966, -1, -1, 385, 966, -1, 385,
237, -1, 590, -1, -1, 120, 316, 957, 482, -1,
120, 316, 165, 134, 957, 482, -1, 24, 316, 957,
590, 582, -1, 24, 316, 957, 590, -1, 24, 316,
957, 582, -1, 83, 147, 342, 955, 595, 316, 957,
580, -1, 83, 147, 342, 165, 232, 134, 955, 595,
316, 957, 580, -1, 426, 596, 427, -1, 426, 427,
-1, 597, -1, 596, 430, 597, -1, 516, -1, 24,
147, 342, 861, 479, -1, 24, 147, 342, 165, 134,
861, 479, -1, 83, 373, 216, 145, 600, 316, 957,
580, -1, 93, -1, 373, -1, 967, -1, 120, 373,
216, 145, 600, 316, 957, -1, 120, 373, 216, 165,
134, 145, 600, 316, 957, -1, 24, 373, 216, 145,
600, 316, 957, 582, -1, 83, 356, 957, 604, 605,
246, 955, 607, 610, 133, 277, 963, 426, 611, 427,
-1, 83, 76, 356, 957, 20, 605, 246, 955, 613,
614, 145, 121, 303, 610, 133, 277, 963, 426, 611,
427, -1, 40, -1, 20, -1, 184, 242, -1, 606,
-1, 605, 251, 606, -1, 183, -1, 108, -1, 372,
-1, 372, 242, 529, -1, 359, -1, 145, 608, 609,
-1, -1, 121, -1, -1, 303, -1, 331, -1, 388,
426, 894, 427, -1, -1, 612, -1, 611, 430, 612,
-1, -1, 965, -1, 4, -1, 966, -1, 971, -1,
150, 955, -1, -1, -1, 614, 615, -1, 232, 105,
-1, 105, -1, 177, 167, -1, 177, 106, -1, 232,
376, -1, 230, 175, -1, 120, 356, 957, 246, 649,
482, -1, 120, 356, 165, 134, 957, 246, 649, 482,
-1, 83, 33, 957, 60, 426, 894, 427, 614, -1,
120, 33, 957, 482, -1, 83, 21, 963, 624, 620,
-1, 83, 21, 963, 625, -1, 83, 248, 721, 620,
-1, 83, 361, 649, 620, -1, 83, 361, 649, -1,
83, 361, 649, 31, 426, 867, 427, -1, 83, 361,
649, 31, 127, 426, 628, 427, -1, 83, 361, 649,
31, 279, 620, -1, 83, 348, 309, 260, 649, 620,
-1, 83, 348, 309, 112, 649, 620, -1, 83, 348,
309, 346, 649, 620, -1, 83, 348, 309, 74, 649,
620, -1, 83, 67, 649, 620, -1, 83, 67, 649,
150, 649, -1, 426, 621, 427, -1, 622, -1, 621,
430, 622, -1, 971, 413, 623, -1, 971, -1, 705,
-1, 975, -1, 921, -1, 554, -1, 966, -1, 426,
926, 427, -1, 426, 419, 427, -1, 426, 626, 427,
-1, 627, -1, 626, 430, 627, -1, 3, 413, 623,
-1, 629, -1, -1, 966, -1, 629, 430, 966, -1,
24, 361, 649, 18, 379, 966, -1, 24, 361, 649,
18, 379, 966, 40, 966, -1, 24, 361, 649, 18,
379, 966, 20, 966, -1, 83, 248, 62, 649, 634,
145, 361, 870, 374, 959, 635, 31, 632, -1, 633,
-1, 632, 430, 633, -1, 248, 965, 721, 636, 637,
-1, 248, 965, 721, 720, 636, 637, -1, 152, 965,
963, 697, -1, 152, 965, 426, 926, 427, 963, 697,
-1, 335, 870, -1, 103, -1, -1, 140, 649, -1,
-1, 145, 309, -1, 145, 252, 48, 649, -1, -1,
283, -1, -1, 83, 248, 140, 649, 374, 959, -1,
24, 248, 140, 649, 374, 959, 18, 632, -1, 24,
248, 140, 649, 374, 959, 120, 640, -1, 641, -1,
640, 430, 641, -1, 248, 965, 426, 926, 427, -1,
152, 965, 426, 926, 427, -1, 120, 248, 62, 649,
374, 959, 482, -1, 120, 248, 62, 165, 134, 649,
374, 959, 482, -1, 120, 248, 140, 649, 374, 959,
482, -1, 120, 248, 140, 165, 134, 649, 374, 959,
482, -1, 120, 258, 48, 956, 482, -1, 282, 258,
48, 956, 352, 957, -1, 120, 647, 165, 134, 648,
482, -1, 120, 647, 648, 482, -1, 120, 173, 73,
648, 482, -1, 120, 173, 73, 165, 134, 648, 482,
-1, 342, -1, 313, -1, 386, -1, 173, -1, 147,
342, -1, 361, -1, 118, -1, 67, -1, 80, -1,
307, -1, 136, -1, 348, 309, 260, -1, 348, 309,
112, -1, 348, 309, 346, -1, 348, 309, 74, -1,
649, -1, 648, 430, 649, -1, 969, -1, 969, 650,
-1, 428, 960, -1, 650, 428, 960, -1, 359, 828,
862, 652, 482, -1, 79, 164, -1, 295, 164, -1,
-1, 69, 246, 654, 649, 191, 655, -1, 69, 246,
21, 963, 624, 191, 655, -1, 69, 246, 152, 963,
697, 191, 655, -1, 69, 246, 248, 721, 720, 191,
655, -1, 69, 246, 76, 957, 246, 649, 191, 655,
-1, 69, 246, 305, 957, 246, 649, 191, 655, -1,
69, 246, 305, 957, 191, 655, -1, 69, 246, 356,
957, 246, 649, 191, 655, -1, 69, 246, 248, 62,
649, 374, 959, 191, 655, -1, 69, 246, 248, 140,
649, 374, 959, 191, 655, -1, 69, 246, 198, 241,
554, 191, 655, -1, 69, 246, 54, 426, 870, 31,
870, 427, 191, 655, -1, 69, 246, 563, 197, 649,
191, 655, -1, 69, 246, 348, 309, 260, 649, 191,
655, -1, 69, 246, 348, 309, 112, 649, 191, 655,
-1, 69, 246, 348, 309, 346, 649, 191, 655, -1,
69, 246, 348, 309, 74, 649, 191, 655, -1, 68,
-1, 97, -1, 307, -1, 173, -1, 313, -1, 342,
-1, 118, -1, 361, -1, 386, -1, 67, -1, 80,
-1, 344, -1, 136, -1, 301, -1, 147, 342, -1,
316, -1, 147, 96, 395, -1, 966, -1, 237, -1,
311, 196, 657, 246, 658, 649, 191, 659, -1, 311,
196, 657, 246, 21, 963, 624, 191, 659, -1, 311,
196, 657, 246, 152, 963, 697, 191, 659, -1, 311,
196, 657, 246, 198, 241, 554, 191, 659, -1, 311,
196, 657, 246, 563, 197, 649, 191, 659, -1, 145,
468, -1, -1, 68, -1, 97, -1, 147, 342, -1,
307, -1, 313, -1, 342, -1, 118, -1, 301, -1,
344, -1, 361, -1, 386, -1, 966, -1, 237, -1,
141, 661, -1, 223, 661, -1, 814, -1, 662, 814,
-1, 229, 663, 814, -1, 274, 663, 814, -1, 142,
663, 814, -1, 199, 663, 814, -1, 15, 968, 663,
814, -1, 288, 968, 663, 814, -1, 968, 663, 814,
-1, 22, 663, 814, -1, 148, 663, 814, -1, 148,
968, 663, 814, -1, 148, 22, 663, 814, -1, 39,
663, 814, -1, 39, 968, 663, 814, -1, 39, 22,
663, 814, -1, 150, -1, 170, -1, 662, -1, -1,
155, 666, 246, 669, 352, 670, 672, -1, 299, 666,
246, 669, 150, 670, 482, -1, 299, 155, 249, 145,
666, 246, 669, 150, 670, 482, -1, 667, -1, 22,
-1, 22, 275, -1, 22, 426, 529, 427, -1, 22,
275, 426, 529, 427, -1, 668, -1, 667, 430, 668,
-1, 312, 528, -1, 286, 528, -1, 83, 528, -1,
969, 528, -1, 954, -1, 342, 954, -1, 313, 954,
-1, 147, 96, 395, 956, -1, 147, 316, 956, -1,
152, 673, -1, 97, 956, -1, 118, 648, -1, 197,
956, -1, 198, 241, 555, -1, 307, 956, -1, 344,
956, -1, 361, 648, -1, 22, 343, 170, 307, 956,
-1, 22, 314, 170, 307, 956, -1, 22, 153, 170,
307, 956, -1, 671, -1, 670, 430, 671, -1, 967,
-1, 158, 967, -1, 392, 155, 249, -1, -1, 674,
-1, 673, 430, 674, -1, 963, 697, -1, 155, 667,
352, 956, 677, 678, -1, 299, 667, 150, 956, 678,
482, -1, 299, 19, 249, 145, 667, 150, 956, 678,
482, -1, 392, 19, 249, -1, -1, 156, 48, 967,
-1, -1, 24, 103, 275, 680, 682, -1, 680, 681,
-1, -1, 170, 307, 956, -1, 145, 301, 956, -1,
145, 373, 956, -1, 155, 666, 246, 683, 352, 670,
672, -1, 299, 666, 246, 683, 150, 670, 482, -1,
299, 155, 249, 145, 666, 246, 683, 150, 670, 482,
-1, 343, -1, 153, -1, 314, -1, 362, -1, 83,
685, 173, 686, 687, 246, 955, 688, 426, 689, 427,
486, 542, 865, -1, 367, -1, -1, 73, -1, -1,
961, -1, -1, 374, 959, -1, -1, 690, -1, 689,
430, 690, -1, 969, 691, 692, 693, 694, -1, 897,
691, 692, 693, 694, -1, 426, 894, 427, 691, 692,
693, 694, -1, 66, 649, -1, -1, 649, -1, 374,
649, -1, -1, 32, -1, 111, -1, -1, 410, -1,
411, -1, -1, 83, 696, 152, 963, 699, 298, 704,
707, 711, -1, 83, 696, 152, 963, 699, 298, 342,
426, 713, 427, 707, 711, -1, 83, 696, 152, 963,
699, 707, 711, -1, 251, 292, -1, -1, 426, 698,
427, -1, 426, 427, -1, 701, -1, 698, 430, 701,
-1, 426, 700, 427, -1, 426, 427, -1, 706, -1,
700, 430, 706, -1, 702, 703, 705, -1, 703, 702,
705, -1, 703, 705, -1, 702, 705, -1, 705, -1,
170, -1, 253, -1, 180, -1, 170, 253, -1, 382,
-1, 970, -1, 705, -1, 870, -1, 970, 650, 421,
361, -1, 320, 970, 650, 421, 361, -1, 701, -1,
701, 103, 894, -1, 701, 413, 894, -1, 709, -1,
707, 709, -1, 50, 246, 237, 181, -1, 298, 237,
246, 237, 181, -1, 336, -1, 168, -1, 328, -1,
387, -1, 137, 311, 107, -1, 137, 311, 190, -1,
311, 107, -1, 311, 190, -1, 203, -1, 232, 203,
-1, 82, 554, -1, 304, 554, -1, 471, -1, 31,
710, -1, 197, 468, -1, 391, -1, 708, -1, 966,
-1, 966, 430, 966, -1, 392, 620, -1, -1, 703,
705, -1, 712, -1, 713, 430, 712, -1, 24, 152,
674, 715, 716, -1, 708, -1, 715, 708, -1, 296,
-1, -1, 120, 152, 963, 697, 482, -1, 120, 152,
165, 134, 963, 697, 482, -1, 120, 21, 963, 624,
482, -1, 120, 21, 165, 134, 963, 624, 482, -1,
120, 248, 721, 720, 482, -1, 120, 248, 165, 134,
721, 720, 482, -1, 426, 870, 427, -1, 426, 870,
430, 870, 427, -1, 426, 231, 430, 870, 427, -1,
426, 870, 430, 231, 427, -1, 918, -1, 969, 428,
721, -1, 116, 723, -1, 724, -1, 723, 724, -1,
966, -1, 197, 468, -1, 83, 54, 426, 870, 31,
870, 427, 392, 152, 674, 726, -1, 83, 54, 426,
870, 31, 870, 427, 393, 152, 726, -1, 83, 54,
426, 870, 31, 870, 427, 392, 180, 726, -1, 31,
169, -1, 31, 34, -1, -1, 120, 54, 728, 426,
870, 31, 870, 427, 482, -1, 165, 134, -1, -1,
287, 730, 955, 731, -1, 287, 341, 957, 731, -1,
287, 97, 957, 731, -1, 173, -1, 342, -1, 146,
-1, -1, 24, 21, 963, 624, 290, 352, 957, -1,
24, 67, 649, 290, 352, 957, -1, 24, 80, 649,
290, 352, 957, -1, 24, 97, 958, 290, 352, 958,
-1, 24, 118, 649, 290, 352, 957, -1, 24, 118,
649, 290, 76, 957, 352, 957, -1, 24, 147, 96,
395, 957, 290, 352, 957, -1, 24, 152, 674, 290,
352, 957, -1, 24, 158, 967, 290, 352, 967, -1,
24, 563, 197, 957, 290, 352, 957, -1, 24, 248,
62, 649, 374, 959, 290, 352, 957, -1, 24, 248,
140, 649, 374, 959, 290, 352, 957, -1, 24, 307,
957, 290, 352, 957, -1, 24, 316, 957, 290, 352,
957, -1, 24, 342, 861, 290, 352, 957, -1, 24,
342, 165, 134, 861, 290, 352, 957, -1, 24, 313,
955, 290, 352, 957, -1, 24, 313, 165, 134, 955,
290, 352, 957, -1, 24, 386, 955, 290, 352, 957,
-1, 24, 386, 165, 134, 955, 290, 352, 957, -1,
24, 173, 955, 290, 352, 957, -1, 24, 173, 165,
134, 955, 290, 352, 957, -1, 24, 147, 342, 861,
290, 352, 957, -1, 24, 147, 342, 165, 134, 861,
290, 352, 957, -1, 24, 342, 861, 290, 733, 957,
352, 957, -1, 24, 342, 165, 134, 861, 290, 733,
957, 352, 957, -1, 24, 342, 861, 290, 76, 957,
352, 957, -1, 24, 147, 342, 861, 290, 733, 957,
352, 957, -1, 24, 147, 342, 165, 134, 861, 290,
733, 957, 352, 957, -1, 24, 356, 957, 246, 955,
290, 352, 957, -1, 24, 301, 967, 290, 352, 967,
-1, 24, 373, 967, 290, 352, 967, -1, 24, 344,
957, 290, 352, 957, -1, 24, 344, 957, 319, 485,
-1, 24, 344, 957, 294, 485, -1, 24, 348, 309,
260, 649, 290, 352, 957, -1, 24, 348, 309, 112,
649, 290, 352, 957, -1, 24, 348, 309, 346, 649,
290, 352, 957, -1, 24, 348, 309, 74, 649, 290,
352, 957, -1, 24, 361, 649, 290, 352, 957, -1,
24, 361, 649, 290, 37, 957, 352, 957, 482, -1,
68, -1, -1, 319, 96, -1, -1, 24, 21, 963,
624, 319, 307, 957, -1, 24, 67, 649, 319, 307,
957, -1, 24, 80, 649, 319, 307, 957, -1, 24,
118, 649, 319, 307, 957, -1, 24, 136, 649, 319,
307, 957, -1, 24, 152, 674, 319, 307, 957, -1,
24, 248, 721, 720, 319, 307, 957, -1, 24, 248,
62, 649, 374, 959, 319, 307, 957, -1, 24, 248,
140, 649, 374, 959, 319, 307, 957, -1, 24, 342,
861, 319, 307, 957, -1, 24, 342, 165, 134, 861,
319, 307, 957, -1, 24, 348, 309, 260, 649, 319,
307, 957, -1, 24, 348, 309, 112, 649, 319, 307,
957, -1, 24, 348, 309, 346, 649, 319, 307, 957,
-1, 24, 348, 309, 74, 649, 319, 307, 957, -1,
24, 313, 955, 319, 307, 957, -1, 24, 313, 165,
134, 955, 319, 307, 957, -1, 24, 386, 955, 319,
307, 957, -1, 24, 386, 165, 134, 955, 319, 307,
957, -1, 24, 147, 342, 861, 319, 307, 957, -1,
24, 147, 342, 165, 134, 861, 319, 307, 957, -1,
24, 361, 649, 319, 307, 957, -1, 24, 21, 963,
624, 259, 352, 967, -1, 24, 67, 649, 259, 352,
967, -1, 24, 80, 649, 259, 352, 967, -1, 24,
97, 958, 259, 352, 967, -1, 24, 118, 649, 259,
352, 967, -1, 24, 152, 674, 259, 352, 967, -1,
24, 563, 197, 957, 259, 352, 967, -1, 24, 198,
241, 554, 259, 352, 967, -1, 24, 248, 721, 720,
259, 352, 967, -1, 24, 248, 62, 649, 374, 959,
259, 352, 967, -1, 24, 248, 140, 649, 374, 959,
259, 352, 967, -1, 24, 307, 957, 259, 352, 967,
-1, 24, 361, 649, 259, 352, 967, -1, 24, 344,
957, 259, 352, 967, -1, 24, 348, 309, 112, 649,
259, 352, 967, -1, 24, 348, 309, 74, 649, 259,
352, 967, -1, 24, 147, 96, 395, 957, 259, 352,
967, -1, 24, 316, 957, 259, 352, 967, -1, 83,
696, 305, 957, 31, 246, 742, 352, 955, 865, 116,
743, 738, -1, 233, -1, 740, -1, 426, 739, 427,
-1, 739, 429, 741, -1, 741, -1, 817, -1, 795,
-1, 806, -1, 800, -1, 745, -1, 740, -1, -1,
312, -1, 372, -1, 108, -1, 183, -1, 184, -1,
23, -1, -1, 120, 305, 957, 246, 649, 482, -1,
120, 305, 165, 134, 957, 246, 649, 482, -1, 234,
969, 746, -1, 430, 966, -1, -1, 209, 969, -1,
369, 969, -1, 369, 419, -1, 14, 750, -1, 41,
750, 753, -1, 330, 354, 753, -1, 71, 750, -1,
126, 750, -1, 302, 750, -1, 306, 969, -1, 289,
306, 969, -1, 289, 969, -1, 302, 750, 352, 306,
969, -1, 302, 750, 352, 969, -1, 271, 354, 966,
-1, 71, 272, 966, -1, 302, 272, 966, -1, 394,
-1, 354, -1, -1, 193, 206, 464, -1, 280, 247,
-1, 280, 396, -1, 105, -1, 232, 105, -1, 751,
-1, 752, 430, 751, -1, 752, 751, -1, 752, -1,
-1, 83, 509, 386, 955, 528, 486, 31, 817, 755,
-1, 83, 251, 292, 509, 386, 955, 528, 486, 31,
817, 755, -1, 392, 60, 249, -1, 392, 52, 60,
249, -1, 392, 211, 60, 249, -1, -1, 210, 962,
-1, 83, 97, 958, 437, 758, -1, 758, 759, -1,
-1, 344, 760, 957, -1, 344, 760, 103, -1, 214,
760, 966, -1, 214, 760, 103, -1, 346, 760, 957,
-1, 346, 760, 103, -1, 124, 760, 966, -1, 124,
760, 965, -1, 124, 760, 103, -1, 200, 760, 966,
-1, 200, 760, 103, -1, 201, 760, 966, -1, 201,
760, 103, -1, 75, 208, 760, 968, -1, 259, 760,
957, -1, 259, 760, 103, -1, 413, -1, -1, 24,
97, 958, 437, 763, -1, 24, 97, 958, 319, 344,
957, -1, 24, 97, 958, 470, -1, 763, 764, -1,
-1, 75, 208, 760, 968, -1, 120, 97, 958, -1,
120, 97, 165, 134, 958, -1, 83, 118, 649, 768,
870, 518, -1, 24, 118, 649, 481, -1, 24, 118,
649, 120, 232, 237, -1, 24, 118, 649, 319, 232,
237, -1, 24, 118, 649, 18, 525, -1, 24, 118,
649, 120, 76, 957, 482, -1, 24, 118, 649, 120,
76, 165, 134, 957, 482, -1, 24, 118, 649, 377,
76, 957, -1, 31, -1, -1, 24, 348, 309, 112,
649, 620, -1, 24, 348, 309, 74, 649, 18, 216,
145, 956, 392, 648, -1, 24, 348, 309, 74, 649,
24, 216, 145, 956, 392, 648, -1, 24, 348, 309,
74, 649, 24, 216, 292, 649, 392, 649, -1, 24,
348, 309, 74, 649, 24, 216, 145, 956, 292, 649,
392, 649, -1, 24, 348, 309, 74, 649, 120, 216,
145, 956, -1, 24, 348, 309, 74, 649, 120, 216,
165, 134, 145, 956, -1, 83, 634, 80, 649, 145,
966, 352, 966, 150, 649, -1, 64, 779, 955, 773,
-1, 64, 779, -1, 64, 779, 961, 246, 955, -1,
374, 961, -1, -1, 375, 780, 781, 779, -1, 375,
780, 781, 779, 955, -1, 375, 780, 781, 779, 777,
-1, 375, 426, 775, 427, -1, 375, 426, 775, 427,
955, 782, -1, 776, -1, 775, 430, 776, -1, 778,
-1, 384, -1, 149, -1, 151, -1, 778, 779, -1,
778, 779, 955, 782, -1, 27, -1, 26, -1, 384,
-1, -1, 151, -1, -1, 149, -1, -1, 426, 956,
427, -1, -1, 135, 784, -1, 135, 778, 779, 784,
-1, 135, 384, 784, -1, 135, 426, 785, 427, 784,
-1, 817, -1, 795, -1, 806, -1, 800, -1, 813,
-1, 545, -1, 792, -1, 786, -1, 785, 430, 786,
-1, 787, 788, -1, 969, -1, 778, -1, 384, -1,
465, -1, 554, -1, -1, 271, 957, 790, 31, 791,
-1, 426, 926, 427, -1, -1, 817, -1, 795, -1,
806, -1, 800, -1, 133, 957, 793, -1, 83, 509,
342, 546, 31, 133, 957, 793, 547, -1, 426, 923,
427, -1, -1, 99, 957, -1, 99, 271, 957, -1,
99, 22, -1, 99, 271, 22, -1, 825, 183, 189,
955, 796, 799, -1, 817, -1, 426, 797, 427, 817,
-1, 103, 380, -1, 798, -1, 797, 430, 798, -1,
969, 947, -1, 297, 952, -1, -1, 825, 108, 150,
863, 801, 866, 799, -1, 374, 854, -1, -1, 215,
828, 862, 803, 805, -1, 170, 804, 221, -1, -1,
16, 321, -1, 303, 321, -1, 303, 132, -1, 321,
372, 132, -1, 321, -1, 321, 303, 132, -1, 132,
-1, 16, 132, -1, 236, -1, -1, 825, 372, 863,
319, 807, 853, 866, 799, -1, 808, -1, 807, 430,
808, -1, 809, -1, 810, -1, 811, 413, 949, -1,
426, 812, 427, 413, 951, -1, 969, 947, -1, 811,
-1, 812, 430, 811, -1, 102, 814, 815, 94, 816,
145, 817, -1, 957, -1, -1, 815, 230, 308, -1,
815, 308, -1, 815, 44, -1, 815, 182, -1, -1,
392, 162, -1, 393, 162, -1, 819, -1, 818, -1,
426, 819, 427, -1, 426, 818, 427, -1, 821, -1,
820, 832, -1, 820, 831, 847, 836, -1, 820, 831,
835, 848, -1, 822, 820, -1, 822, 820, 832, -1,
822, 820, 831, 847, 836, -1, 822, 820, 831, 835,
848, -1, 821, -1, 818, -1, 312, 830, 952, 826,
853, 865, 845, 846, 906, -1, 852, -1, 342, 861,
-1, 820, 366, 829, 820, -1, 820, 187, 829, 820,
-1, 820, 129, 829, 820, -1, 392, 823, -1, 392,
284, 823, -1, 824, -1, 823, 430, 824, -1, 957,
782, 31, 426, 791, 427, -1, 822, -1, -1, 189,
827, -1, -1, 347, 828, 955, -1, 345, 828, 955,
-1, 211, 347, 828, 955, -1, 211, 345, 828, 955,
-1, 154, 347, 828, 955, -1, 154, 345, 828, 955,
-1, 370, 828, 955, -1, 342, 955, -1, 955, -1,
342, -1, -1, 22, -1, 115, -1, -1, 115, -1,
115, 246, 426, 923, 427, -1, 22, -1, -1, 832,
-1, -1, 252, 48, 833, -1, 834, -1, 833, 430,
834, -1, 894, 374, 921, 694, -1, 894, 693, 694,
-1, 837, 838, -1, 838, 837, -1, 837, -1, 838,
-1, 835, -1, -1, 208, 839, -1, 208, 839, 430,
840, -1, 141, 844, 841, 843, 247, -1, 244, 840,
-1, 244, 842, 843, -1, 894, -1, 22, -1, 894,
-1, 968, -1, 426, 894, 427, -1, -1, 896, -1,
303, -1, 304, -1, 142, -1, 229, -1, 158, 48,
923, -1, -1, 160, 894, -1, -1, 849, -1, 145,
280, 247, -1, 847, -1, -1, 850, -1, 849, 850,
-1, 145, 372, 851, 805, -1, 145, 321, 851, 805,
-1, 242, 954, -1, -1, 380, 951, -1, 852, 430,
951, -1, 150, 854, -1, -1, 855, -1, 854, 430,
855, -1, 861, -1, 861, 857, -1, 864, -1, 864,
857, -1, 864, 31, 426, 868, 427, -1, 864, 31,
969, 426, 868, 427, -1, 864, 969, 426, 868, 427,
-1, 818, -1, 818, 857, -1, 856, -1, 426, 856,
427, 857, -1, 426, 856, 427, -1, 855, 84, 194,
855, -1, 855, 858, 194, 855, 860, -1, 855, 194,
855, 860, -1, 855, 227, 858, 194, 855, -1, 855,
227, 194, 855, -1, 31, 969, 426, 956, 427, -1,
31, 969, -1, 969, 426, 956, 427, -1, 969, -1,
151, 859, -1, 205, 859, -1, 300, 859, -1, 179,
-1, 254, -1, -1, 374, 426, 956, 427, -1, 246,
894, -1, 955, -1, 955, 419, -1, 247, 955, -1,
247, 426, 955, 427, -1, 861, -1, 862, 430, 861,
-1, 861, -1, 861, 969, -1, 861, 31, 969, -1,
897, -1, 389, 894, -1, -1, 389, 894, -1, 389,
86, 242, 814, -1, -1, 868, -1, -1, 869, -1,
868, 430, 869, -1, 969, 870, 483, -1, 872, 871,
-1, 320, 872, 871, -1, 872, 30, 424, 965, 425,
-1, 320, 872, 30, 424, 965, 425, -1, 872, 30,
-1, 320, 872, 30, -1, 871, 424, 425, -1, 871,
424, 965, 425, -1, -1, 874, -1, 876, -1, 878,
-1, 882, -1, 889, -1, 890, 892, -1, 890, 426,
965, 427, 892, -1, 876, -1, 879, -1, 883, -1,
889, -1, 970, 875, -1, 970, 650, 875, -1, 426,
923, 427, -1, -1, 185, -1, 186, -1, 325, -1,
43, -1, 281, -1, 143, 877, -1, 119, 269, -1,
101, 875, -1, 100, 875, -1, 240, 875, -1, 46,
-1, 426, 965, 427, -1, -1, 880, -1, 881, -1,
880, -1, 881, -1, 45, 887, 426, 923, 427, -1,
45, 887, -1, 884, -1, 885, -1, 884, -1, 885,
-1, 886, 426, 965, 427, 888, -1, 886, 888, -1,
58, 887, -1, 57, 887, -1, 381, -1, 226, 58,
887, -1, 226, 57, 887, -1, 228, 887, -1, 383,
-1, -1, 58, 319, 969, -1, -1, 351, 426, 965,
427, 891, -1, 351, 891, -1, 350, 426, 965, 427,
891, -1, 350, 891, -1, 188, -1, 412, 409, -1,
393, 350, 409, -1, -1, 407, -1, 222, -1, 98,
-1, 163, -1, 219, -1, 893, -1, 407, 352, 222,
-1, 98, 352, 163, -1, 98, 352, 219, -1, 98,
352, 893, -1, 163, 352, 219, -1, 163, 352, 893,
-1, 219, 352, 893, -1, -1, 310, -1, 310, 426,
965, 427, -1, 896, -1, 894, 11, 870, -1, 894,
66, 649, -1, 894, 36, 350, 409, 894, -1, 417,
894, -1, 418, 894, -1, 894, 417, 894, -1, 894,
418, 894, -1, 894, 419, 894, -1, 894, 420, 894,
-1, 894, 421, 894, -1, 894, 422, 894, -1, 894,
414, 894, -1, 894, 415, 894, -1, 894, 413, 894,
-1, 894, 920, 894, -1, 920, 894, -1, 894, 920,
-1, 894, 28, 894, -1, 894, 251, 894, -1, 232,
894, -1, 894, 207, 894, -1, 894, 207, 894, 128,
894, -1, 894, 232, 207, 894, -1, 894, 232, 207,
894, 128, 894, -1, 894, 166, 894, -1, 894, 166,
894, 128, 894, -1, 894, 232, 166, 894, -1, 894,
232, 166, 894, 128, 894, -1, 894, 323, 352, 894,
-1, 894, 323, 352, 894, 128, 894, -1, 894, 232,
323, 352, 894, -1, 894, 232, 323, 352, 894, 128,
894, -1, 894, 191, 237, -1, 894, 192, -1, 894,
191, 232, 237, -1, 894, 235, -1, 916, 256, 916,
-1, 894, 191, 358, -1, 894, 191, 232, 358, -1,
894, 191, 139, -1, 894, 191, 232, 139, -1, 894,
191, 368, -1, 894, 191, 232, 368, -1, 894, 191,
115, 150, 894, -1, 894, 191, 232, 115, 150, 894,
-1, 894, 191, 242, 426, 926, 427, -1, 894, 191,
232, 242, 426, 926, 427, -1, 894, 42, 948, 895,
28, 895, -1, 894, 232, 42, 948, 895, 28, 895,
-1, 894, 42, 339, 895, 28, 895, -1, 894, 232,
42, 339, 895, 28, 895, -1, 894, 170, 938, -1,
894, 232, 170, 938, -1, 894, 922, 917, 818, -1,
894, 922, 917, 426, 894, 427, -1, 367, 818, -1,
894, 191, 117, -1, 894, 191, 232, 117, -1, 896,
-1, 895, 11, 870, -1, 417, 895, -1, 418, 895,
-1, 895, 417, 895, -1, 895, 418, 895, -1, 895,
419, 895, -1, 895, 420, 895, -1, 895, 421, 895,
-1, 895, 422, 895, -1, 895, 414, 895, -1, 895,
415, 895, -1, 895, 413, 895, -1, 895, 920, 895,
-1, 920, 895, -1, 895, 920, -1, 895, 191, 115,
150, 895, -1, 895, 191, 232, 115, 150, 895, -1,
895, 191, 242, 426, 926, 427, -1, 895, 191, 232,
242, 426, 926, 427, -1, 895, 191, 117, -1, 895,
191, 232, 117, -1, 944, -1, 964, -1, 10, 947,
-1, 426, 894, 427, 947, -1, 939, -1, 897, -1,
818, -1, 818, 946, -1, 134, 818, -1, 30, 818,
-1, 30, 927, -1, 916, -1, 963, 426, 427, 909,
-1, 963, 426, 924, 427, 909, -1, 963, 426, 382,
925, 427, 909, -1, 963, 426, 924, 430, 382, 925,
427, 909, -1, 963, 426, 924, 832, 427, 909, -1,
963, 426, 22, 924, 831, 427, 909, -1, 963, 426,
115, 924, 831, 427, 909, -1, 963, 426, 419, 427,
909, -1, 67, 145, 426, 894, 427, -1, 88, -1,
91, -1, 91, 426, 965, 427, -1, 92, -1, 92,
426, 965, 427, -1, 212, -1, 212, 426, 965, 427,
-1, 213, -1, 213, 426, 965, 427, -1, 89, -1,
93, -1, 318, -1, 373, -1, 87, -1, 90, -1,
54, 426, 894, 31, 870, 427, -1, 138, 426, 929,
427, -1, 257, 426, 931, 427, -1, 267, 426, 933,
427, -1, 338, 426, 934, 427, -1, 355, 426, 894,
31, 870, 427, -1, 357, 426, 47, 937, 427, -1,
357, 426, 202, 937, 427, -1, 357, 426, 353, 937,
427, -1, 357, 426, 937, 427, -1, 238, 426, 894,
430, 894, 427, -1, 65, 426, 923, 427, -1, 157,
426, 923, 427, -1, 204, 426, 923, 427, -1, 399,
426, 923, 427, -1, 400, 426, 224, 971, 427, -1,
400, 426, 224, 971, 430, 900, 427, -1, 400, 426,
224, 971, 430, 923, 427, -1, 400, 426, 224, 971,
430, 900, 430, 923, 427, -1, 401, 426, 896, 905,
427, -1, 402, 426, 901, 427, -1, 403, 426, 903,
894, 904, 427, -1, 404, 426, 224, 971, 427, -1,
404, 426, 224, 971, 430, 894, 427, -1, 405, 426,
894, 430, 898, 899, 427, -1, 406, 426, 903, 894,
31, 872, 427, -1, 385, 894, -1, 385, 230, 379,
-1, 430, 329, 408, -1, 430, 329, 230, -1, 430,
329, 230, 379, -1, -1, 398, 426, 901, 427, -1,
902, -1, 901, 430, 902, -1, 894, 31, 971, -1,
894, -1, 117, -1, 78, -1, 270, 390, -1, 337,
390, -1, -1, 263, 896, -1, 263, 896, 48, 285,
-1, 263, 48, 285, 896, -1, 263, 48, 285, 896,
48, 285, -1, 391, 907, -1, -1, 908, -1, 907,
430, 908, -1, 969, 31, 910, -1, 255, 910, -1,
255, 969, -1, -1, 426, 911, 912, 831, 913, 427,
-1, 969, -1, -1, 262, 48, 923, -1, -1, 279,
914, -1, 304, 914, -1, -1, 915, -1, 42, 915,
28, 915, -1, 363, 268, -1, 363, 144, -1, 86,
303, -1, 894, 268, -1, 894, 144, -1, 303, 426,
923, 427, -1, 303, 426, 427, -1, 426, 923, 430,
894, 427, -1, 29, -1, 327, -1, 22, -1, 8,
-1, 919, -1, 417, -1, 418, -1, 419, -1, 420,
-1, 421, -1, 422, -1, 414, -1, 415, -1, 413,
-1, 8, -1, 248, 426, 721, 427, -1, 918, -1,
248, 426, 721, 427, -1, 918, -1, 248, 426, 721,
427, -1, 207, -1, 232, 207, -1, 166, -1, 232,
166, -1, 894, -1, 923, 430, 894, -1, 925, -1,
924, 430, 925, -1, 894, -1, 703, 13, 894, -1,
870, -1, 926, 430, 870, -1, 424, 923, 425, -1,
424, 928, 425, -1, 424, 425, -1, 927, -1, 928,
430, 927, -1, 930, 150, 894, -1, -1, 3, -1,
407, -1, 222, -1, 98, -1, 163, -1, 219, -1,
310, -1, 966, -1, 894, 932, 935, 936, -1, 894,
932, 935, -1, 265, 894, -1, 895, 170, 895, -1,
-1, 894, 935, 936, -1, 894, 936, 935, -1, 894,
935, -1, 894, 936, -1, 923, -1, -1, 150, 894,
-1, 145, 894, -1, 894, 150, 923, -1, 150, 923,
-1, 923, -1, 818, -1, 426, 923, 427, -1, 53,
943, 940, 942, 126, -1, 941, -1, 940, 941, -1,
388, 894, 349, 894, -1, 122, 894, -1, -1, 894,
-1, -1, 969, -1, 969, 946, -1, 428, 960, -1,
428, 419, -1, 424, 894, 425, -1, 424, 894, 431,
894, 425, -1, 945, -1, 946, 945, -1, -1, 947,
945, -1, 35, -1, -1, 894, -1, 103, -1, 949,
-1, 950, 430, 949, -1, 426, 950, 427, -1, 953,
-1, 952, 430, 953, -1, 894, 31, 971, -1, 894,
3, -1, 894, -1, 419, -1, 955, -1, 954, 430,
955, -1, 969, -1, 969, 946, -1, 957, -1, 956,
430, 957, -1, 969, -1, 969, -1, 969, -1, 971,
-1, 969, -1, 966, -1, 970, -1, 969, 946, -1,
965, -1, 4, -1, 966, -1, 6, -1, 7, -1,
963, 966, -1, 963, 426, 924, 427, 966, -1, 873,
966, -1, 890, 966, 892, -1, 890, 426, 965, 427,
966, 892, -1, 358, -1, 139, -1, 237, -1, 9,
-1, 5, -1, 969, -1, 965, -1, 417, 965, -1,
418, 965, -1, 3, -1, 972, -1, 973, -1, 3,
-1, 972, -1, 974, -1, 3, -1, 972, -1, 973,
-1, 974, -1, 975, -1, 14, -1, 15, -1, 16,
-1, 17, -1, 18, -1, 19, -1, 20, -1, 21,
-1, 23, -1, 24, -1, 25, -1, 33, -1, 34,
-1, 36, -1, 37, -1, 39, -1, 40, -1, 41,
-1, 48, -1, 49, -1, 50, -1, 51, -1, 52,
-1, 55, -1, 56, -1, 59, -1, 61, -1, 62,
-1, 63, -1, 64, -1, 69, -1, 70, -1, 71,
-1, 72, -1, 74, -1, 75, -1, 77, -1, 78,
-1, 79, -1, 80, -1, 81, -1, 82, -1, 85,
-1, 86, -1, 94, -1, 95, -1, 96, -1, 97,
-1, 98, -1, 99, -1, 102, -1, 104, -1, 106,
-1, 107, -1, 108, -1, 109, -1, 110, -1, 112,
-1, 113, -1, 114, -1, 117, -1, 118, -1, 119,
-1, 120, -1, 121, -1, 123, -1, 124, -1, 125,
-1, 127, -1, 128, -1, 130, -1, 131, -1, 132,
-1, 133, -1, 135, -1, 136, -1, 137, -1, 140,
-1, 142, -1, 144, -1, 146, -1, 148, -1, 152,
-1, 153, -1, 154, -1, 156, -1, 159, -1, 161,
-1, 162, -1, 163, -1, 164, -1, 165, -1, 167,
-1, 168, -1, 169, -1, 171, -1, 172, -1, 173,
-1, 174, -1, 175, -1, 176, -1, 178, -1, 181,
-1, 182, -1, 183, -1, 184, -1, 190, -1, 193,
-1, 195, -1, 196, -1, 197, -1, 198, -1, 199,
-1, 200, -1, 201, -1, 203, -1, 206, -1, 209,
-1, 210, -1, 211, -1, 214, -1, 215, -1, 216,
-1, 217, -1, 218, -1, 219, -1, 220, -1, 221,
-1, 222, -1, 223, -1, 224, -1, 225, -1, 229,
-1, 230, -1, 233, -1, 234, -1, 236, -1, 239,
-1, 241, -1, 242, -1, 243, -1, 245, -1, 248,
-1, 249, -1, 250, -1, 258, -1, 259, -1, 260,
-1, 261, -1, 262, -1, 263, -1, 264, -1, 266,
-1, 268, -1, 271, -1, 272, -1, 270, -1, 274,
-1, 275, -1, 276, -1, 277, -1, 278, -1, 279,
-1, 280, -1, 282, -1, 283, -1, 284, -1, 285,
-1, 287, -1, 288, -1, 289, -1, 290, -1, 291,
-1, 292, -1, 293, -1, 294, -1, 295, -1, 296,
-1, 298, -1, 299, -1, 301, -1, 302, -1, 304,
-1, 305, -1, 306, -1, 307, -1, 308, -1, 309,
-1, 310, -1, 311, -1, 313, -1, 314, -1, 315,
-1, 316, -1, 317, -1, 319, -1, 321, -1, 322,
-1, 324, -1, 326, -1, 328, -1, 329, -1, 330,
-1, 331, -1, 332, -1, 333, -1, 334, -1, 335,
-1, 336, -1, 337, -1, 340, -1, 341, -1, 343,
-1, 344, -1, 345, -1, 346, -1, 347, -1, 348,
-1, 354, -1, 356, -1, 359, -1, 360, -1, 361,
-1, 362, -1, 363, -1, 364, -1, 365, -1, 368,
-1, 369, -1, 370, -1, 371, -1, 372, -1, 375,
-1, 376, -1, 377, -1, 378, -1, 379, -1, 383,
-1, 385, -1, 386, -1, 387, -1, 390, -1, 393,
-1, 394, -1, 395, -1, 396, -1, 397, -1, 407,
-1, 408, -1, 409, -1, 42, -1, 43, -1, 45,
-1, 46, -1, 57, -1, 58, -1, 65, -1, 100,
-1, 101, -1, 134, -1, 138, -1, 143, -1, 157,
-1, 180, -1, 185, -1, 186, -1, 188, -1, 204,
-1, 226, -1, 228, -1, 231, -1, 238, -1, 240,
-1, 253, -1, 257, -1, 267, -1, 269, -1, 281,
-1, 303, -1, 320, -1, 325, -1, 338, -1, 350,
-1, 351, -1, 355, -1, 357, -1, 380, -1, 381,
-1, 398, -1, 399, -1, 400, -1, 401, -1, 402,
-1, 403, -1, 404, -1, 405, -1, 406, -1, 38,
-1, 44, -1, 67, -1, 73, -1, 84, -1, 90,
-1, 149, -1, 151, -1, 166, -1, 179, -1, 191,
-1, 192, -1, 194, -1, 205, -1, 207, -1, 227,
-1, 235, -1, 254, -1, 255, -1, 256, -1, 300,
-1, 323, -1, 384, -1, 22, -1, 26, -1, 27,
-1, 28, -1, 29, -1, 30, -1, 31, -1, 32,
-1, 35, -1, 47, -1, 53, -1, 54, -1, 60,
-1, 66, -1, 68, -1, 76, -1, 83, -1, 87,
-1, 88, -1, 89, -1, 91, -1, 92, -1, 93,
-1, 103, -1, 105, -1, 111, -1, 115, -1, 116,
-1, 122, -1, 126, -1, 129, -1, 139, -1, 141,
-1, 145, -1, 147, -1, 150, -1, 155, -1, 158,
-1, 160, -1, 170, -1, 177, -1, 187, -1, 189,
-1, 202, -1, 208, -1, 212, -1, 213, -1, 232,
-1, 237, -1, 244, -1, 246, -1, 247, -1, 251,
-1, 252, -1, 265, -1, 273, -1, 286, -1, 297,
-1, 312, -1, 318, -1, 327, -1, 339, -1, 342,
-1, 349, -1, 352, -1, 353, -1, 358, -1, 366,
-1, 367, -1, 373, -1, 374, -1, 382, -1, 388,
-1, 389, -1, 391, -1, 392, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 665, 665, 672, 679, 689, 690, 691, 692, 693,
694, 695, 696, 697, 698, 699, 700, 701, 702, 703,
704, 705, 706, 707, 708, 709, 710, 711, 712, 713,
714, 715, 716, 717, 718, 719, 720, 721, 722, 723,
724, 725, 726, 727, 728, 729, 730, 731, 732, 733,
734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
744, 745, 746, 747, 748, 749, 750, 751, 752, 753,
754, 755, 756, 757, 758, 759, 760, 761, 762, 763,
764, 765, 766, 767, 768, 769, 770, 771, 772, 773,
774, 775, 776, 777, 778, 779, 780, 781, 782, 783,
784, 785, 786, 787, 788, 789, 790, 791, 792, 793,
794, 795, 796, 797, 798, 800, 810, 821, 822, 831,
832, 836, 837, 841, 846, 850, 855, 860, 864, 868,
873, 877, 931, 933, 937, 941, 945, 949, 963, 981,
992, 993, 997, 1015, 1027, 1048, 1055, 1074, 1081, 1098,
1116, 1127, 1128, 1140, 1147, 1164, 1176, 1188, 1189, 1193,
1194, 1202, 1203, 1204, 1205, 1206, 1207, 1221, 1227, 1233,
1242, 1250, 1258, 1262, 1270, 1278, 1285, 1292, 1300, 1311,
1319, 1327, 1338, 1346, 1354, 1361, 1370, 1380, 1381, 1388,
1389, 1392, 1394, 1398, 1399, 1400, 1401, 1405, 1406, 1407,
1413, 1425, 1429, 1433, 1448, 1471, 1472, 1473, 1477, 1478,
1479, 1483, 1484, 1488, 1495, 1502, 1509, 1516, 1526, 1527,
1532, 1533, 1538, 1544, 1550, 1556, 1562, 1572, 1582, 1583,
1587, 1588, 1596, 1611, 1617, 1623, 1629, 1647, 1656, 1665,
1674, 1683, 1692, 1701, 1710, 1722, 1723, 1728, 1736, 1744,
1753, 1761, 1769, 1778, 1787, 1796, 1805, 1815, 1828, 1842,
1851, 1859, 1867, 1877, 1887, 1894, 1901, 1909, 1917, 1925,
1933, 1941, 1948, 1955, 1963, 1970, 1977, 1985, 1993, 2001,
2009, 2017, 2025, 2035, 2042, 2050, 2058, 2066, 2073, 2083,
2084, 2088, 2089, 2090, 2094, 2102, 2106, 2107, 2111, 2114,
2115, 2119, 2120, 2125, 2129, 2133, 2138, 2153, 2166, 2167,
2172, 2181, 2191, 2201, 2226, 2232, 2259, 2281, 2295, 2296,
2305, 2306, 2307, 2310, 2311, 2316, 2317, 2321, 2325, 2329,
2333, 2337, 2341, 2345, 2349, 2353, 2357, 2361, 2365, 2374,
2378, 2382, 2386, 2390, 2394, 2398, 2399, 2404, 2408, 2415,
2422, 2423, 2424, 2425, 2426, 2430, 2434, 2442, 2453, 2468,
2484, 2500, 2529, 2530, 2531, 2532, 2533, 2540, 2547, 2548,
2552, 2553, 2557, 2558, 2562, 2566, 2573, 2577, 2584, 2585,
2586, 2590, 2591, 2594, 2614, 2634, 2635, 2639, 2647, 2648,
2649, 2680, 2687, 2694, 2705, 2716, 2726, 2735, 2768, 2775,
2782, 2789, 2800, 2810, 2811, 2812, 2816, 2817, 2818, 2819,
2820, 2821, 2830, 2838, 2842, 2855, 2870, 2884, 2899, 2913,
2931, 2952, 2953, 2957, 2958, 2962, 2963, 2966, 2972, 2976,
2984, 2989, 2995, 2996, 3000, 3005, 3012, 3013, 3023, 3025,
3027, 3029, 3032, 3035, 3038, 3042, 3043, 3044, 3045, 3046,
3049, 3050, 3055, 3056, 3057, 3058, 3061, 3062, 3063, 3064,
3067, 3068, 3071, 3072, 3075, 3090, 3104, 3117, 3118, 3119,
3132, 3144, 3152, 3163, 3164, 3167, 3168, 3171, 3175, 3179,
3183, 3187, 3191, 3195, 3199, 3203, 3207, 3211, 3215, 3221,
3222, 3226, 3227, 3232, 3235, 3236, 3248, 3260, 3275, 3276,
3284, 3285, 3289, 3290, 3294, 3295, 3299, 3300, 3304, 3315,
3328, 3329, 3339, 3349, 3350, 3363, 3370, 3387, 3395, 3406,
3409, 3413, 3417, 3421, 3433, 3443, 3446, 3450, 3463, 3473,
3483, 3492, 3501, 3510, 3520, 3529, 3539, 3549, 3559, 3568,
3577, 3586, 3595, 3604, 3613, 3622, 3631, 3640, 3649, 3658,
3676, 3687, 3688, 3689, 3690, 3694, 3695, 3699, 3700, 3710,
3721, 3741, 3749, 3761, 3762, 3766, 3770, 3778, 3782, 3786,
3793, 3797, 3802, 3807, 3814, 3821, 3826, 3836, 3850, 3851,
3856, 3857, 3861, 3862, 3872, 3883, 3903, 3912, 3920, 3937,
3952, 3970, 3971, 3975, 3979, 3986, 3997, 4006, 4024, 4036,
4037, 4038, 4048, 4056, 4073, 4092, 4112, 4137, 4138, 4139,
4143, 4145, 4167, 4169, 4171, 4173, 4175, 4180, 4185, 4195,
4196, 4200, 4201, 4205, 4206, 4210, 4211, 4212, 4216, 4222,
4223, 4224, 4228, 4229, 4234, 4235, 4262, 4263, 4264, 4265,
4266, 4267, 4272, 4283, 4306, 4326, 4349, 4359, 4370, 4380,
4390, 4401, 4410, 4417, 4424, 4433, 4442, 4451, 4460, 4469,
4480, 4483, 4484, 4487, 4491, 4498, 4499, 4500, 4501, 4502,
4505, 4506, 4509, 4512, 4513, 4521, 4528, 4529, 4532, 4534,
4545, 4554, 4563, 4587, 4602, 4603, 4607, 4617, 4628, 4637,
4647, 4656, 4657, 4660, 4661, 4664, 4665, 4666, 4669, 4683,
4688, 4698, 4707, 4719, 4720, 4724, 4732, 4744, 4755, 4769,
4780, 4803, 4813, 4831, 4842, 4853, 4864, 4878, 4879, 4880,
4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890,
4891, 4892, 4896, 4897, 4900, 4901, 4904, 4906, 4919, 4930,
4931, 4932, 4958, 4967, 4976, 4985, 4994, 5003, 5012, 5022,
5031, 5040, 5049, 5058, 5067, 5076, 5084, 5092, 5100, 5111,
5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121,
5122, 5123, 5124, 5125, 5126, 5127, 5131, 5132, 5146, 5157,
5168, 5179, 5190, 5203, 5204, 5208, 5209, 5210, 5211, 5212,
5213, 5214, 5215, 5216, 5217, 5218, 5221, 5222, 5232, 5238,
5246, 5254, 5262, 5270, 5278, 5286, 5294, 5302, 5310, 5318,
5326, 5334, 5342, 5350, 5358, 5366, 5376, 5377, 5380, 5381,
5391, 5407, 5421, 5447, 5449, 5451, 5453, 5460, 5469, 5470,
5473, 5480, 5487, 5494, 5508, 5516, 5524, 5532, 5540, 5548,
5556, 5564, 5572, 5580, 5588, 5596, 5604, 5612, 5620, 5628,
5640, 5641, 5644, 5654, 5668, 5669, 5673, 5674, 5679, 5695,
5708, 5718, 5730, 5731, 5734, 5735, 5745, 5755, 5756, 5760,
5764, 5768, 5779, 5792, 5806, 5823, 5824, 5825, 5826, 5838,
5865, 5866, 5870, 5871, 5875, 5876, 5880, 5881, 5884, 5885,
5893, 5904, 5915, 5928, 5929, 5932, 5933, 5934, 5937, 5938,
5939, 5942, 5943, 5944, 5960, 5972, 5985, 6000, 6001, 6004,
6005, 6009, 6010, 6018, 6019, 6023, 6024, 6039, 6048, 6057,
6066, 6075, 6087, 6088, 6089, 6090, 6091, 6097, 6101, 6116,
6117, 6123, 6133, 6137, 6142, 6152, 6153, 6160, 6164, 6168,
6172, 6176, 6180, 6184, 6188, 6192, 6196, 6200, 6204, 6208,
6212, 6216, 6224, 6228, 6232, 6236, 6242, 6243, 6250, 6251,
6254, 6266, 6270, 6285, 6296, 6297, 6302, 6303, 6318, 6329,
6343, 6354, 6368, 6379, 6393, 6401, 6403, 6405, 6410, 6412,
6425, 6434, 6435, 6439, 6443, 6455, 6466, 6477, 6490, 6491,
6492, 6496, 6509, 6510, 6524, 6532, 6542, 6555, 6556, 6559,
6560, 6570, 6580, 6589, 6598, 6607, 6616, 6626, 6635, 6645,
6654, 6663, 6673, 6683, 6692, 6701, 6711, 6721, 6731, 6741,
6751, 6761, 6771, 6781, 6791, 6801, 6812, 6823, 6833, 6844,
6855, 6865, 6874, 6883, 6892, 6901, 6910, 6919, 6928, 6937,
6946, 6955, 6969, 6970, 6973, 6974, 6984, 6994, 7003, 7012,
7021, 7030, 7040, 7050, 7060, 7070, 7079, 7088, 7097, 7106,
7115, 7124, 7133, 7142, 7151, 7160, 7169, 7178, 7195, 7204,
7212, 7220, 7228, 7236, 7245, 7253, 7261, 7270, 7279, 7288,
7296, 7304, 7312, 7320, 7328, 7336, 7353, 7370, 7371, 7372,
7377, 7383, 7392, 7393, 7394, 7395, 7396, 7400, 7401, 7404,
7405, 7406, 7407, 7411, 7412, 7413, 7418, 7429, 7451, 7461,
7462, 7465, 7474, 7480, 7499, 7506, 7513, 7520, 7527, 7534,
7541, 7549, 7557, 7565, 7573, 7581, 7588, 7595, 7604, 7605,
7606, 7610, 7613, 7616, 7619, 7622, 7629, 7631, 7633, 7638,
7640, 7652, 7664, 7679, 7685, 7691, 7697, 7707, 7723, 7733,
7734, 7738, 7742, 7746, 7750, 7754, 7758, 7762, 7766, 7770,
7774, 7778, 7782, 7786, 7790, 7794, 7798, 7808, 7809, 7820,
7827, 7838, 7849, 7850, 7854, 7868, 7875, 7892, 7905, 7914,
7922, 7930, 7939, 7950, 7961, 7971, 7972, 7983, 7993, 8003,
8013, 8023, 8033, 8041, 8062, 8085, 8093, 8102, 8113, 8114,
8126, 8140, 8154, 8166, 8178, 8195, 8196, 8200, 8201, 8202,
8203, 8207, 8219, 8234, 8235, 8239, 8240, 8243, 8244, 8247,
8248, 8252, 8253, 8266, 8273, 8283, 8290, 8300, 8301, 8302,
8303, 8304, 8305, 8306, 8310, 8314, 8321, 8328, 8329, 8330,
8334, 8335, 8336, 8346, 8356, 8357, 8361, 8362, 8363, 8364,
8374, 8381, 8398, 8399, 8409, 8415, 8421, 8427, 8443, 8453,
8459, 8465, 8474, 8476, 8481, 8492, 8493, 8504, 8518, 8519,
8530, 8541, 8542, 8545, 8546, 8547, 8548, 8549, 8550, 8551,
8552, 8555, 8556, 8567, 8585, 8586, 8590, 8591, 8595, 8603,
8631, 8642, 8643, 8653, 8664, 8667, 8668, 8669, 8670, 8671,
8674, 8675, 8676, 8724, 8725, 8729, 8730, 8744, 8745, 8752,
8760, 8768, 8776, 8784, 8792, 8803, 8804, 8831, 8846, 8847,
8866, 8870, 8874, 8889, 8896, 8906, 8907, 8910, 8922, 8923,
8927, 8938, 8946, 8951, 8956, 8961, 8966, 8974, 8982, 8987,
8992, 8999, 9000, 9003, 9004, 9005, 9012, 9013, 9014, 9015,
9019, 9020, 9024, 9028, 9029, 9032, 9041, 9054, 9055, 9056,
9057, 9061, 9062, 9066, 9068, 9078, 9083, 9086, 9091, 9092,
9100, 9110, 9111, 9112, 9120, 9124, 9125, 9128, 9129, 9134,
9135, 9139, 9140, 9144, 9145, 9149, 9150, 9154, 9155, 9159,
9167, 9178, 9179, 9184, 9190, 9208, 9209, 9213, 9214, 9224,
9228, 9233, 9240, 9248, 9255, 9265, 9275, 9303, 9310, 9314,
9340, 9344, 9356, 9369, 9383, 9394, 9409, 9415, 9420, 9426,
9433, 9434, 9435, 9436, 9440, 9441, 9453, 9454, 9459, 9466,
9473, 9480, 9491, 9492, 9505, 9509, 9516, 9526, 9531, 9532,
9537, 9538, 9546, 9551, 9552, 9556, 9560, 9566, 9595, 9600,
9607, 9612, 9618, 9623, 9632, 9634, 9637, 9641, 9642, 9643,
9644, 9645, 9646, 9651, 9681, 9682, 9683, 9684, 9695, 9701,
9709, 9710, 9716, 9721, 9726, 9731, 9736, 9741, 9746, 9751,
9757, 9763, 9769, 9776, 9798, 9807, 9811, 9819, 9823, 9831,
9843, 9864, 9868, 9874, 9878, 9891, 9910, 9933, 9935, 9937,
9939, 9941, 9943, 9948, 9949, 9953, 9954, 9961, 9970, 9978,
9987, 9998, 10006, 10007, 10008, 10012, 10014, 10016, 10018, 10020,
10022, 10024, 10029, 10034, 10040, 10048, 10053, 10060, 10067, 10071,
10075, 10105, 10106, 10108, 10116, 10138, 10140, 10142, 10144, 10146,
10148, 10150, 10152, 10154, 10156, 10158, 10161, 10163, 10165, 10168,
10170, 10172, 10175, 10177, 10190, 10192, 10205, 10207, 10220, 10222,
10236, 10249, 10262, 10275, 10298, 10305, 10312, 10319, 10326, 10330,
10337, 10344, 10351, 10358, 10365, 10372, 10376, 10384, 10388, 10398,
10405, 10412, 10425, 10438, 10457, 10478, 10488, 10495, 10511, 10516,
10534, 10536, 10538, 10540, 10542, 10544, 10546, 10548, 10550, 10552,
10554, 10556, 10558, 10560, 10562, 10564, 10566, 10570, 10575, 10579,
10583, 10588, 10605, 10606, 10607, 10622, 10634, 10636, 10638, 10648,
10671, 10681, 10691, 10699, 10718, 10731, 10744, 10757, 10770, 10783,
10800, 10813, 10836, 10849, 10870, 10880, 10893, 10910, 10923, 10933,
10946, 10956, 10969, 10982, 10995, 11008, 11021, 11034, 11047, 11049,
11062, 11080, 11094, 11110, 11132, 11148, 11161, 11174, 11187, 11191,
11198, 11206, 11214, 11218, 11222, 11226, 11230, 11234, 11249, 11253,
11262, 11266, 11270, 11275, 11289, 11291, 11295, 11297, 11299, 11302,
11305, 11308, 11309, 11312, 11320, 11330, 11331, 11334, 11335, 11336,
11341, 11345, 11349, 11353, 11364, 11365, 11369, 11370, 11375, 11383,
11385, 11399, 11402, 11429, 11430, 11433, 11434, 11445, 11463, 11470,
11479, 11496, 11541, 11549, 11557, 11565, 11573, 11594, 11595, 11596,
11599, 11600, 11601, 11604, 11605, 11608, 11609, 11610, 11611, 11612,
11613, 11614, 11615, 11616, 11619, 11621, 11626, 11628, 11633, 11635,
11637, 11639, 11641, 11643, 11655, 11659, 11666, 11670, 11676, 11680,
11691, 11692, 11695, 11699, 11703, 11709, 11710, 11715, 11719, 11726,
11727, 11728, 11729, 11730, 11731, 11732, 11733, 11743, 11747, 11754,
11761, 11762, 11778, 11782, 11787, 11791, 11806, 11811, 11815, 11818,
11821, 11822, 11823, 11826, 11833, 11843, 11857, 11858, 11862, 11873,
11874, 11877, 11878, 11881, 11885, 11892, 11896, 11900, 11907, 11917,
11918, 11922, 11923, 11926, 11927, 11938, 11939, 11948, 11949, 11957,
11968, 11969, 11972, 11988, 11996, 12004, 12026, 12027, 12038, 12042,
12069, 12071, 12076, 12079, 12082, 12084, 12086, 12088, 12098, 12100,
12111, 12115, 12119, 12123, 12127, 12136, 12143, 12168, 12172, 12178,
12195, 12199, 12203, 12209, 12210, 12211, 12213, 12214, 12215, 12231,
12232, 12233, 12238, 12239, 12240, 12246, 12247, 12248, 12249, 12250,
12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279,
12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289,
12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299,
12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309,
12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319,
12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329,
12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339,
12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349,
12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359,
12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369,
12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379,
12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389,
12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399,
12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409,
12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419,
12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429,
12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439,
12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449,
12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459,
12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469,
12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479,
12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489,
12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499,
12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509,
12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519,
12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542,
12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552,
12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562,
12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572,
12573, 12574, 12575, 12576, 12577, 12578, 12579, 12593, 12594, 12595,
12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605,
12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615,
12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634,
12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644,
12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654,
12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664,
12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674,
12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684,
12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694,
12695, 12696, 12697, 12698, 12699, 12700
};
#endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* 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",
"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", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE",
"BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH",
"BY", "CACHE", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST",
"CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK",
"CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE",
"COLLATION", "COLUMN", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED",
"CONCURRENTLY", "CONFIGURATION", "CONNECTION", "CONSTRAINT",
"CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST",
"CREATE", "CROSS", "CSV", "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", "DESC", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT",
"DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE",
"ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE",
"EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS",
"EXPLAIN", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY",
"FETCH", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN",
"FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GLOBAL",
"GRANT", "GRANTED", "GREATEST", "GROUP_P", "HANDLER", "HAVING",
"HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE",
"IMMUTABLE", "IMPLICIT_P", "IN_P", "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",
"LC_COLLATE_P", "LC_CTYPE_P", "LEADING", "LEAKPROOF", "LEAST", "LEFT",
"LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME",
"LOCALTIMESTAMP", "LOCATION", "LOCK_P", "MAPPING", "MATCH", "MAXVALUE",
"MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES",
"NATIONAL", "NATURAL", "NCHAR", "NEXT", "NO", "NONE", "NOT", "NOTHING",
"NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC",
"OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "ON", "ONLY", "OPERATOR",
"OPTION", "OPTIONS", "OR", "ORDER", "OUT_P", "OUTER_P", "OVER",
"OVERLAPS", "OVERLAY", "OWNED", "OWNER", "PARSER", "PARTIAL",
"PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POSITION",
"PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY",
"PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "QUOTE", "RANGE",
"READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES",
"REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE",
"REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS",
"REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROW", "ROWS", "RULE",
"SAVEPOINT", "SCHEMA", "SCROLL", "SEARCH", "SECOND_P", "SECURITY",
"SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION",
"SESSION_USER", "SET", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE",
"SMALLINT", "SNAPSHOT", "SOME", "STABLE", "STANDALONE_P", "START",
"STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STRICT_P",
"STRIP_P", "SUBSTRING", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE",
"TABLES", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P",
"THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "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", "VOLATILE",
"WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHOUT", "WORK",
"WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT",
"XMLEXISTS", "XMLFOREST", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE",
"YEAR_P", "YES_P", "ZONE", "NULLS_FIRST", "NULLS_LAST", "WITH_TIME",
"'='", "'<'", "'>'", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'",
"'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'",
"$accept", "stmtblock", "stmtmulti", "stmt", "CreateRoleStmt",
"opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem",
"CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt",
"opt_in_database", "AlterRoleSetStmt", "AlterUserStmt",
"AlterUserSetStmt", "DropRoleStmt", "DropUserStmt", "CreateGroupStmt",
"AlterGroupStmt", "add_drop", "DropGroupStmt", "CreateSchemaStmt",
"OptSchemaName", "OptSchemaEltList", "schema_stmt", "VariableSetStmt",
"set_rest", "set_rest_more", "var_name", "var_list", "var_value",
"iso_level", "opt_boolean_or_string", "zone_value", "opt_encoding",
"ColId_or_Sconst", "VariableResetStmt", "SetResetClause",
"FunctionSetResetClause", "VariableShowStmt", "ConstraintsSetStmt",
"constraints_set_list", "constraints_set_mode", "CheckPointStmt",
"DiscardStmt", "AlterTableStmt", "alter_table_cmds", "alter_table_cmd",
"alter_column_default", "opt_drop_behavior", "opt_collate_clause",
"alter_using", "reloptions", "opt_reloptions", "reloption_list",
"reloption_elem", "AlterCompositeTypeStmt", "alter_type_cmds",
"alter_type_cmd", "ClosePortalStmt", "CopyStmt", "copy_from",
"copy_file_name", "copy_options", "copy_opt_list", "copy_opt_item",
"opt_binary", "opt_oids", "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", "ConstraintAttr",
"TableLikeClause", "TableLikeOptionList", "TableLikeOption",
"TableConstraint", "ConstraintElem", "opt_no_inherit", "opt_column_list",
"columnList", "columnElem", "key_match", "ExclusionConstraintList",
"ExclusionConstraintElem", "ExclusionWhereClause", "key_actions",
"key_update", "key_delete", "key_action", "OptInherit", "OptWith",
"OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex",
"CreateAsStmt", "create_as_target", "opt_with_data", "CreateSeqStmt",
"AlterSeqStmt", "OptSeqOptList", "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", "DropFdwStmt", "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", "DropForeignServerStmt",
"AlterForeignServerStmt", "CreateForeignTableStmt",
"OptForeignTableElementList", "ForeignTableElementList",
"ForeignTableElement", "AlterForeignTableStmt", "CreateUserMappingStmt",
"auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt",
"CreateTrigStmt", "TriggerActionTime", "TriggerEvents",
"TriggerOneEvent", "TriggerForSpec", "TriggerForOptEach",
"TriggerForType", "TriggerWhen", "TriggerFuncArgs", "TriggerFuncArg",
"OptConstrFromTable", "ConstraintAttributeSpec",
"ConstraintAttributeElem", "DropTrigStmt", "CreateAssertStmt",
"DropAssertStmt", "DefineStmt", "definition", "def_list", "def_elem",
"def_arg", "aggr_args", "old_aggr_definition", "old_aggr_list",
"old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt",
"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_list",
"any_name", "attrs", "TruncateStmt", "opt_restart_seqs", "CommentStmt",
"comment_type", "comment_text", "SecLabelStmt", "opt_provider",
"security_label_type", "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", "function_with_argtypes_list",
"function_with_argtypes", "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_collate", "opt_class", "opt_asc_desc", "opt_nulls_order",
"CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list",
"func_args_with_defaults", "func_args_with_defaults_list", "func_arg",
"arg_class", "param_name", "func_return", "func_type",
"func_arg_with_default", "createfunc_opt_list", "common_func_opt_item",
"createfunc_opt_item", "func_as", "opt_definition", "table_func_column",
"table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list",
"opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt",
"oper_argtypes", "any_operator", "DoStmt", "dostmt_opt_list",
"dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt",
"opt_if_exists", "ReindexStmt", "reindex_type", "opt_force",
"RenameStmt", "opt_column", "opt_set_data", "AlterObjectSchemaStmt",
"AlterOwnerStmt", "RuleStmt", "RuleActionList", "RuleActionMulti",
"RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead",
"DropRuleStmt", "NotifyStmt", "notify_payload", "ListenStmt",
"UnlistenStmt", "TransactionStmt", "opt_transaction",
"transaction_mode_item", "transaction_mode_list",
"transaction_mode_list_or_empty", "ViewStmt", "opt_check_option",
"LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_item",
"opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt",
"alterdb_opt_list", "alterdb_opt_item", "DropdbStmt", "CreateDomainStmt",
"AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt",
"AlterTSConfigurationStmt", "CreateConversionStmt", "ClusterStmt",
"cluster_index_specification", "VacuumStmt", "vacuum_option_list",
"vacuum_option_elem", "AnalyzeStmt", "analyze_keyword", "opt_verbose",
"opt_full", "opt_freeze", "opt_name_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_rest",
"insert_column_list", "insert_column_item", "returning_clause",
"DeleteStmt", "using_clause", "LockStmt", "opt_lock", "lock_type",
"opt_nowait", "UpdateStmt", "set_clause_list", "set_clause",
"single_set_clause", "multiple_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_with_clause", "into_clause",
"OptTempTableName", "opt_table", "opt_all", "opt_distinct",
"opt_sort_clause", "sort_clause", "sortby_list", "sortby",
"select_limit", "opt_select_limit", "limit_clause", "offset_clause",
"select_limit_value", "select_offset_value",
"opt_select_fetch_first_value", "select_offset_value2", "row_or_rows",
"first_or_next", "group_clause", "having_clause", "for_locking_clause",
"opt_for_locking_clause", "for_locking_items", "for_locking_item",
"locked_rels_list", "values_clause", "from_clause", "from_list",
"table_ref", "joined_table", "alias_clause", "join_type", "join_outer",
"join_qual", "relation_expr", "relation_expr_list",
"relation_expr_opt_alias", "func_table", "where_clause",
"where_or_current_clause", "OptTableFuncElementList",
"TableFuncElementList", "TableFuncElement", "Typename",
"opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType",
"opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit",
"BitWithLength", "BitWithoutLength", "Character", "ConstCharacter",
"CharacterWithLength", "CharacterWithoutLength", "character",
"opt_varying", "opt_charset", "ConstDatetime", "ConstInterval",
"opt_timezone", "opt_interval", "interval_second", "a_expr", "b_expr",
"c_expr", "func_expr", "xml_root_version", "opt_xml_root_standalone",
"xml_attributes", "xml_attribute_list", "xml_attribute_el",
"document_or_content", "xml_whitespace_option", "xmlexists_argument",
"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", "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", "indirection",
"opt_indirection", "opt_asymmetric", "ctext_expr", "ctext_expr_list",
"ctext_row", "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", "RoleId", "SignedIconst", "ColId",
"type_function_name", "ColLabel", "unreserved_keyword",
"col_name_keyword", "type_func_name_keyword", "reserved_keyword", 0
};
#endif
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
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, 61, 60, 62, 668, 43, 45, 42,
47, 37, 94, 669, 91, 93, 40, 41, 46, 59,
44, 58
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
0, 432, 433, 434, 434, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
435, 435, 435, 435, 435, 435, 436, 437, 437, 438,
438, 439, 439, 440, 440, 440, 440, 440, 440, 440,
440, 440, 441, 441, 441, 441, 441, 441, 442, 443,
444, 444, 445, 446, 447, 448, 448, 449, 449, 450,
451, 452, 452, 453, 453, 454, 454, 455, 455, 456,
456, 457, 457, 457, 457, 457, 457, 458, 458, 458,
459, 459, 459, 460, 460, 460, 460, 460, 460, 460,
460, 460, 460, 460, 460, 460, 460, 461, 461, 462,
462, 463, 463, 464, 464, 464, 464, 465, 465, 465,
465, 466, 466, 466, 466, 466, 466, 466, 467, 467,
467, 468, 468, 469, 469, 469, 469, 469, 470, 470,
471, 471, 472, 472, 472, 472, 472, 473, 474, 474,
475, 475, 476, 477, 477, 477, 477, 478, 478, 478,
478, 478, 478, 478, 478, 479, 479, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 481,
481, 482, 482, 482, 483, 483, 484, 484, 485, 486,
486, 487, 487, 488, 488, 488, 488, 489, 490, 490,
491, 491, 491, 491, 492, 492, 493, 493, 494, 494,
495, 495, 495, 496, 496, 497, 497, 498, 498, 498,
498, 498, 498, 498, 498, 498, 498, 498, 498, 499,
499, 500, 500, 501, 501, 502, 502, 503, 503, 504,
505, 505, 505, 505, 505, 506, 506, 507, 508, 508,
508, 508, 509, 509, 509, 509, 509, 509, 509, 509,
510, 510, 511, 511, 512, 512, 513, 513, 514, 514,
514, 515, 515, 516, 517, 518, 518, 519, 519, 519,
519, 520, 520, 520, 520, 520, 520, 520, 521, 521,
521, 521, 522, 523, 523, 523, 524, 524, 524, 524,
524, 524, 525, 525, 526, 526, 526, 526, 526, 526,
526, 527, 527, 528, 528, 529, 529, 530, 531, 531,
531, 531, 532, 532, 533, 533, 534, 534, 535, 535,
535, 535, 535, 536, 537, 538, 538, 538, 538, 538,
539, 539, 540, 540, 540, 540, 541, 541, 541, 541,
542, 542, 543, 543, 544, 545, 546, 547, 547, 547,
548, 549, 549, 550, 550, 551, 551, 552, 552, 552,
552, 552, 552, 552, 552, 552, 552, 552, 552, 553,
553, 554, 554, 554, 555, 555, 556, 556, 557, 557,
558, 558, 559, 559, 560, 560, 561, 561, 562, 562,
563, 563, 564, 565, 565, 566, 566, 567, 567, 568,
568, 569, 569, 569, 570, 571, 571, 572, 573, 573,
573, 573, 573, 573, 573, 573, 573, 573, 573, 573,
573, 573, 573, 573, 573, 573, 573, 573, 573, 573,
574, 575, 575, 575, 575, 576, 576, 577, 577, 578,
578, 579, 579, 580, 580, 581, 581, 582, 583, 583,
584, 584, 584, 584, 585, 586, 587, 588, 589, 589,
590, 590, 591, 591, 592, 592, 593, 593, 593, 594,
594, 595, 595, 596, 596, 597, 598, 598, 599, 600,
600, 600, 601, 601, 602, 603, 603, 604, 604, 604,
605, 605, 606, 606, 606, 606, 606, 607, 607, 608,
608, 609, 609, 610, 610, 611, 611, 611, 612, 612,
612, 612, 613, 613, 614, 614, 615, 615, 615, 615,
615, 615, 616, 616, 617, 618, 619, 619, 619, 619,
619, 619, 619, 619, 619, 619, 619, 619, 619, 619,
620, 621, 621, 622, 622, 623, 623, 623, 623, 623,
624, 624, 625, 626, 626, 627, 628, 628, 629, 629,
630, 630, 630, 631, 632, 632, 633, 633, 633, 633,
633, 634, 634, 635, 635, 636, 636, 636, 637, 637,
638, 639, 639, 640, 640, 641, 641, 642, 642, 643,
643, 644, 645, 646, 646, 646, 646, 647, 647, 647,
647, 647, 647, 647, 647, 647, 647, 647, 647, 647,
647, 647, 648, 648, 649, 649, 650, 650, 651, 652,
652, 652, 653, 653, 653, 653, 653, 653, 653, 653,
653, 653, 653, 653, 653, 653, 653, 653, 653, 654,
654, 654, 654, 654, 654, 654, 654, 654, 654, 654,
654, 654, 654, 654, 654, 654, 655, 655, 656, 656,
656, 656, 656, 657, 657, 658, 658, 658, 658, 658,
658, 658, 658, 658, 658, 658, 659, 659, 660, 660,
661, 661, 661, 661, 661, 661, 661, 661, 661, 661,
661, 661, 661, 661, 661, 661, 662, 662, 663, 663,
664, 665, 665, 666, 666, 666, 666, 666, 667, 667,
668, 668, 668, 668, 669, 669, 669, 669, 669, 669,
669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
670, 670, 671, 671, 672, 672, 673, 673, 674, 675,
676, 676, 677, 677, 678, 678, 679, 680, 680, 681,
681, 681, 682, 682, 682, 683, 683, 683, 683, 684,
685, 685, 686, 686, 687, 687, 688, 688, 689, 689,
690, 690, 690, 691, 691, 692, 692, 692, 693, 693,
693, 694, 694, 694, 695, 695, 695, 696, 696, 697,
697, 698, 698, 699, 699, 700, 700, 701, 701, 701,
701, 701, 702, 702, 702, 702, 702, 703, 704, 705,
705, 705, 706, 706, 706, 707, 707, 708, 708, 708,
708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
708, 708, 709, 709, 709, 709, 710, 710, 711, 711,
712, 713, 713, 714, 715, 715, 716, 716, 717, 717,
718, 718, 719, 719, 720, 720, 720, 720, 721, 721,
722, 723, 723, 724, 724, 725, 725, 725, 726, 726,
726, 727, 728, 728, 729, 729, 729, 730, 730, 731,
731, 732, 732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 733, 733, 734, 734, 735, 735, 735, 735,
735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
735, 735, 735, 735, 735, 735, 735, 735, 736, 736,
736, 736, 736, 736, 736, 736, 736, 736, 736, 736,
736, 736, 736, 736, 736, 736, 737, 738, 738, 738,
739, 739, 740, 740, 740, 740, 740, 741, 741, 742,
742, 742, 742, 743, 743, 743, 744, 744, 745, 746,
746, 747, 748, 748, 749, 749, 749, 749, 749, 749,
749, 749, 749, 749, 749, 749, 749, 749, 750, 750,
750, 751, 751, 751, 751, 751, 752, 752, 752, 753,
753, 754, 754, 755, 755, 755, 755, 756, 757, 758,
758, 759, 759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 760, 760, 761,
761, 762, 763, 763, 764, 765, 765, 766, 767, 767,
767, 767, 767, 767, 767, 768, 768, 769, 770, 770,
770, 770, 770, 770, 771, 772, 772, 772, 773, 773,
774, 774, 774, 774, 774, 775, 775, 776, 776, 776,
776, 777, 777, 778, 778, 779, 779, 780, 780, 781,
781, 782, 782, 783, 783, 783, 783, 784, 784, 784,
784, 784, 784, 784, 785, 785, 786, 787, 787, 787,
788, 788, 788, 789, 790, 790, 791, 791, 791, 791,
792, 792, 793, 793, 794, 794, 794, 794, 795, 796,
796, 796, 797, 797, 798, 799, 799, 800, 801, 801,
802, 803, 803, 804, 804, 804, 804, 804, 804, 804,
804, 805, 805, 806, 807, 807, 808, 808, 809, 810,
811, 812, 812, 813, 814, 815, 815, 815, 815, 815,
816, 816, 816, 817, 817, 818, 818, 819, 819, 819,
819, 819, 819, 819, 819, 820, 820, 821, 821, 821,
821, 821, 821, 822, 822, 823, 823, 824, 825, 825,
826, 826, 827, 827, 827, 827, 827, 827, 827, 827,
827, 828, 828, 829, 829, 829, 830, 830, 830, 830,
831, 831, 832, 833, 833, 834, 834, 835, 835, 835,
835, 836, 836, 837, 837, 837, 838, 838, 839, 839,
840, 841, 841, 841, 842, 843, 843, 844, 844, 845,
845, 846, 846, 847, 847, 848, 848, 849, 849, 850,
850, 851, 851, 852, 852, 853, 853, 854, 854, 855,
855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
856, 856, 856, 856, 856, 856, 857, 857, 857, 857,
858, 858, 858, 858, 859, 859, 860, 860, 861, 861,
861, 861, 862, 862, 863, 863, 863, 864, 865, 865,
866, 866, 866, 867, 867, 868, 868, 869, 870, 870,
870, 870, 870, 870, 871, 871, 871, 872, 872, 872,
872, 872, 872, 872, 873, 873, 873, 873, 874, 874,
875, 875, 876, 876, 876, 876, 876, 876, 876, 876,
876, 876, 876, 877, 877, 878, 878, 879, 879, 880,
881, 882, 882, 883, 883, 884, 885, 886, 886, 886,
886, 886, 886, 887, 887, 888, 888, 889, 889, 889,
889, 890, 891, 891, 891, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892, 892, 893,
893, 894, 894, 894, 894, 894, 894, 894, 894, 894,
894, 894, 894, 894, 894, 894, 894, 894, 894, 894,
894, 894, 894, 894, 894, 894, 894, 894, 894, 894,
894, 894, 894, 894, 894, 894, 894, 894, 894, 894,
894, 894, 894, 894, 894, 894, 894, 894, 894, 894,
894, 894, 894, 894, 894, 894, 894, 894, 894, 894,
895, 895, 895, 895, 895, 895, 895, 895, 895, 895,
895, 895, 895, 895, 895, 895, 895, 895, 895, 895,
895, 895, 896, 896, 896, 896, 896, 896, 896, 896,
896, 896, 896, 896, 897, 897, 897, 897, 897, 897,
897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
897, 897, 897, 897, 897, 897, 897, 897, 897, 897,
897, 897, 897, 897, 898, 898, 899, 899, 899, 899,
900, 901, 901, 902, 902, 903, 903, 904, 904, 904,
905, 905, 905, 905, 906, 906, 907, 907, 908, 909,
909, 909, 910, 911, 911, 912, 912, 913, 913, 913,
914, 914, 915, 915, 915, 915, 915, 916, 916, 916,
917, 917, 917, 918, 918, 919, 919, 919, 919, 919,
919, 919, 919, 919, 920, 920, 921, 921, 922, 922,
922, 922, 922, 922, 923, 923, 924, 924, 925, 925,
926, 926, 927, 927, 927, 928, 928, 929, 929, 930,
930, 930, 930, 930, 930, 930, 930, 931, 931, 932,
933, 933, 934, 934, 934, 934, 934, 934, 935, 936,
937, 937, 937, 938, 938, 939, 940, 940, 941, 942,
942, 943, 943, 944, 944, 945, 945, 945, 945, 946,
946, 947, 947, 948, 948, 949, 949, 950, 950, 951,
952, 952, 953, 953, 953, 953, 954, 954, 955, 955,
956, 956, 957, 958, 959, 960, 961, 962, 963, 963,
964, 964, 964, 964, 964, 964, 964, 964, 964, 964,
964, 964, 964, 965, 966, 967, 968, 968, 968, 969,
969, 969, 970, 970, 970, 971, 971, 971, 971, 971,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 974, 974, 974,
974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
975, 975, 975, 975, 975, 975
};
/* YYR2[YYN] -- Number of symbols composing 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, 0, 5, 1, 0, 2,
0, 2, 0, 2, 2, 3, 3, 1, 3, 3,
2, 1, 1, 2, 2, 2, 3, 3, 5, 5,
0, 3, 5, 5, 4, 3, 5, 3, 5, 5,
6, 1, 1, 3, 5, 6, 4, 1, 0, 2,
0, 1, 1, 1, 1, 1, 1, 2, 3, 3,
2, 5, 1, 3, 3, 3, 3, 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, 6, 1, 1, 1, 1, 1,
0, 1, 1, 2, 3, 4, 3, 2, 2, 1,
2, 1, 2, 3, 4, 3, 2, 4, 1, 1,
1, 1, 1, 2, 2, 2, 2, 4, 6, 4,
6, 4, 6, 4, 6, 1, 3, 2, 3, 4,
6, 6, 6, 5, 5, 6, 6, 4, 8, 4,
2, 3, 6, 4, 3, 3, 3, 3, 3, 4,
4, 3, 3, 3, 3, 3, 3, 4, 4, 3,
2, 3, 2, 2, 3, 3, 2, 2, 1, 3,
2, 1, 1, 0, 2, 0, 2, 0, 3, 2,
0, 1, 3, 3, 1, 5, 3, 4, 1, 3,
4, 6, 4, 8, 2, 2, 10, 6, 1, 1,
1, 1, 1, 1, 3, 2, 0, 1, 1, 3,
3, 1, 1, 3, 3, 3, 3, 4, 2, 1,
0, 2, 0, 3, 0, 1, 0, 1, 3, 2,
1, 1, 1, 3, 0, 1, 3, 1, 11, 14,
10, 13, 1, 1, 2, 2, 2, 2, 1, 0,
1, 0, 3, 0, 1, 3, 1, 3, 1, 1,
1, 1, 1, 4, 4, 2, 0, 3, 1, 1,
2, 2, 1, 3, 4, 5, 2, 5, 1, 2,
2, 2, 3, 3, 3, 0, 1, 1, 1, 1,
1, 1, 3, 1, 5, 7, 3, 8, 4, 9,
11, 2, 0, 3, 0, 1, 3, 1, 2, 2,
2, 0, 1, 3, 3, 6, 4, 0, 1, 1,
2, 2, 0, 3, 3, 2, 1, 1, 2, 2,
4, 0, 2, 2, 2, 0, 3, 4, 4, 0,
2, 0, 4, 0, 3, 7, 5, 2, 3, 0,
5, 4, 6, 1, 0, 1, 2, 2, 1, 2,
3, 2, 2, 2, 2, 3, 3, 1, 3, 1,
0, 1, 2, 1, 1, 3, 6, 10, 1, 0,
1, 2, 2, 0, 2, 2, 1, 0, 5, 7,
1, 0, 6, 2, 0, 3, 5, 5, 8, 2,
0, 2, 2, 2, 5, 2, 0, 2, 7, 10,
6, 6, 6, 6, 7, 7, 9, 9, 6, 6,
8, 8, 8, 8, 6, 6, 7, 8, 6, 6,
7, 2, 2, 2, 2, 1, 2, 1, 0, 6,
8, 7, 6, 4, 0, 1, 3, 4, 1, 3,
1, 2, 2, 2, 2, 1, 1, 10, 2, 0,
2, 2, 1, 0, 4, 6, 5, 4, 4, 8,
11, 3, 2, 1, 3, 1, 5, 7, 8, 1,
1, 1, 7, 9, 8, 15, 20, 1, 1, 2,
1, 3, 1, 1, 1, 3, 1, 3, 0, 1,
0, 1, 1, 4, 0, 1, 3, 0, 1, 1,
1, 1, 2, 0, 0, 2, 2, 1, 2, 2,
2, 2, 6, 8, 8, 4, 5, 4, 4, 4,
3, 7, 8, 6, 6, 6, 6, 6, 4, 5,
3, 1, 3, 3, 1, 1, 1, 1, 1, 1,
3, 3, 3, 1, 3, 3, 1, 0, 1, 3,
6, 8, 8, 13, 1, 3, 5, 6, 4, 7,
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, 5, 7, 1, 1, 1,
1, 2, 1, 1, 1, 1, 1, 1, 3, 3,
3, 3, 1, 3, 1, 2, 2, 3, 5, 2,
2, 0, 6, 7, 7, 7, 8, 8, 6, 8,
9, 9, 7, 10, 7, 8, 8, 8, 8, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 2, 1, 3, 1, 1, 8, 9,
9, 9, 9, 2, 0, 1, 1, 2, 1, 1,
1, 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, 3, 2, 2, 2, 5, 5, 5,
1, 3, 1, 2, 3, 0, 1, 3, 2, 6,
6, 9, 3, 0, 3, 0, 5, 2, 0, 3,
3, 3, 7, 7, 10, 1, 1, 1, 1, 14,
1, 0, 1, 0, 1, 0, 2, 0, 1, 3,
5, 5, 7, 2, 0, 1, 2, 0, 1, 1,
0, 1, 1, 0, 9, 12, 7, 2, 0, 3,
2, 1, 3, 3, 2, 1, 3, 3, 3, 2,
2, 1, 1, 1, 1, 2, 1, 1, 1, 1,
4, 5, 1, 3, 3, 1, 2, 4, 5, 1,
1, 1, 1, 3, 3, 2, 2, 1, 2, 2,
2, 1, 2, 2, 1, 1, 1, 3, 2, 0,
2, 1, 3, 5, 1, 2, 1, 0, 5, 7,
5, 7, 5, 7, 3, 5, 5, 5, 1, 3,
2, 1, 2, 1, 2, 11, 10, 10, 2, 2,
0, 9, 2, 0, 4, 4, 4, 1, 1, 1,
0, 7, 6, 6, 6, 6, 8, 8, 6, 6,
7, 9, 9, 6, 6, 6, 8, 6, 8, 6,
8, 6, 8, 7, 9, 8, 10, 8, 9, 11,
8, 6, 6, 6, 5, 5, 8, 8, 8, 8,
6, 9, 1, 0, 2, 0, 7, 6, 6, 6,
6, 6, 7, 9, 9, 6, 8, 8, 8, 8,
8, 6, 8, 6, 8, 7, 9, 6, 7, 6,
6, 6, 6, 6, 7, 7, 7, 9, 9, 6,
6, 6, 8, 8, 8, 6, 13, 1, 1, 3,
3, 1, 1, 1, 1, 1, 1, 1, 0, 1,
1, 1, 1, 1, 1, 0, 6, 8, 3, 2,
0, 2, 2, 2, 2, 3, 3, 2, 2, 2,
2, 3, 2, 5, 4, 3, 3, 3, 1, 1,
0, 3, 2, 2, 1, 2, 1, 3, 2, 1,
0, 9, 11, 3, 4, 4, 0, 2, 5, 2,
0, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 4, 3, 3, 1, 0, 5,
6, 4, 2, 0, 4, 3, 5, 6, 4, 6,
6, 5, 7, 9, 6, 1, 0, 6, 11, 11,
11, 13, 9, 11, 10, 4, 2, 5, 2, 0,
4, 5, 5, 4, 6, 1, 3, 1, 1, 1,
1, 2, 4, 1, 1, 1, 0, 1, 0, 1,
0, 3, 0, 2, 4, 3, 5, 1, 1, 1,
1, 1, 1, 1, 1, 3, 2, 1, 1, 1,
1, 1, 0, 5, 3, 0, 1, 1, 1, 1,
3, 9, 3, 0, 2, 3, 2, 3, 6, 1,
4, 2, 1, 3, 2, 2, 0, 7, 2, 0,
5, 3, 0, 2, 2, 2, 3, 1, 3, 1,
2, 1, 0, 8, 1, 3, 1, 1, 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, 1, 2,
4, 4, 4, 2, 3, 1, 3, 6, 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, 2, 3, 1, 1,
1, 1, 3, 0, 1, 1, 1, 1, 1, 3,
0, 2, 0, 1, 3, 1, 0, 1, 2, 4,
4, 2, 0, 2, 3, 2, 0, 1, 3, 1,
2, 1, 2, 5, 6, 5, 1, 2, 1, 4,
3, 4, 5, 4, 5, 4, 5, 2, 4, 1,
2, 2, 2, 1, 1, 0, 4, 2, 1, 2,
2, 4, 1, 3, 1, 2, 3, 1, 2, 0,
2, 4, 0, 1, 0, 1, 3, 3, 2, 3,
5, 6, 2, 3, 3, 4, 0, 1, 1, 1,
1, 1, 2, 5, 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, 5, 2, 2, 2, 1,
3, 3, 2, 1, 0, 3, 0, 5, 2, 5,
2, 1, 2, 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, 2, 2, 3,
3, 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, 3, 2, 2, 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, 4, 5, 6, 8, 6, 7,
7, 5, 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, 4, 4, 6, 2, 0, 1, 3, 3, 2,
2, 0, 6, 1, 0, 3, 0, 2, 2, 0,
1, 4, 2, 2, 2, 2, 2, 4, 3, 5,
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,
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,
2, 0, 2, 1, 0, 1, 1, 1, 3, 3,
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, 5, 2, 3, 6,
1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
1329, 1130, 511, 1214, 1213, 1130, 232, 0, 1216, 0,
1130, 340, 908, 0, 0, 0, 0, 511, 1130, 0,
1329, 0, 0, 0, 0, 1342, 0, 0, 0, 0,
0, 0, 0, 0, 1130, 0, 0, 1349, 0, 0,
0, 0, 1342, 0, 1218, 0, 0, 0, 0, 2,
4, 56, 57, 23, 22, 28, 27, 79, 80, 46,
16, 70, 51, 112, 111, 113, 34, 30, 64, 20,
21, 31, 35, 53, 36, 52, 19, 50, 74, 54,
77, 41, 10, 11, 42, 68, 12, 43, 69, 13,
44, 14, 58, 81, 26, 55, 78, 37, 66, 62,
9, 47, 48, 49, 71, 72, 73, 95, 76, 107,
33, 104, 85, 86, 101, 87, 102, 7, 88, 45,
15, 98, 97, 99, 65, 38, 67, 96, 100, 17,
18, 103, 75, 93, 90, 108, 106, 114, 91, 59,
5, 6, 82, 40, 8, 25, 24, 39, 32, 110,
29, 1216, 84, 94, 83, 60, 89, 63, 92, 109,
61, 105, 1316, 1303, 1351, 1315, 1328, 0, 1318, 1129,
1128, 1114, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 510, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1140, 1849,
1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 315, 1868,
1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 2110,
2111, 2112, 2113, 1878, 1879, 1880, 1881, 1882, 1883, 1884,
2114, 2115, 1885, 1886, 1887, 1888, 1889, 2116, 1890, 1891,
1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 2117, 2118,
1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919,
1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929,
1930, 1931, 1932, 1933, 2119, 1934, 1935, 1936, 2120, 1937,
1938, 2121, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 2122,
1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955,
1956, 1957, 1958, 1959, 1960, 1961, 2123, 1962, 1963, 1964,
1965, 2124, 2125, 2126, 1966, 1967, 1968, 1969, 1970, 1971,
1972, 1973, 1974, 1975, 2127, 1976, 1977, 1978, 1979, 1980,
1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1991, 2128, 2129, 1992, 1993, 2130, 1994, 1995, 1996, 2131,
1997, 2132, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2133,
2134, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2135,
2013, 2136, 2016, 2014, 2015, 2017, 2018, 2019, 2020, 2021,
2022, 2023, 2137, 2024, 2025, 2026, 2027, 2028, 2029, 2030,
2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040,
2041, 2138, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049,
2050, 2051, 2052, 2053, 2054, 2055, 2139, 2056, 2057, 2058,
2140, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
2068, 2069, 2141, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
2077, 2142, 2143, 2078, 2144, 2079, 2145, 2080, 2081, 2082,
2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092,
2093, 2094, 2095, 2096, 2146, 2147, 2097, 2098, 2099, 2100,
2101, 2102, 2103, 2104, 2105, 2106, 2148, 2149, 2150, 2151,
2152, 2153, 2154, 2155, 2156, 2107, 2108, 2109, 314, 1294,
1822, 1850, 1851, 1215, 1196, 511, 0, 1117, 339, 0,
0, 0, 0, 0, 0, 0, 0, 691, 0, 0,
0, 0, 0, 0, 0, 0, 0, 158, 0, 0,
363, 362, 0, 0, 0, 880, 368, 0, 0, 0,
0, 499, 1256, 2014, 1254, 1295, 233, 236, 234, 235,
1844, 0, 980, 981, 983, 0, 0, 993, 724, 725,
0, 723, 727, 0, 0, 0, 720, 0, 0, 0,
0, 726, 718, 0, 717, 0, 0, 0, 722, 0,
719, 0, 0, 1118, 1253, 369, 1329, 0, 1232, 1216,
1223, 1233, 1228, 1230, 1229, 1231, 1227, 1843, 1861, 819,
819, 819, 819, 816, 817, 819, 819, 819, 2029, 0,
0, 798, 0, 800, 1846, 819, 824, 424, 424, 424,
0, 823, 828, 424, 1111, 1147, 1827, 1341, 0, 799,
1110, 2078, 1245, 0, 0, 997, 0, 998, 0, 2044,
1122, 217, 2054, 2142, 2078, 213, 187, 1865, 0, 0,
823, 0, 1119, 1120, 784, 1348, 1346, 0, 1883, 1896,
1979, 210, 2040, 2045, 2054, 2142, 2078, 2106, 167, 172,
0, 226, 2054, 2142, 2078, 222, 1140, 0, 1319, 1428,
1818, 0, 1113, 1112, 1217, 0, 1220, 0, 1393, 2026,
1323, 1325, 1222, 1316, 0, 0, 1, 1329, 1211, 1345,
1345, 0, 1345, 0, 1308, 1316, 1311, 1315, 0, 0,
0, 0, 1849, 2157, 2158, 2159, 2160, 2161, 2162, 2163,
2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173,
2174, 2175, 2176, 2177, 2178, 2179, 0, 0, 1828, 1850,
1854, 0, 734, 0, 118, 1823, 868, 0, 0, 0,
1822, 0, 0, 0, 0, 0, 1845, 1951, 0, 0,
1723, 1887, 1937, 1733, 1731, 1732, 1725, 1726, 1727, 1728,
1729, 1730, 0, 978, 1724, 0, 118, 0, 1951, 0,
0, 1951, 0, 0, 0, 0, 0, 1982, 118, 1951,
0, 0, 1134, 0, 0, 0, 1136, 1139, 1115, 1199,
0, 1818, 0, 0, 768, 759, 0, 769, 760, 765,
771, 0, 0, 762, 0, 0, 772, 0, 761, 763,
774, 764, 770, 0, 0, 766, 767, 0, 0, 1126,
424, 0, 0, 0, 0, 0, 0, 118, 1186, 1951,
118, 0, 0, 367, 366, 118, 365, 364, 1887, 1937,
0, 907, 118, 0, 160, 579, 514, 0, 0, 650,
1982, 118, 0, 0, 0, 0, 883, 0, 0, 498,
511, 1257, 1255, 0, 984, 212, 211, 982, 1951, 0,
293, 0, 0, 1951, 1175, 0, 721, 1951, 0, 1951,
153, 1820, 0, 1887, 1937, 1951, 0, 0, 1951, 145,
1951, 0, 1951, 293, 1951, 515, 0, 1951, 0, 1951,
1982, 147, 0, 1951, 293, 732, 0, 1250, 0, 1225,
2146, 1239, 1238, 0, 1234, 1242, 1237, 1329, 819, 818,
0, 819, 0, 819, 0, 819, 0, 819, 0, 0,
0, 819, 1847, 1848, 801, 0, 825, 0, 0, 832,
831, 830, 0, 0, 0, 833, 1432, 1272, 0, 1108,
1125, 0, 0, 0, 1000, 1000, 1000, 1121, 216, 214,
0, 0, 0, 0, 0, 0, 1127, 0, 0, 0,
0, 1831, 1833, 1834, 1734, 1801, 0, 2111, 2112, 2113,
1792, 0, 2114, 2115, 2116, 2159, 1646, 1633, 1642, 1647,
1634, 1636, 1643, 2117, 2118, 1922, 2119, 2120, 1841, 2121,
2122, 2124, 2125, 2126, 2127, 1638, 1640, 2128, 2129, 0,
1842, 2131, 2132, 2002, 2134, 2135, 2137, 2138, 1644, 2140,
2141, 2142, 2143, 2144, 2145, 1840, 0, 1645, 2147, 2149,
2150, 2151, 2152, 2153, 2154, 2155, 2156, 0, 0, 1815,
0, 1618, 0, 1464, 1465, 1487, 1488, 1466, 1493, 1494,
1506, 1467, 0, 1814, 1531, 1617, 1623, 0, 1616, 1612,
1331, 1810, 0, 1613, 1830, 1832, 1793, 179, 228, 0,
229, 1816, 2054, 168, 209, 181, 208, 182, 180, 0,
1885, 169, 0, 0, 170, 0, 0, 0, 0, 225,
223, 0, 1116, 0, 1430, 1429, 0, 0, 1799, 1819,
741, 1209, 1210, 1208, 0, 1205, 1207, 1219, 1216, 1806,
1805, 1807, 0, 1324, 0, 0, 0, 1306, 1305, 3,
1222, 1343, 1344, 0, 0, 0, 0, 0, 0, 0,
0, 1386, 1359, 1360, 1362, 1383, 1387, 0, 1312, 0,
0, 1434, 0, 1394, 0, 0, 1829, 0, 0, 0,
0, 735, 0, 0, 0, 0, 0, 0, 117, 1173,
219, 1171, 0, 0, 0, 0, 0, 0, 0, 1178,
0, 151, 152, 526, 511, 0, 1951, 0, 0, 0,
0, 940, 947, 0, 0, 0, 0, 0, 0, 0,
941, 939, 942, 221, 951, 964, 967, 0, 858, 0,
0, 0, 0, 1043, 0, 0, 1043, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 239, 245,
288, 491, 0, 0, 493, 0, 0, 0, 0, 0,
0, 0, 122, 0, 0, 0, 0, 0, 478, 490,
0, 0, 0, 0, 0, 487, 0, 118, 241, 471,
475, 0, 0, 0, 588, 587, 0, 1043, 0, 237,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 307, 308, 0, 0, 0,
122, 144, 0, 0, 0, 243, 0, 0, 1135, 1132,
1133, 0, 1138, 0, 1195, 0, 0, 0, 0, 0,
773, 0, 0, 1887, 1937, 0, 0, 0, 0, 0,
0, 342, 321, 322, 118, 320, 0, 0, 647, 0,
1852, 1475, 1504, 1482, 1504, 1504, 1471, 1471, 1484, 1472,
1473, 1511, 0, 1504, 1471, 1476, 0, 1474, 1514, 1514,
1499, 0, 1456, 1457, 1458, 1459, 1485, 1486, 1460, 1491,
1492, 1461, 1528, 1471, 1853, 0, 0, 658, 0, 1150,
1185, 0, 0, 520, 0, 1951, 0, 120, 692, 0,
648, 0, 120, 0, 156, 0, 583, 0, 0, 0,
0, 0, 0, 608, 607, 0, 0, 0, 649, 0,
120, 474, 1951, 0, 424, 424, 0, 882, 885, 0,
0, 0, 1298, 1300, 1299, 0, 1297, 0, 293, 291,
292, 645, 992, 0, 0, 0, 0, 293, 0, 0,
1951, 293, 1951, 0, 1951, 0, 0, 293, 293, 0,
0, 0, 0, 584, 0, 731, 729, 728, 730, 0,
0, 0, 0, 0, 1951, 293, 0, 0, 714, 1744,
0, 0, 1329, 0, 198, 199, 197, 1240, 200, 1241,
1236, 1224, 0, 809, 0, 813, 0, 804, 0, 810,
0, 805, 802, 803, 0, 808, 0, 0, 425, 427,
0, 0, 1907, 1921, 0, 1942, 1970, 1971, 2045, 2050,
0, 2073, 2082, 0, 834, 863, 829, 0, 0, 1282,
1109, 1750, 0, 1329, 0, 999, 996, 995, 994, 215,
188, 0, 0, 0, 865, 2044, 1124, 783, 511, 0,
1614, 0, 1621, 1622, 1503, 1490, 1791, 0, 0, 1498,
1497, 0, 0, 0, 0, 0, 1480, 1479, 1478, 1620,
1758, 0, 1477, 0, 0, 0, 0, 1504, 1504, 1502,
1551, 0, 1481, 0, 0, 1771, 0, 1777, 0, 0,
0, 1510, 0, 1508, 0, 0, 1587, 0, 0, 0,
0, 0, 0, 0, 0, 1535, 1536, 1618, 1744, 0,
1619, 1837, 0, 0, 1496, 0, 1528, 1813, 1734, 0,
0, 0, 0, 1804, 0, 1742, 0, 0, 1565, 1740,
0, 1567, 0, 0, 0, 1733, 1731, 1732, 1725, 1726,
1727, 1728, 1729, 1730, 1738, 1548, 0, 0, 1547, 0,
0, 1396, 0, 1835, 1794, 230, 231, 227, 0, 0,
184, 183, 0, 202, 206, 207, 178, 205, 0, 201,
186, 1686, 1685, 185, 177, 175, 173, 189, 191, 192,
176, 174, 224, 0, 0, 1855, 2180, 2181, 2182, 2183,
2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193,
2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203,
2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213,
2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223,
2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233,
2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243,
2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253,
2254, 2255, 1796, 1795, 1825, 1856, 1857, 1858, 1859, 1800,
0, 0, 293, 1203, 0, 1200, 1809, 0, 1326, 0,
0, 1212, 1322, 1321, 1352, 1353, 900, 1320, 1377, 1378,
1373, 0, 1392, 1392, 1369, 1363, 1368, 1366, 0, 1370,
1531, 1385, 1310, 1357, 1358, 1361, 1309, 0, 1388, 1386,
1362, 1269, 0, 0, 1435, 0, 0, 0, 0, 0,
0, 0, 0, 0, 736, 0, 0, 0, 0, 0,
0, 2073, 218, 1169, 0, 0, 0, 0, 867, 866,
0, 0, 887, 0, 0, 0, 1181, 413, 0, 290,
0, 0, 0, 0, 0, 0, 0, 0, 0, 524,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 558, 0, 1043, 0,
596, 0, 949, 0, 948, 0, 0, 0, 950, 945,
946, 2045, 2054, 2078, 220, 966, 0, 965, 963, 922,
924, 923, 0, 926, 910, 0, 911, 0, 0, 921,
929, 927, 0, 0, 0, 0, 1930, 247, 260, 0,
1042, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 280, 0, 283, 282, 0, 0, 0, 0, 287,
0, 0, 0, 286, 0, 0, 492, 0, 0, 0,
0, 0, 0, 0, 979, 0, 0, 139, 142, 0,
0, 0, 477, 489, 0, 481, 482, 479, 483, 484,
0, 0, 0, 0, 0, 0, 476, 0, 0, 581,
580, 586, 0, 0, 0, 0, 0, 0, 0, 1035,
1034, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 599, 600, 0, 601, 0,
143, 0, 0, 0, 0, 0, 0, 0, 196, 1131,
1137, 1198, 1826, 1197, 0, 0, 0, 775, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 326, 1852, 0, 673, 646, 0,
1456, 0, 1452, 1448, 1517, 1518, 1519, 1516, 1529, 1515,
0, 1462, 1520, 1471, 1468, 659, 0, 661, 664, 0,
1148, 386, 0, 517, 558, 0, 0, 0, 149, 0,
0, 0, 116, 160, 369, 0, 159, 161, 163, 164,
165, 162, 166, 578, 582, 0, 513, 0, 0, 0,
0, 0, 609, 613, 612, 616, 614, 0, 610, 0,
0, 1444, 0, 138, 470, 473, 0, 0, 0, 371,
455, 300, 0, 0, 884, 0, 0, 0, 0, 0,
0, 0, 1296, 0, 970, 0, 1176, 1951, 293, 0,
968, 154, 1821, 0, 715, 0, 0, 0, 0, 0,
972, 711, 146, 0, 293, 293, 516, 0, 293, 148,
0, 0, 0, 508, 293, 733, 1252, 0, 424, 1226,
1235, 806, 815, 814, 812, 811, 807, 0, 826, 0,
423, 0, 0, 0, 840, 841, 0, 0, 839, 856,
842, 0, 844, 836, 835, 845, 846, 0, 0, 865,
0, 1279, 0, 1277, 0, 1433, 1281, 1270, 1244, 0,
1243, 1247, 1249, 1248, 1246, 0, 0, 0, 823, 0,
0, 293, 1123, 0, 785, 786, 791, 0, 0, 0,
792, 788, 789, 790, 793, 794, 795, 0, 0, 0,
1802, 1754, 0, 1755, 0, 0, 0, 1790, 1786, 0,
0, 0, 0, 0, 0, 1759, 1762, 1763, 1764, 1761,
1765, 1760, 0, 0, 1766, 0, 0, 0, 0, 0,
1501, 1500, 0, 0, 0, 0, 0, 0, 0, 1590,
1623, 0, 0, 1718, 0, 1744, 1776, 0, 0, 1512,
0, 0, 0, 0, 0, 0, 0, 1744, 1782, 0,
0, 0, 0, 1684, 0, 1681, 0, 0, 0, 0,
1801, 0, 0, 0, 0, 1838, 1532, 1549, 1812, 0,
1803, 0, 0, 1533, 1556, 0, 1783, 1583, 0, 1588,
1571, 0, 1564, 0, 1569, 1573, 1552, 1804, 1743, 0,
1741, 0, 0, 1550, 0, 1545, 1543, 1544, 1537, 1538,
1539, 1540, 1541, 1542, 1546, 1722, 1720, 1721, 0, 0,
0, 1568, 1944, 1979, 0, 1342, 1342, 1342, 1330, 1340,
1811, 0, 1439, 0, 0, 0, 0, 1701, 0, 1748,
0, 1746, 1828, 1817, 0, 0, 1528, 0, 1431, 1797,
0, 739, 740, 738, 1222, 1206, 1202, 1201, 1808, 1221,
1329, 0, 898, 899, 0, 903, 0, 0, 1371, 1384,
0, 1282, 1282, 0, 1375, 1376, 1367, 1314, 1313, 0,
1442, 0, 0, 1266, 1259, 1436, 0, 1396, 1284, 1286,
1287, 0, 1801, 671, 670, 0, 0, 0, 1069, 1002,
1047, 737, 1070, 1003, 1048, 1071, 1004, 1170, 0, 1172,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 634, 1951, 293, 1179, 1072, 0,
1005, 289, 1180, 1049, 1184, 1050, 0, 525, 0, 0,
530, 531, 532, 0, 0, 533, 1887, 1937, 0, 538,
544, 548, 539, 0, 549, 545, 0, 0, 0, 0,
0, 0, 555, 562, 0, 0, 0, 0, 0, 0,
943, 944, 1073, 1008, 0, 1051, 925, 1471, 909, 0,
0, 920, 0, 919, 1471, 1471, 1009, 150, 0, 240,
248, 564, 1045, 266, 279, 274, 275, 273, 1951, 293,
1951, 293, 0, 0, 0, 0, 276, 271, 272, 268,
281, 1864, 1923, 2055, 0, 568, 570, 0, 575, 284,
1021, 0, 301, 304, 285, 264, 267, 265, 261, 246,
0, 0, 1824, 0, 0, 974, 0, 0, 0, 141,
1031, 131, 0, 0, 127, 0, 0, 0, 0, 121,
1079, 1013, 0, 0, 242, 472, 480, 485, 1017, 488,
1061, 486, 1085, 1014, 1043, 0, 238, 0, 1015, 0,
1055, 1081, 1033, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1187, 0, 0, 0, 0, 0, 293, 0,
680, 1045, 1951, 293, 1080, 0, 1040, 1067, 0, 309,
0, 1032, 0, 0, 244, 1019, 1063, 0, 0, 194,
193, 195, 0, 0, 0, 0, 0, 0, 0, 0,
777, 748, 776, 0, 0, 0, 0, 0, 0, 0,
742, 341, 318, 319, 0, 0, 317, 323, 0, 672,
0, 0, 1453, 1449, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1469, 660, 0, 0, 0, 0, 1168,
1168, 1168, 1168, 1168, 1168, 1168, 1149, 1177, 118, 0,
0, 0, 519, 557, 564, 0, 592, 595, 0, 593,
0, 0, 0, 0, 0, 132, 119, 0, 700, 424,
155, 0, 0, 0, 512, 657, 655, 654, 656, 0,
0, 0, 677, 653, 0, 1443, 1445, 0, 0, 0,
469, 373, 0, 0, 370, 374, 378, 379, 380, 427,
0, 0, 459, 0, 0, 0, 0, 914, 0, 932,
915, 0, 0, 0, 954, 959, 955, 935, 0, 496,
1301, 1302, 0, 293, 0, 0, 559, 293, 293, 0,
293, 0, 293, 293, 0, 1106, 585, 0, 642, 0,
0, 293, 713, 1745, 827, 426, 0, 0, 0, 0,
838, 0, 494, 843, 0, 855, 850, 852, 0, 859,
1280, 1273, 1275, 1274, 0, 0, 1271, 1751, 712, 0,
0, 293, 0, 860, 0, 787, 0, 0, 0, 0,
1347, 1752, 1753, 0, 0, 0, 0, 1787, 0, 0,
1659, 0, 1635, 1637, 1470, 1649, 0, 1483, 1660, 1661,
1639, 1641, 0, 1735, 0, 0, 1650, 1592, 1593, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1605, 1604, 1651, 1717, 0, 0, 1774, 1775,
1652, 1513, 1514, 1514, 0, 0, 1781, 0, 0, 0,
1657, 1662, 0, 0, 0, 0, 1668, 0, 1689, 0,
0, 0, 1615, 1745, 1505, 1506, 0, 0, 0, 0,
0, 0, 0, 0, 1589, 1572, 1566, 0, 1570, 1574,
0, 0, 0, 0, 1558, 1584, 1554, 0, 0, 1560,
0, 1585, 1342, 1342, 1342, 1342, 1339, 0, 0, 0,
0, 1406, 1395, 1397, 1408, 1399, 1401, 1437, 0, 1818,
0, 1380, 1351, 1351, 0, 1701, 0, 1624, 0, 1701,
0, 0, 171, 0, 203, 190, 0, 1204, 0, 1354,
0, 1736, 903, 901, 902, 1356, 0, 0, 1391, 1390,
1389, 1364, 1268, 0, 1266, 1261, 0, 1262, 1801, 0,
1258, 1291, 0, 0, 1442, 0, 1290, 1068, 1001, 1046,
1168, 870, 871, 0, 869, 0, 0, 0, 412, 886,
0, 0, 0, 634, 0, 0, 416, 0, 1182, 0,
527, 528, 0, 0, 546, 0, 0, 535, 0, 0,
0, 0, 534, 551, 500, 552, 554, 0, 0, 553,
556, 561, 1043, 0, 597, 1023, 0, 1065, 937, 0,
1471, 912, 917, 918, 0, 0, 0, 386, 0, 0,
0, 249, 259, 0, 0, 263, 0, 257, 277, 269,
278, 270, 572, 573, 571, 567, 0, 574, 576, 298,
0, 0, 0, 1075, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1076, 1052, 0, 0, 124,
123, 0, 130, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 310, 295, 0, 0, 0,
0, 0, 312, 0, 0, 0, 0, 1074, 1010, 743,
0, 0, 744, 752, 0, 0, 745, 0, 0, 0,
0, 0, 0, 754, 344, 0, 347, 354, 327, 331,
1186, 0, 1186, 0, 332, 1186, 328, 1186, 325, 2002,
1725, 1726, 668, 675, 665, 667, 669, 666, 0, 674,
634, 0, 0, 0, 1454, 0, 1522, 1523, 1524, 1525,
1526, 1527, 0, 1521, 1528, 662, 663, 0, 1168, 1167,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 398, 0, 0, 392, 0, 0, 959, 385, 388,
389, 520, 523, 521, 522, 550, 0, 591, 0, 564,
134, 0, 0, 135, 133, 0, 300, 369, 0, 0,
615, 618, 611, 0, 676, 678, 651, 0, 564, 0,
1253, 0, 465, 0, 455, 405, 451, 0, 453, 452,
454, 0, 461, 299, 0, 0, 887, 913, 0, 0,
0, 952, 956, 953, 0, 0, 928, 0, 936, 906,
1101, 1102, 1099, 1100, 0, 0, 1293, 971, 0, 293,
969, 716, 0, 707, 0, 709, 973, 293, 293, 602,
0, 509, 0, 0, 0, 837, 857, 0, 853, 0,
0, 820, 862, 1278, 1276, 865, 0, 821, 864, 0,
0, 0, 0, 0, 1756, 1489, 0, 1789, 1785, 0,
1632, 1757, 0, 1769, 1768, 1591, 1770, 0, 1610, 0,
0, 1602, 1600, 1601, 1594, 1595, 1596, 1597, 1598, 1599,
1603, 1779, 1778, 1772, 1773, 1509, 1507, 0, 1654, 1655,
1656, 1780, 1663, 0, 1878, 1690, 1667, 1683, 1682, 0,
0, 0, 1670, 0, 0, 1679, 0, 1719, 1495, 1528,
1534, 0, 0, 1557, 1784, 1575, 0, 0, 0, 1553,
0, 0, 0, 0, 1562, 1735, 0, 0, 0, 0,
0, 0, 1333, 1332, 1338, 1316, 0, 1408, 0, 1407,
1419, 0, 0, 1425, 1423, 0, 1425, 0, 1425, 0,
1400, 0, 1402, 1419, 0, 1819, 1438, 0, 1382, 0,
0, 1350, 0, 1701, 1631, 1704, 1699, 1700, 1749, 1625,
1836, 0, 1747, 1701, 0, 1798, 1327, 0, 1355, 1372,
1365, 1903, 1440, 1267, 0, 0, 1264, 1265, 0, 0,
1285, 1266, 1288, 0, 876, 877, 875, 878, 0, 0,
0, 634, 0, 0, 432, 0, 894, 894, 0, 0,
418, 464, 959, 637, 0, 0, 0, 635, 293, 1006,
0, 547, 0, 0, 543, 541, 540, 542, 501, 1084,
1007, 0, 0, 0, 0, 938, 0, 930, 1022, 0,
383, 0, 254, 1044, 0, 0, 0, 253, 0, 293,
293, 569, 302, 303, 306, 0, 0, 0, 0, 0,
0, 701, 684, 0, 0, 702, 703, 0, 0, 0,
976, 977, 975, 128, 125, 126, 129, 1018, 1062, 1016,
0, 1056, 1027, 1025, 0, 0, 0, 0, 0, 1083,
1039, 1060, 1082, 1037, 1058, 1036, 1057, 1038, 1059, 1030,
0, 1447, 682, 681, 0, 293, 293, 604, 1020, 1064,
0, 746, 0, 0, 747, 758, 756, 755, 757, 749,
345, 118, 0, 324, 0, 352, 0, 350, 349, 351,
0, 338, 0, 0, 0, 0, 0, 644, 0, 0,
0, 1450, 1455, 1530, 1463, 633, 0, 1159, 1158, 1157,
1161, 1160, 1163, 1162, 1154, 1153, 1166, 1165, 1152, 1151,
1156, 1155, 0, 390, 0, 396, 400, 401, 399, 391,
959, 424, 463, 518, 0, 594, 589, 137, 136, 0,
0, 0, 0, 620, 624, 652, 0, 1446, 598, 0,
371, 469, 467, 0, 0, 376, 381, 382, 0, 459,
402, 0, 455, 375, 0, 0, 466, 1146, 0, 0,
916, 933, 934, 0, 0, 959, 958, 0, 503, 293,
560, 293, 293, 1107, 643, 0, 849, 848, 847, 495,
0, 851, 293, 0, 0, 0, 0, 0, 797, 778,
796, 1788, 1648, 1658, 1767, 0, 0, 1611, 0, 0,
1653, 2148, 0, 0, 0, 0, 1687, 1688, 1669, 0,
1993, 1674, 0, 0, 0, 1839, 1581, 1579, 1576, 0,
1577, 0, 0, 1559, 1555, 0, 1561, 1586, 1337, 1336,
1335, 1334, 1410, 1417, 0, 1398, 0, 1424, 1420, 0,
1421, 0, 0, 1422, 0, 0, 1417, 0, 0, 0,
0, 1695, 1701, 1701, 1626, 1706, 1703, 0, 1628, 1528,
0, 0, 1260, 1263, 0, 1292, 1283, 1174, 0, 0,
0, 414, 0, 959, 0, 0, 0, 897, 897, 0,
959, 463, 639, 638, 641, 636, 640, 1183, 0, 536,
537, 1024, 0, 1066, 1028, 931, 0, 565, 250, 251,
252, 255, 295, 262, 256, 0, 1077, 1011, 1053, 0,
0, 690, 0, 0, 0, 0, 1078, 1012, 1054, 0,
0, 0, 0, 1192, 0, 294, 295, 311, 1041, 0,
750, 751, 326, 0, 348, 357, 0, 355, 329, 334,
0, 336, 335, 330, 333, 1451, 0, 990, 990, 0,
634, 1164, 0, 0, 387, 463, 431, 0, 393, 0,
0, 0, 371, 564, 619, 0, 0, 0, 679, 373,
0, 1251, 468, 372, 0, 0, 461, 0, 0, 0,
459, 0, 456, 0, 460, 0, 1141, 0, 0, 957,
0, 961, 0, 927, 904, 1439, 0, 507, 991, 708,
710, 603, 854, 861, 293, 779, 780, 781, 782, 1606,
0, 0, 0, 0, 1664, 0, 1665, 1692, 1691, 1671,
1675, 0, 1672, 1673, 1578, 1582, 1580, 1563, 1409, 0,
0, 1411, 0, 0, 1413, 1415, 0, 0, 0, 0,
0, 1822, 1701, 1379, 1381, 0, 1317, 1629, 1630, 0,
1351, 1701, 204, 1737, 1441, 1289, 855, 0, 293, 894,
463, 433, 2002, 434, 893, 0, 895, 900, 900, 0,
463, 634, 529, 0, 563, 0, 297, 305, 0, 0,
697, 685, 0, 0, 704, 1026, 0, 0, 0, 0,
0, 293, 753, 316, 343, 353, 0, 337, 990, 0,
987, 986, 632, 0, 422, 394, 0, 442, 0, 564,
694, 1146, 577, 621, 622, 617, 0, 0, 455, 451,
377, 386, 360, 411, 410, 407, 406, 408, 409, 404,
403, 0, 461, 457, 458, 0, 0, 0, 1194, 0,
888, 960, 0, 0, 0, 502, 0, 0, 506, 497,
822, 1607, 0, 1608, 0, 0, 0, 1677, 1676, 0,
1418, 1427, 0, 1414, 1412, 1403, 0, 1405, 1694, 1696,
0, 0, 1709, 1627, 872, 0, 873, 897, 437, 0,
896, 903, 903, 424, 634, 415, 1029, 566, 0, 258,
0, 688, 0, 699, 697, 0, 0, 1188, 0, 1189,
1190, 1193, 313, 356, 985, 989, 988, 0, 0, 395,
428, 429, 430, 0, 397, 438, 439, 0, 590, 0,
0, 1142, 0, 0, 459, 455, 384, 450, 358, 0,
1143, 0, 300, 0, 959, 962, 1105, 505, 504, 1609,
1680, 1666, 1693, 1678, 1416, 0, 1404, 0, 0, 1705,
0, 0, 0, 0, 900, 0, 634, 0, 891, 890,
431, 417, 296, 0, 0, 695, 698, 686, 699, 706,
705, 0, 0, 421, 0, 0, 0, 440, 0, 441,
462, 693, 0, 623, 0, 461, 459, 1144, 1145, 461,
889, 905, 1104, 1103, 1329, 1426, 1697, 1698, 2110, 1903,
2084, 0, 1707, 1710, 1708, 1702, 293, 903, 0, 419,
435, 442, 0, 0, 687, 1191, 624, 447, 0, 446,
0, 444, 443, 683, 627, 361, 461, 1439, 1087, 1329,
1086, 1088, 1096, 1093, 1095, 1094, 1092, 0, 1714, 1713,
1712, 1716, 1715, 874, 892, 0, 634, 689, 696, 0,
445, 449, 448, 629, 0, 625, 628, 630, 631, 359,
879, 0, 1097, 1091, 1316, 1303, 0, 436, 420, 0,
605, 0, 1089, 1329, 1711, 0, 626, 1090, 0, 627,
0, 606
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 48, 49, 50, 51, 1169, 2058, 1937, 2705, 2706,
52, 53, 1243, 54, 55, 56, 57, 58, 59, 60,
1184, 61, 62, 853, 1384, 2066, 63, 1812, 669, 670,
1656, 1657, 1999, 1658, 1646, 1085, 1468, 1203, 1171, 1204,
65, 66, 1079, 1637, 67, 68, 69, 1228, 1229, 1179,
1421, 3561, 4099, 1923, 2744, 2541, 2542, 70, 1285, 1286,
71, 72, 2654, 1324, 2656, 2657, 3158, 509, 2023, 3581,
3582, 3145, 3146, 3588, 3846, 3847, 73, 1381, 2733, 3244,
2734, 3654, 2735, 3655, 2736, 3656, 2687, 3208, 3209, 3210,
2737, 3660, 4039, 2738, 1827, 4119, 2100, 1490, 1488, 4017,
3463, 3464, 4166, 4124, 4125, 4126, 4231, 3662, 2742, 3252,
3666, 3868, 2444, 588, 1403, 3242, 75, 76, 2094, 1259,
1260, 1944, 3162, 2793, 77, 870, 3023, 3907, 4058, 4059,
78, 197, 79, 1388, 80, 81, 2053, 2692, 82, 1839,
2457, 83, 84, 2482, 2483, 2484, 85, 86, 3047, 3806,
1230, 2534, 2535, 2536, 2537, 3067, 87, 1386, 1265, 2075,
88, 89, 90, 2057, 2698, 2699, 91, 92, 1987, 93,
94, 95, 1396, 2087, 2088, 3644, 3875, 4025, 3877, 4264,
4265, 3860, 3006, 3477, 96, 97, 98, 99, 1367, 2046,
2047, 3163, 1155, 1328, 2026, 2027, 3233, 3234, 100, 101,
3521, 3522, 539, 4130, 4103, 4177, 102, 103, 3525, 3526,
104, 105, 106, 107, 108, 582, 914, 915, 1161, 109,
1752, 110, 828, 2641, 111, 979, 2218, 3699, 112, 611,
929, 930, 113, 114, 620, 2198, 622, 1503, 2795, 2796,
3301, 2168, 753, 115, 116, 2179, 2201, 117, 1172, 1818,
1819, 3458, 118, 540, 1408, 2103, 2439, 4049, 3465, 3787,
3977, 2385, 2965, 119, 541, 1208, 1885, 2106, 2748, 2749,
1887, 2358, 3265, 1889, 2750, 2755, 2756, 2757, 3261, 3269,
3901, 3902, 120, 1206, 1878, 121, 122, 123, 1238, 772,
124, 552, 553, 125, 4010, 126, 882, 127, 638, 1516,
128, 1901, 3053, 129, 130, 131, 4240, 4271, 4272, 4273,
3274, 4204, 132, 4242, 959, 134, 135, 136, 171, 796,
797, 798, 137, 3896, 138, 139, 2050, 2686, 3190, 140,
141, 1813, 2429, 142, 143, 144, 1371, 145, 146, 147,
148, 1304, 149, 1114, 1115, 150, 151, 504, 686, 1118,
1126, 152, 590, 923, 924, 925, 1470, 153, 962, 2190,
591, 917, 155, 592, 2403, 2976, 2977, 2980, 593, 2400,
158, 1509, 2184, 2187, 594, 2407, 2408, 2409, 2410, 2411,
2982, 595, 613, 873, 2111, 596, 1051, 163, 164, 165,
695, 690, 691, 167, 1631, 2348, 628, 1133, 657, 703,
3421, 1764, 1765, 1785, 1786, 1142, 1143, 1775, 1777, 2387,
1778, 2396, 1770, 3418, 3761, 1781, 1782, 1145, 1146, 2391,
168, 2352, 2932, 2933, 2934, 3399, 3409, 3748, 3944, 2935,
957, 1152, 2936, 2941, 2974, 2724, 2725, 2726, 1890, 2033,
1352, 1052, 1353, 2044, 1053, 1552, 1355, 1054, 1055, 1056,
1358, 1057, 1058, 1059, 1060, 1535, 1594, 1061, 1062, 1571,
2041, 2042, 1459, 2258, 1064, 1065, 3365, 3723, 3712, 2284,
2285, 1653, 3361, 2884, 3956, 4078, 4079, 3429, 3426, 3765,
3960, 4162, 4212, 4213, 1066, 2338, 1624, 774, 1067, 3165,
1626, 2278, 2360, 2361, 1797, 1533, 2224, 2242, 2243, 2255,
2845, 2262, 2267, 2868, 2869, 2279, 2307, 1068, 2227, 2228,
2828, 1537, 1069, 1108, 1109, 1530, 2302, 1121, 1122, 688,
1070, 1071, 1504, 679, 3940, 891, 744, 2551, 1743, 800,
625, 1072, 1073, 1074, 1075, 2797, 1234, 500, 738, 2538,
501, 502, 740, 1748
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -3866
static const int yypact[] =
{
6714, 1130, 10084, -3866, -3866, 1130, -3866, 46296, -12, 619,
56, 128, 12079, 46703, 54436, 219, 264, 7882, 1130, 54436,
921, 37342, 42226, 54436, 401, 534, 37342, 54436, 54843, 719,
1068, 55250, 47110, 41005, 792, 54436, 713, 325, 55657, 47517,
686, 47924, 534, 34513, 107, 705, 56064, 1634, 1212, 822,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -12, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, 197, -3866, 668, 340, 1296, 140, 838, -3866,
-3866, -3866, 38970, 54436, 54436, 54436, 1063, 54436, 54436, 137,
38970, 54436, 56471, 1107, 31177, -3866, 54436, 54436, 56878, 54436,
48331, 54436, 1103, 54436, 54436, 57285, 57692, 1248, 1150, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, 54436, 10117, 401, -3866, -3866, 54436,
1099, 38970, 54436, 1031, 54436, 1127, 54436, -3866, 54436, 58099,
659, 1610, 54436, 1635, 31597, 1253, 54436, 54436, 54436, 54436,
-3866, -3866, 1362, 54436, 54436, -3866, -3866, 58506, 906, 1604,
1550, 160, -3866, 48738, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, 49145, 264, -3866, -3866, 39377, 54436, 1568, -3866, -3866,
58913, -3866, -3866, 660, 39784, 59320, 1668, 32017, 1704, 59727,
60134, -3866, -3866, 60541, -3866, 60948, 1451, 61355, -3866, 61762,
-3866, 1590, 62169, -3866, 1341, 1034, 905, 28279, -3866, -12,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 294, 1528,
228, 171, 259, -3866, -3866, 175, 186, 189, 294, 1782,
1782, -3866, 54436, -3866, -3866, 1528, 15, 1393, 1393, 1393,
1577, 522, -3866, 1393, -3866, -3866, -3866, -3866, 47924, -3866,
1402, 401, 1419, 1809, 54436, -3866, 54436, -3866, 54436, 54436,
-3866, -3866, 1858, 1491, 1719, 1499, -3866, 1667, 1696, 1703,
80, 401, 1663, -3866, 1877, -3866, 1789, 19045, 401, 49552,
62576, 179, 49145, 401, 49959, 1637, 1621, 1805, -3866, -3866,
631, -3866, 2026, 1686, 1908, 1499, 1150, 29105, -3866, 1695,
-40, 47924, -3866, -3866, -3866, 300, 1975, 19469, -3866, 54436,
1700, -3866, 1709, 1712, 1716, 1296, -3866, 6714, 54436, 815,
815, 2099, 815, 1742, 1764, -3866, 1455, -3866, 2000, 1983,
47924, 705, 191, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, 1757, -40, -3866, 194,
-3866, 109, 1762, 1059, 1570, -3866, -3866, 771, 1857, 184,
11, 1799, 50366, 5120, 1781, 399, -3866, 2078, 1967, 261,
-3866, 54436, 54436, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, 1794, -3866, -3866, 1796, 1288, 1407, 2096, 3927,
1371, 2108, 2293, 1694, 796, 2025, 1326, 2104, 1575, 2121,
6371, 54436, -3866, 2097, 2203, 68, -3866, 86, -3866, 1940,
2076, 39, 38970, 1911, -3866, -3866, 54436, -3866, -3866, -3866,
-3866, 674, 38970, -3866, 2137, 32437, -3866, 54436, -3866, -3866,
-3866, -3866, -3866, 2077, 54436, -3866, -3866, 2206, 54436, -3866,
1393, 396, 1981, 2351, 71079, 67, 54436, 2032, 2387, 2196,
2032, 2034, 62983, -3866, -3866, 2032, -3866, -3866, 54436, 54436,
2015, 1504, 2032, 2397, 2415, 2093, 2213, 807, 911, 154,
2335, 2032, 54436, 63390, 54436, 54436, 2419, 38970, 54436, -3866,
2223, -3866, -3866, 1100, -3866, -3866, -3866, -3866, 2348, 1757,
181, 2366, 2075, 2369, -3866, 2111, -3866, 2373, 1781, 2375,
2080, -3866, 63797, 64204, 64611, 2377, 1794, 54436, 2379, 2080,
2382, 2271, 2384, 181, 2385, -3866, 920, 2388, 2275, 2390,
1395, 2080, 50773, 2392, 119, -3866, 21165, -3866, 2187, -3866,
705, -3866, -3866, 1175, -3866, 36935, -3866, 905, 1528, -3866,
54436, 1528, 54436, 1528, 54436, 1528, 54436, 1528, 54436, 54436,
54436, 1528, -3866, -3866, -3866, 54436, 2106, 54436, 54436, -3866,
-3866, -3866, 43040, 54436, 43447, -3866, -3866, 85, 401, -3866,
-3866, 71079, 2499, 54436, 2391, 2391, 2391, -3866, -3866, -3866,
2327, 54436, 2389, 2393, 43040, 54436, -3866, 65018, 49145, 2290,
2113, -3866, -3866, -3866, -3866, -3866, 1758, 2535, 195, 2536,
21165, 2116, 182, 182, 2120, 2404, -3866, -3866, -3866, 203,
2124, 2125, -3866, 229, 229, 2284, 2132, 2133, -3866, 242,
2134, 2557, 2558, 244, 2139, 2140, 2141, 1345, 182, 21165,
-3866, 2143, 229, 2144, 2145, 2146, 2569, 2149, -3866, 2573,
2154, 255, 293, 2155, 2158, -3866, 2132, -3866, 206, 2160,
2162, 2164, 2165, 2166, 2167, 2170, 2171, 21165, 21165, -3866,
18197, -40, 401, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
135, -3866, 246, 4431, -3866, -3866, 2342, 21165, -3866, -3866,
72, -3866, 247, -3866, -3866, -3866, -40, -3866, -3866, 257,
2173, -3866, 1683, -3866, -3866, -3866, -3866, -3866, -3866, 44261,
2574, -3866, 292, 401, 86, 283, 2520, 36121, 36528, -3866,
-3866, 2401, -3866, 54436, -3866, -3866, 21165, 34106, -3866, -40,
130, -3866, -3866, -3866, 1385, -3866, -3866, -3866, -12, -3866,
9740, -3866, 1416, 1700, 54436, 54436, 2577, -3866, -3866, -3866,
1709, -3866, -3866, 1296, 1296, 21165, 1296, 209, 956, 19893,
21165, 2464, 2367, 224, 698, 2465, -3866, 1742, 1764, 47924,
54436, 65425, 2294, -3866, 35327, 1075, -40, 2262, 2263, 2309,
38156, 2189, 2266, 2267, 2314, 2268, 2270, 65832, -3866, -3866,
-3866, -3866, 1280, 1164, 1018, 2273, 309, 648, 2552, -3866,
2325, -3866, -3866, -3866, 2477, 54436, 2500, 6745, 2395, 261,
2322, -3866, -3866, 2432, 2285, 2286, 2405, 261, 720, 66239,
-3866, -3866, -3866, -3866, -3866, -3866, 5809, 16567, -3866, 2291,
2274, 54436, 40191, 2578, 2402, 1061, 303, 220, 54436, 2475,
2411, 54436, 2225, 2302, 2303, 2230, 1313, 2582, 2229, -3866,
-3866, -3866, 1543, 2403, -3866, 2289, 2292, 69880, 1087, 32857,
2563, 2312, -3866, 1370, 2316, 2319, 54436, 261, -3866, 2617,
261, 261, 1094, 2624, 2321, 304, 1372, 2032, 2229, 1514,
-3866, 2324, 2326, 368, -3866, 2424, 47924, 199, 1396, 2229,
2332, 2333, 2230, 2230, 54436, 54436, 54436, 54436, 54436, 168,
2642, 2649, 2337, 187, 2380, 2264, -3866, 44668, 2345, 62576,
-3866, -3866, 54436, 2346, 1652, 2229, 1424, 1520, -3866, -3866,
-3866, 1150, -3866, 54436, -3866, 54436, 1757, 71079, 2453, 2305,
-3866, 1781, 261, 54436, 54436, 1794, 986, 950, 2456, 54436,
2512, 2315, -3866, -3866, 2032, -3866, 35724, 2015, -3866, 2278,
-3866, -3866, 2328, -3866, 2328, 2328, 2282, 2282, 2283, -3866,
-3866, -3866, 1345, 2328, 2282, -3866, 71871, -3866, 1224, 1255,
-3866, 2679, 2682, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, 989, 1692, -3866, 54436, 38156, -3866, 2694, -3866,
-3866, 71079, 2581, -3866, 54436, 2484, 2295, -3866, 2614, 2344,
-3866, 2334, -3866, 54436, 790, 401, 2338, 54436, 2505, 54436,
54436, 54436, 54436, -3866, -3866, 2480, 820, 151, -3866, 44668,
-3866, 1514, 2492, 2705, 30, 1393, 2592, -3866, 54436, 2320,
2709, 2548, -3866, 1165, -3866, 2440, -3866, 38970, 181, -3866,
-3866, -3866, -3866, 71079, 54436, 66646, 38970, 181, 54436, 54436,
2615, 119, 2616, 2378, 2620, 2381, 32857, 181, 139, 54436,
54436, 54436, 54436, -3866, 54436, -3866, -3866, -3866, -3866, 54436,
54436, 54436, 44668, 2622, 2623, 181, 54436, 54436, -3866, 9740,
1441, 54436, 905, 43854, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, 54436, -3866, 54436, -3866, 54436, -3866, 54436, -3866,
54436, -3866, -3866, -3866, 54436, -3866, 54436, 1483, -3866, -3866,
1602, 708, 54436, 54436, 696, 38970, 54436, 2517, 54436, 54436,
54436, 54436, 54436, 2407, 2173, -28, -3866, 725, 47924, 2524,
-3866, -3866, 1620, 1634, 763, -3866, -3866, -3866, -3866, -3866,
-3866, 43447, 42226, 2611, 301, 54436, -3866, -3866, 2671, 21165,
-40, 18621, -3866, -3866, -3866, 2347, 9740, 2376, 21165, -3866,
-3866, 21165, 2349, 1782, 1782, 21165, -3866, -3866, -3866, -3866,
910, 1782, -3866, 21165, 21165, 1782, 1782, 2328, 2328, -3866,
4920, 21165, -3866, 32857, 21165, 23709, 15737, 21165, 2421, 2363,
1782, -3866, 1782, -3866, 21165, 17773, -3866, 21165, 2550, 24551,
21165, 283, 2555, 21165, 283, 2770, 2770, 1861, 4466, 2352,
-40, -3866, 2466, 1782, -3866, 1782, 685, -3866, 190, 71079,
21165, 38156, 2433, 166, 54436, 21165, 2361, 1412, -3866, 21165,
984, -3866, 2362, 21165, 2439, 21165, 21165, 21165, 21165, 21165,
21165, 21165, 21165, 21165, -3866, 25377, 213, 804, 1501, 51180,
19045, 2646, 15312, -3866, 234, -3866, -3866, -3866, 54436, 2574,
-3866, -3866, 2438, -3866, -3866, -3866, -3866, -3866, 248, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, 2371, -3866, -3866, -3866,
-3866, 2371, -3866, 2370, 2313, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
2640, 2641, 181, 54436, 300, 45075, -3866, 19469, -3866, 1636,
2383, -3866, 2619, -3866, 2386, -3866, 8091, 2619, -3866, -3866,
265, 2564, 2570, 2570, -3866, 2410, 9740, -3866, 1582, 9740,
1632, -3866, -3866, -3866, -3866, -3866, -3866, 1232, -3866, 2464,
698, 2441, 1003, 54436, -3866, 29518, 2412, 1645, 2461, 2462,
2510, 54436, 54436, 54436, -3866, 38156, 54436, 54436, 54436, 54436,
54436, 54436, -3866, 2745, 894, 42226, 2515, 41412, -3866, -3866,
2406, 54436, 2460, 2648, 2650, 882, -3866, -3866, 67053, -3866,
2600, 54436, 54436, 54436, 21165, 2604, 54436, 54436, 54436, 2494,
38970, 2418, 54436, 54436, 54436, 676, 38970, 33277, 54436, 54436,
54436, 54436, 2539, 54436, 54436, 2652, 1111, 47924, 352, 1690,
2229, 2613, -3866, 1028, -3866, 54436, 54436, 2605, -3866, -3866,
-3866, 49145, 2814, 2527, -3866, -3866, 67460, -3866, -3866, 2603,
-3866, -3866, 71871, -3866, -3866, 1699, -3866, 71475, 67867, -3866,
-3866, 386, 54436, 54436, 7094, 54436, 945, -3866, -3866, 71079,
-3866, 54436, 54436, 54436, 45482, 68263, 68670, 1254, 1355, 54436,
45889, -3866, 54436, -3866, -3866, 38563, 54436, 54436, 38156, -3866,
54436, 2612, 225, -3866, 54436, 2841, -3866, 2506, 54436, 54436,
2430, 1707, 2509, 2559, -3866, 54436, 54436, 765, -3866, 54436,
54436, 6124, -3866, -3866, 261, -3866, -3866, -3866, -3866, -3866,
54436, 54436, 261, 54436, 261, 741, -3866, 54436, 54436, -3866,
-3866, -3866, 7539, 54436, 54436, 54436, 54436, 54436, 54436, -3866,
-3866, 1429, 34, 1243, 1275, 2572, 54436, 401, 54436, 69077,
54436, 54436, 54436, 54436, 314, -3866, -3866, 2551, -3866, 54436,
765, 8520, 54436, 54436, 2518, 2523, 150, 2584, -3866, -3866,
-3866, -3866, -3866, -3866, 2685, 2846, 54436, -3866, 2689, 2690,
2508, 2514, 2692, 738, 54436, 54436, 54436, 54436, 54436, 54436,
2693, 738, 2645, 123, 2467, 2478, 1724, -3866, -3866, 21165,
2862, 71079, 2470, 2471, 2544, 2546, 2547, -3866, 2474, 2549,
1782, -3866, -3866, 1763, -3866, -3866, 1728, -3866, 2489, 820,
1495, -3866, 54436, 706, 642, 2769, 16963, 2588, 1502, 2761,
54436, 54436, 1502, -3866, 1480, 42226, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, 2760, -3866, 401, 2015, 2015,
2015, 2015, -3866, -3866, -3866, -3866, 2667, 1580, -3866, 2485,
2015, 54436, 2594, 1502, -3866, 1514, 2778, 1140, 54436, 40598,
1600, 2522, 401, 2669, -3866, 17377, 3806, 2670, 49145, 2756,
2757, 2776, -3866, 1757, -3866, 2892, -3866, 2791, 181, 1781,
-3866, 2080, -3866, 54436, -3866, 54436, 54436, 54436, 54436, 1794,
-3866, -3866, 2080, 2680, 181, 181, -3866, 2681, 181, 2080,
2618, 2784, 49145, -3866, 119, -3866, -3866, 21165, 1393, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, 1732, -3866, 54436,
-3866, 2762, 2763, 2765, 2080, 2501, 2541, 54436, 2516, -3866,
2080, 261, 2080, 2173, 2173, 2080, 2501, 51587, 2919, 2783,
677, -3866, 747, 581, 2724, -3866, -3866, -3866, -3866, 71079,
-3866, -3866, -3866, -3866, -3866, 54436, 104, 2702, 2521, 51587,
2904, 181, -3866, 38970, -3866, -3866, -3866, 2621, 38970, 2714,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, 2759, 54436, 1734,
-3866, -3866, 1245, -3866, 1526, 21165, 21165, 170, -3866, 8430,
1738, 21165, 2530, 2531, 1739, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, 2532, 2810, -3866, 2540, 1740, 1750, 2542, 2553,
-3866, -3866, 3401, 2556, 8718, 2560, 23709, 23709, 480, -3866,
-3866, 23709, 2562, -3866, 1751, 7940, 2545, 2567, 2568, -3866,
2571, 2580, 8730, 20317, 21165, 20317, 20317, 9147, 2545, 2583,
1784, 38156, 2699, 9210, 1786, -3866, 21165, 38156, 4125, 21165,
-3866, 21165, 54436, 2585, 2587, -3866, -3866, 4920, -3866, 2586,
-3866, 23709, 23709, -3866, 2758, 18197, -3866, -3866, 2816, -3866,
-3866, 1508, -3866, 2565, -3866, -3866, 4938, 188, 21165, 2361,
21165, 2627, 32857, 3663, 21165, 5400, 1953, 1953, 432, 432,
177, 177, 177, 1841, 1501, -3866, -3866, -3866, 2575, 2149,
21165, -3866, 1855, 1915, 54436, 2444, 3351, 3561, -3866, -3866,
-3866, 26627, 2593, 21165, 21165, 21165, 2590, 2721, 2973, 9740,
808, -3866, 2977, -3866, 1150, 1782, 685, 36935, -3866, -3866,
21165, -3866, -3866, -3866, 1709, -3866, -3866, -3866, -3866, -3866,
1634, 21165, -3866, -3866, 657, 1666, 21165, 1582, -3866, -3866,
54436, 2524, 2524, 21165, -3866, -3866, -3866, -3866, -3866, 26627,
2607, 2625, 28692, 2700, -3866, -3866, 54436, 138, -3866, -3866,
-3866, 2595, -3866, -3866, -3866, 54436, 54436, 54436, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, 2792, -3866,
54436, 54436, 2753, 54436, 2772, 2773, 21165, 245, 54436, 2596,
2597, 1037, 2836, 54436, -3866, 2877, 181, -3866, -3866, 2666,
-3866, 9740, -3866, -3866, -3866, -3866, 49145, -3866, 1757, 71079,
-3866, -3866, -3866, 2629, 54436, -3866, 54436, 54436, 1794, -3866,
-3866, -3866, -3866, 1109, -3866, -3866, 54436, 54436, 615, 2673,
2674, 54436, -3866, 704, 2424, 9001, 54436, 54436, 54436, 2849,
-3866, -3866, -3866, -3866, 2790, -3866, -3866, 1692, -3866, 67867,
71475, -3866, 71475, -3866, 1692, 1597, -3866, 2080, 2683, 2229,
-3866, 2786, 1349, -3866, -3866, -3866, -3866, -3866, 2899, 181,
2900, 181, 54436, 54436, 54436, 54436, -3866, -3866, -3866, -3866,
-3866, 38156, 38156, 38156, 1792, -3866, -3866, 401, -3866, -3866,
-3866, 1801, -3866, 1133, -3866, -3866, -3866, -3866, -3866, -3866,
54436, 1207, -3866, 762, 71079, -3866, 70276, 54436, 54436, -3866,
-3866, -3866, 2830, 2775, -3866, 744, 2777, 54436, 2672, -3866,
-3866, -3866, 2695, 1748, 2229, 1514, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, 363, 1760, 2229, 2697, -3866, 2698,
-3866, -3866, -3866, 2826, 2828, 2829, 2701, 2703, 2739, 2704,
2706, 2744, -3866, 2713, 2747, 2715, 2754, 2716, 181, 71079,
1697, 2733, 2932, 181, -3866, 2717, -3866, -3866, 3033, -3866,
54436, -3866, 2720, 1914, 2229, -3866, -3866, 54436, 54436, -3866,
-3866, -3866, 738, 71079, 2883, 738, 738, 54436, 54436, 738,
-3866, -3866, -3866, 2884, 2885, 2886, 2887, 2894, 2895, 738,
-3866, -3866, -3866, -3866, 396, 38156, -3866, 2047, 30757, -3866,
3084, 4956, 2664, 2471, 2662, 1782, 156, 136, 103, 2785,
1782, 2871, 2675, -3866, -3866, 38156, 30757, 1720, 2890, 2686,
2686, 2686, 2686, 2686, 2686, 2686, -3866, 1488, 2032, 49145,
54436, 49145, -3866, 642, 2786, 54436, -3866, -3866, 1807, -3866,
54436, 54436, 153, 54436, 1782, -3866, -3866, 2740, -3866, 1393,
790, 2802, 1123, 3007, -3866, -3866, -3866, -3866, -3866, 54436,
54436, 820, 401, -3866, 2678, 2676, -3866, 54436, 54436, 54436,
2718, 2687, 54436, 2688, 2677, -3866, -3866, -3866, -3866, 71079,
64, 2872, 2870, 2230, 3087, 2771, 54436, -3866, 1829, 111,
-3866, 401, 49145, 69484, -3866, 3061, -3866, -3866, 667, 2962,
-3866, -3866, 1634, 181, 71079, 54436, -3866, 181, 119, 2750,
181, 2751, 181, 181, 54436, -3866, -3866, 54436, -3866, 54436,
44668, 181, -3866, 9740, -3866, -3866, 2819, 2820, 2832, 54436,
2080, 38970, -3866, 2707, 54436, -22, -3866, -3866, 2891, -3866,
-3866, -3866, -3866, -3866, 3009, 3012, -3866, -3866, -3866, 54436,
43040, 263, 54436, -3866, 1757, -3866, 1781, 261, 54436, 2954,
-3866, -3866, -3866, 2722, 1853, 9412, 21165, -3866, 3021, 71079,
-3866, 5279, -3866, -3866, -3866, -3866, 21165, -3866, -3866, -3866,
-3866, -3866, 21165, -3866, 21165, 2998, -3866, 3138, 3138, 71079,
23709, 1496, 2144, 23709, 23709, 23709, 23709, 23709, 23709, 23709,
23709, 23709, 25801, 411, -3866, -3866, 21165, 21165, 3005, 2998,
-3866, -3866, 1315, 1315, 71079, 2725, 2545, 2726, 2727, 21165,
-3866, -3866, 1860, 24964, 2728, 38156, -3866, 21165, 8140, 1886,
2766, 9299, -40, 5381, -3866, 3098, 401, 21165, 1058, 1364,
21165, 1888, 21165, 3008, -3866, -3866, -3866, 2731, -3866, -3866,
71079, 21165, 23709, 23709, 5158, -3866, 5417, 21165, 2732, 5677,
18197, -3866, 534, 534, 534, 534, -3866, 54436, 54436, 54436,
26214, 51994, 2734, 1822, -3866, 51994, 52401, -3866, 2735, -40,
21165, 3010, 548, 548, 2736, 2721, 29931, -3866, 21165, 226,
20741, 2738, 86, 2742, -3866, -3866, 4160, -3866, 2743, -3866,
2741, -3866, 1666, -3866, -3866, -3866, 5837, 2924, 2173, -3866,
-3866, -3866, 2734, 21589, 2700, -3866, 1893, -3866, -3866, 19045,
-3866, -3866, 1900, 29518, 2607, 19469, -40, -3866, -3866, -3866,
2686, 2080, 2080, 1054, 2080, 3028, 1054, 6481, -3866, -3866,
27040, 54436, 54436, -3866, 54436, 1904, 1523, 54436, -3866, 54436,
-3866, -3866, 3135, 54436, -3866, 2800, 2813, -3866, 54436, 54436,
54436, 54436, -3866, -3866, 1762, -3866, -3866, 54436, 54436, -3866,
-3866, -3866, 384, 1984, 2229, -3866, 2837, -3866, -3866, 3011,
1612, -3866, -3866, -3866, 2827, 54436, 2764, -3866, 690, 2230,
1055, -3866, -3866, 2833, 54436, -3866, 54436, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, 38563, -3866, -3866, -3866,
38156, 30757, 38156, -3866, 2839, 2843, 2893, 789, 638, 2845,
2847, 2897, 2774, 2779, 2780, -3866, -3866, 294, 401, -3866,
-3866, 401, 2080, 401, 54436, 54436, 54436, 54436, 54436, 54436,
54436, 3048, 722, 1606, 54436, 54436, 54436, 54436, 54436, 54436,
54436, 54436, 54436, 54436, 54436, -3866, 3136, 401, 401, 3112,
2850, 54436, -3866, 54436, 2424, 54436, 54436, -3866, -3866, -3866,
2787, 738, -3866, -3866, 3019, 3022, -3866, 738, 738, 738,
738, 738, 738, -3866, 196, 1905, -3866, 27866, -3866, -3866,
2387, 401, 2387, 586, -3866, 2387, -3866, 2387, -3866, 2741,
1782, 1543, -3866, -3866, -3866, -3866, -3866, -3866, 2478, -3866,
-3866, 1782, 1843, 2794, -3866, 2795, -3866, -3866, -3866, -3866,
-3866, -3866, 2789, -3866, 685, -3866, -3866, 54436, 2686, -3866,
1498, 341, 1040, 1042, 52808, 53215, 53622, 2796, 54436, 54436,
23709, -3866, 779, 778, -3866, 3017, 54436, 2831, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, 2295, -3866, 54436, 2786,
2080, 54436, 54436, 2080, -3866, 71079, 2522, 1034, 63390, 2835,
2798, 3076, -3866, 2797, 2803, -3866, -3866, 54436, 2786, 45,
1341, 223, -3866, 41819, 1600, -3866, 3049, 40598, -3866, -3866,
-3866, 3161, 2896, -3866, 1634, 401, 2460, -3866, 67867, 21165,
21165, -3866, 2804, -3866, 2812, 5660, -3866, 2015, -3866, -3866,
-3866, -3866, -3866, -3866, 2889, 54436, -3866, -3866, 2817, 181,
-3866, -3866, 54436, -3866, 54436, -3866, -3866, 181, 181, -3866,
2934, -3866, 54436, 54436, 54436, 2080, -3866, 261, -3866, 3096,
51587, -3866, -3866, -3866, -3866, 301, 3103, -3866, -3866, 3065,
3068, 3070, 3074, 774, -3866, -3866, 21165, 9740, -3866, 2840,
-3866, 9740, 7079, 9740, 3005, -3866, 783, 3116, -3866, 216,
2842, 783, 1880, 1880, 385, 385, 163, 163, 163, 3138,
411, 9740, 9740, -3866, -3866, -3866, -3866, 2851, -3866, -3866,
-3866, 2545, -3866, 22013, 2984, 3224, -3866, -3866, -3866, 2898,
2901, 2853, -3866, 21165, 22437, 2844, 71871, -3866, -3866, 685,
1273, 23709, 23709, 2409, -3866, 1074, 21165, 71079, 1906, 2409,
1511, 1826, 21165, 21165, 6237, 320, 21165, 7106, 54436, 54436,
54436, 54436, -3866, -3866, -3866, 16153, 1822, 2855, 54436, -3866,
2858, 26627, 3079, 3023, -3866, 26627, 3023, 1611, 3023, 3082,
-3866, 30344, -3866, 2859, 15312, 1579, 9740, 3238, 3127, 21165,
2865, -3866, 2867, 2721, -3866, 70672, -3866, -3866, 9740, -3866,
-3866, 21165, -3866, 2721, 401, -3866, -3866, 32857, -3866, -3866,
-3866, 3053, 9740, -3866, 1634, 54436, -40, 2866, 2888, 54436,
-3866, 2700, -3866, 294, -3866, -3866, -3866, -3866, 2945, 42226,
3148, -3866, 21165, 1912, -3866, 2907, 3234, 129, 1916, 1918,
1523, -3866, 2831, -3866, 1282, 3131, 120, -3866, 181, -3866,
71079, -3866, 54436, 54436, -3866, -3866, -3866, -3866, 2189, -3866,
-3866, 54436, 54436, 54436, 54436, -3866, 2941, -3866, -3866, 38156,
1488, 3071, -3866, -3866, 3072, 294, 54436, -3866, 71079, 181,
181, -3866, -3866, -3866, 2902, 54436, 54436, 54436, 1782, 1782,
71079, 2880, -3866, 1782, 1782, 2881, -3866, 54436, 54436, 54436,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
2960, -3866, -3866, -3866, 54436, 54436, 54436, 54436, 3179, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
54436, -3866, -3866, -3866, 71079, 181, 181, -3866, -3866, -3866,
3123, -3866, 738, 738, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, 2032, 3207, -3866, 38156, -3866, 42633, -3866, -3866, -3866,
401, -3866, 401, 3081, 34920, 401, 401, 1523, 2903, 217,
3167, -3866, -3866, -3866, -3866, 3170, 294, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, 21165, -3866, 1168, 783, -3866, -3866, -3866, -3866,
2831, 1393, 2947, 706, 3013, -3866, -3866, 2080, 2080, 2949,
3293, 60, 54436, 3205, 2937, -3866, 401, -3866, -3866, 54436,
40598, 2718, -3866, 3231, 1920, -3866, -3866, -3866, 2938, 2870,
1357, 2905, 1600, -3866, 879, 54436, -3866, 2940, 3185, 2911,
-3866, 9740, 9740, 401, 72267, 3061, -3866, 54436, 3160, 181,
-3866, 181, 181, -3866, -3866, 54436, 2080, 2080, 2080, -3866,
3090, -3866, 181, 51587, 774, 774, 774, 774, -3866, -3866,
-3866, 9740, -3866, -3866, -3866, 23709, 3190, -3866, 2915, 71079,
-3866, 2916, 1926, 1961, 24551, 3058, -3866, -3866, -3866, 7124,
2966, 9740, 3020, 2921, 2923, -3866, 742, 742, 1074, 1966,
-3866, 23709, 23709, 2409, 2409, 21165, 2409, -3866, -3866, -3866,
-3866, -3866, 51994, 2920, 54436, 1822, 26627, -3866, -3866, 1952,
-3866, 26627, 3158, -3866, 26627, 54436, 2927, 54436, 991, 21165,
21165, 2963, 2721, 2721, -3866, 3094, -3866, 2930, -3866, 685,
2931, 54436, -3866, -3866, 705, -3866, -3866, -3866, 51587, 3114,
51587, 1523, 7388, 2831, 27040, 33697, 54436, 54029, 54029, 3075,
2831, 2947, -3866, -3866, -3866, -3866, -3866, -3866, 2935, -3866,
-3866, -3866, 3014, -3866, -3866, -3866, 1968, -3866, -3866, -3866,
-3866, -3866, 3136, -3866, -3866, 30757, -3866, -3866, -3866, 27453,
32857, -3866, 789, 2942, 2943, 638, -3866, -3866, -3866, 54436,
745, 495, 2971, 2080, 3219, -3866, 3136, -3866, -3866, 738,
-3866, -3866, 2467, 401, -3866, -3866, 1974, -3866, -3866, -3866,
54436, -3866, 2798, -3866, -3866, -3866, 38970, 3336, 3336, 54436,
-3866, -3866, 7629, 3133, -3866, 2947, 3154, 3200, -3866, 54436,
54436, 1634, 40598, 2786, -3866, 903, 2948, 3242, -3866, 2687,
2956, -3866, -3866, -3866, 41819, 3137, 2896, 240, 240, 54436,
2870, 3089, -3866, 3091, -3866, 1067, -3866, 54436, 27040, -3866,
71475, -3866, 1978, -3866, -3866, 2593, 54436, 589, -3866, -3866,
-3866, -3866, -3866, -3866, 263, -3866, -3866, -3866, -3866, 752,
23709, 71079, 1985, 21165, -3866, 21165, -3866, 3343, -3866, -3866,
-3866, 61, -3866, -3866, -3866, 742, 742, 2409, -3866, 54436,
1995, -3866, 21165, 2976, -3866, -3866, 26627, 1952, 1996, 54436,
2003, 71079, 2721, 2545, 9740, 54436, -3866, -3866, -3866, 3355,
3152, 2721, -3866, -3866, -3866, -3866, -22, 1054, 263, 3234,
2947, -3866, 2980, -3866, -3866, 54436, -3866, 316, 316, 54436,
2947, -3866, -3866, 54436, -3866, 38156, 3036, -3866, 71079, 1781,
82, -3866, 71079, 71079, -3866, -3866, 54436, 54436, 54436, 54436,
54436, 181, -3866, -3866, -3866, -3866, 42633, 2798, 3336, 286,
-3866, -3866, -3866, 1293, 3177, -3866, 711, 3165, 3069, 2786,
3274, 2940, -3866, -3866, -3866, -3866, 21165, 3139, 1600, 3049,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
-3866, 2007, 2896, -3866, -3866, 3357, 3166, 3358, -3866, 2009,
-3866, -3866, 5660, 72267, 3303, -3866, 3042, 54436, -3866, -3866,
-3866, 752, 2019, -3866, 2039, 2040, 3141, 3043, -3866, 2044,
-3866, 9740, 54436, -3866, -3866, -3866, 2046, -3866, 2991, -3866,
3393, 21165, 1390, -3866, -3866, 3277, -3866, 54029, 3039, 32857,
-3866, 1666, 1666, 1393, -3866, 1523, -3866, -3866, 21165, -3866,
2051, -3866, 110, 3147, 3286, 2059, 2060, 2501, 3040, 2501,
-3866, 2080, -3866, -3866, -3866, -3866, -3866, 3314, 3261, -3866,
-3866, -3866, -3866, 365, -3866, 3193, 3194, 54436, -3866, 54436,
3410, -3866, 7647, 38970, 2870, 1600, 1488, -3866, -3866, 3198,
-3866, 3201, 2522, 27040, 3061, -3866, 812, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, 2061, -3866, 54436, 3016, 2545,
22861, 22861, 3024, 51587, 316, 3029, -3866, 3027, -3866, -3866,
3154, 1523, 9740, 38970, 3408, -3866, -3866, -3866, 3147, -3866,
-3866, 54436, 3146, -3866, 714, 714, 3349, -3866, 3086, -3866,
-3866, -3866, 789, -3866, 3034, 2896, 2870, -3866, -3866, 2896,
-3866, -3866, -3866, -3866, 2017, -3866, -3866, -3866, 24133, 3156,
898, 8407, -3866, -3866, -3866, -3866, 263, 1666, 21165, 1523,
-3866, 3165, 1781, 54436, -3866, -3866, 2937, -3866, 3445, -3866,
651, -3866, -3866, 2880, 37749, -3866, 2896, 2593, -3866, 1883,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, 3440, -3866, -3866,
-3866, -3866, -3866, -3866, -3866, 7674, -3866, -3866, -3866, 3337,
-3866, -3866, -3866, -3866, 2066, -3866, -3866, -3866, -3866, -3866,
-3866, 1840, -3866, -3866, 1925, 1716, 23285, -3866, 1523, 3192,
-3866, 37749, -3866, 1883, -3866, 38970, -3866, -3866, 3045, 37749,
2067, -3866
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-3866, -3866, -3866, 2782, -3866, -734, -1006, 2182, -452, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -3866,
2719, -3866, -3866, -3866, 1410, -3866, -3866, 118, -1050, 348,
2396, 1108, -3866, -909, -3866, -3866, -486, 148, -624, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -3866, -681, 1551, 965,
-711, -3445, -3866, -1151, -3084, -3866, 412, -3866, -3866, 1497,
-3866, -3866, -3866, 829, -357, -3866, -3866, -3866, -3866, -3866,
-3866, -3866, -98, -3866, -3866, -519, -1290, 43, -162, -390,
-3866, -3866, 243, -391, -1181, -3866, -2923, -3866, -129, -3866,
-3866, -3866, -388, -1137, 1060, -3866, -594, -913, 1343, -667,
-3866, -280, -3866, -714, -618, -615, -673, -514, -3110, -3504,
-3688, -3508, 1072, 141, -3866, -137, -1288, -3866, -3866, -1238,
-1127, -3866, -715, -3866, -3866, -3866, -2398, -3866, -3866, -3866,
-3866, 62, -3866, -3866, -3866, -3866, 305, -3866, -3866, -3866,
-3866, -3866, -3866, -2217, 1463, 1464, -3866, -3866, -2575, -3866,
-737, -3866, 453, -2442, 988, -3866, -3866, -3866, 2135, -3866,
-3866, -3866, -3866, 307, -3866, 306, -3866, -3866, -1313, -3866,
-3866, -1284, -3866, 1476, 805, -3866, -3866, -3866, -699, -758,
-752, -3866, -2863, -3866, -3866, -3866, -3866, -3866, -790, -3866,
859, -2562, -784, -3866, -3866, 875, -3866, -3866, -3866, -3866,
-656, -285, 2161, -3866, -564, -637, -3866, -3866, -3866, -283,
-3866, -3866, -3866, -3866, -3866, -3866, -862, 7090, -1281, -3866,
-3866, -3866, -3866, -1815, -3866, -3866, -3866, -1585, -3866, 3519,
1957, 1337, -1282, -3866, -21, 51, 2598, -915, -2143, 250,
-420, -3866, -1456, -3866, -3866, -3866, -2063, -3866, -3866, -3866,
-3866, -2858, -1279, -3866, -3866, -3866, 291, -3866, -3660, -3310,
-3532, -3109, -2865, -3866, -3866, -875, -3866, -3866, -3866, -1114,
1665, -1179, -3866, -1762, 296, -3128, -592, -2670, -3866, -3024,
-502, -3866, -3866, -3866, -3866, -3866, -3866, -3866, -870, -515,
-3866, -3866, 3003, -3866, -3542, -3866, -3866, -3866, -3866, 1119,
-3866, -1152, 946, -3866, -3866, -3866, -3866, -3866, -646, -723,
-3866, -3866, -3866, 144, -3866, -3866, -3866, -3866, 1874, -760,
-596, 2906, -1276, -459, -3866, -3866, -3866, -3866, -2503, -3866,
-3866, -3866, -3866, -3866, -3866, -3866, -1192, -3866, -3866, -3866,
-3866, -3866, -3866, -3866, 1811, 1813, 79, -6, -3866, -3866,
-1010, -3866, -443, -3866, 2103, -3866, -3866, -3866, -3866, 1189,
147, 330, -3866, 3, -3866, -3866, 127, -2815, 4, -3866,
-3866, -3866, -3866, -110, 5, -3866, 590, -3866, -3866, -2273,
-3866, 152, 26, -3866, -3866, 1, 0, -41, -20, -8,
2, 2908, 2451, -3866, -3866, -3866, 19, 1660, -3866, -689,
-156, -3866, 1195, -536, 1788, 2436, 2442, -3866, 1187, -3866,
-3866, 1198, -3866, -3866, -3866, -534, 1800, -3866, 2443, 1817,
-3866, 1184, 1197, -2762, 664, -2785, 193, -966, -349, 36,
2925, 2452, -3866, -3711, 620, -3866, -2932, -1863, -460, 1583,
-1308, -3866, -3866, -932, 10205, -3866, -3866, -3866, 10356, 10719,
-3866, -3866, 10894, 11316, -3866, -772, 710, 11351, 8308, -991,
-1551, -658, 8991, -1757, -398, -2122, -3866, -3866, -3866, -316,
723, 458, -3866, -3866, -3866, -3866, -548, -2276, -546, -3866,
-3866, -3866, -547, -3865, -1499, -3866, -174, -3866, 9671, 1231,
-3866, -806, -2224, -2232, -929, -1424, -3866, -3866, -3866, -3866,
-3866, -3866, -3866, -1214, -2708, -474, 1297, -3866, -3866, 1391,
-3866, -3866, -3866, -1052, -716, -2136, 1300, -1645, -3866, -684,
640, 1990, -641, 75, -516, 5764, -424, -1842, -1007, -1235,
-3866, -122, -3866, 25, -9, -119, -7, 3204, 8168, -1029,
7469, -1072, -945, -2541
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -2163
static const yytype_int16 yytable[] =
{
162, 161, 166, 156, 157, 159, 694, 554, 704, 850,
773, 510, 649, 1427, 615, 626, 1467, 1147, 1080, 615,
162, 1156, 166, 949, 950, 951, 1437, 1153, 1888, 955,
1431, 1897, 1512, 498, 1487, 1746, 1826, 1302, 2030, 2169,
545, 1573, 1242, 1264, 1233, 2295, 614, 693, 1327, 890,
736, 614, 896, 899, 1290, 538, 2811, 1749, 754, 1523,
1380, 681, 755, 911, 1906, 874, 2260, 776, 2001, 1398,
1094, 1546, 1547, 621, 1919, 1898, 788, 678, 1744, 581,
2260, 2947, 2043, 3029, 650, 3268, 2092, 2553, 1746, 3062,
1562, 3064, 837, 1886, 2067, 1418, 2068, 3438, 1258, 589,
2069, 1269, 2070, 1369, 1749, 2071, 1373, 2223, 2072, 1295,
1460, 1377, 2378, 2608, 3186, 1965, 2799, 3167, 1382, 3215,
1761, 1969, 1970, 2944, 3500, 2501, 2503, 1400, 2341, 2942,
2943, 1744, 1956, 2981, 3659, 3167, 884, 3675, 3460, 2140,
3470, 74, 3640, 919, 133, 698, 706, 154, 64, 1874,
3410, 3412, 160, 1804, 2892, 3886, 668, 3788, 707, 3443,
3343, 1205, 1747, 2095, 1291, 597, 705, 1141, 3396, 1144,
1419, -1938, 508, 2104, 2849, -1972, 1087, 3191, 3192, 3193,
3194, 3195, 3196, 3632, 550, 1397, -1992, -1504, 1599, -2017,
1419, 792, 1443, 1592, 4054, 3786, -1852, -1304, 4032, -1853,
-1504, 2300, 1181, 1458, -1852, 1976, 2650, -1853, -2162, 1750,
1469, -1499, -1723, 1602, 3259, 1747, -2162, 1365, 2708, -1723,
1539, 1540, 2629, 2300, 1981, 3795, 782, 4102, -1875, 2937,
975, 550, 1419, 751, -1471, 2335, 1321, 597, 4050, -1829,
-1504, 546, 2336, 1604, 1589, 1907, 1559, -1484, 708, -1511,
931, 550, 550, 550, 2809, 1507, 3978, 758, 684, -1941,
-1514, 1629, 4033, 779, -1499, 1231, 3030, 1900, 597, 550,
597, 790, 2098, 2652, 597, 1963, 2986, 2937, 2089, 793,
-1304, 935, 1084, 3981, 2770, -1826, 2772, 3649, 2351, 2546,
946, 4067, 2826, 2599, 1746, 1643, 1231, 550, -1514, 3176,
1315, 597, 2098, 597, 1182, 1820, -346, 3597, -118, 3248,
4034, 3221, 867, -118, 1419, 1299, 4011, 4035, 794, 3652,
4115, 603, 3179, 709, 2600, 603, 3, 4, 506, -1991,
-734, 3706, 2618, 3707, 1302, 1590, 603, 2048, 1280, 603,
-1307, 604, -1739, 4247, 4036, 604, 550, 655, 2382, -1739,
773, 1768, -1304, 2601, 4138, 3177, 604, 4015, 1573, 604,
1634, 1651, 4174, 1635, 2178, 1137, 795, 3986, 1157, 3856,
3299, 1900, 503, 550, 1351, 1822, 2062, 1647, 603, 1905,
645, 1438, 1659, 1659, 1106, 1832, 4042, 675, 1107, 832,
2465, 4001, 1823, 773, 2093, 1644, 2849, 3857, 604, 1158,
1652, 550, 1429, 845, 1546, 1547, 550, 852, 3300, 603,
169, 4284, 1562, 2038, 4037, 1420, -1471, 1181, 861, 4175,
1900, 1747, 2849, -1307, 1636, 1751, 1455, 2383, 1159, 604,
2090, 1900, 1139, 879, 1281, 1420, 2008, 1505, 1769, 1160,
656, 947, 888, 1599, 3610, 2012, 2038, 1514, 3791, 1111,
170, 1112, 1900, 3653, 3222, 4116, 2099, 2200, 3708, 1524,
1366, 551, 4088, 1106, 1300, 868, 4114, 1107, 1602, 4068,
2547, 3650, 4094, 4184, 1862, 2653, 3030, 1420, 2220, 752,
1341, 2946, 1868, 4200, 1471, 547, 3872, 3453, 984, -1471,
1918, 2849, 1527, 1366, -1304, -1307, 3796, 829, 1604, 2847,
2848, 1511, 1630, 1645, 2863, 2301, 1860, 4235, 1237, 3513,
954, 4237, 710, 1908, 2630, 1508, 1301, -1723, 1824, 1182,
869, 1952, 2004, 1954, 3260, 1909, 4270, 2912, 1961, 1746,
3167, -1991, 1942, 685, 954, 1945, 1946, 2028, 1749, 1982,
2337, 2000, 875, 554, 2898, 2899, 694, 1977, 4269, 1457,
1148, 1964, 3890, 1106, 47, 4164, 1183, 1107, 2226, 1420,
1508, 1593, 1539, 1540, 548, 1534, 549, 827, 2983, 1429,
3580, 1559, 2298, 2157, 2030, 4038, 1910, 2091, 1534, 799,
1366, 3174, 1749, 927, 830, 2861, 162, 693, 166, -1304,
2024, 928, -1991, 933, 2144, 937, 2999, 2009, 3781, 1623,
-1938, 941, 2851, 1641, -1972, 1959, 3865, -1991, -1504, 1759,
2505, 1789, 1825, 1790, 1877, -1992, 3704, -1852, -2017, 1938,
-1853, -1504, 960, 614, -1304, 614, -1304, 614, 918, -2162,
4195, 2165, -1499, 614, 942, 943, 3776, -1307, 944, 3745,
2176, 773, 976, 3749, 3636, 609, 610, -1739, 1568, 1077,
2850, 3904, 1086, 875, 1088, 1545, 1747, -1875, 1106, 4087,
-1829, 1833, 1107, 3648, 956, 760, 922, 1569, 1551, 3424,
-1511, 2851, 1595, 1632, 2365, 706, 609, 610, 609, 1232,
1306, 1570, 609, 610, 1113, 3606, 1568, 707, -1941, 1209,
1311, 2386, 4236, 3300, 1511, 705, 1168, 162, 161, 166,
156, 157, 159, 2575, 2486, 1569, 2487, 2114, 2500, 609,
1232, 609, 610, 966, 2510, 3096, 2120, 956, 3432, 1572,
2124, -118, -118, 2219, 1934, 2222, 2130, 2131, 2852, 1322,
1323, 1429, -1307, 1746, 1081, 2230, 3491, 4185, 3042, 2234,
3043, 2180, 1780, 550, 2143, 1409, 1151, 2246, 2247, 550,
984, 1834, 1104, 2849, 4261, 841, 885, 2260, 2260, 3970,
2264, 2266, 2260, 2849, 1116, 4227, 3980, -1307, 2561, -1307,
1309, 2280, 2463, 1130, 3025, 3270, 1744, 1931, 1083, 550,
3077, 1096, 1091, 2034, 614, 2250, 2251, 3997, 1187, 1173,
3523, 984, 2166, 1829, 2849, 3134, 3135, 699, 2421, -1471,
701, 2477, 2260, 2260, 2858, 2859, 2860, 2861, 2937, 2800,
-1471, 2101, 1545, -1471, 1160, 2954, -1471, 3129, 3593, 4056,
3132, 3133, 1325, 3948, 3136, 3950, 1874, 1869, 2856, 2857,
2858, 2859, 2860, 2861, 3143, 4202, 1947, 1131, 74, 1137,
2562, 133, 3446, 1746, 154, 64, 1746, 2005, 2035, 160,
3271, 1620, 1621, 1622, 1623, 700, 2689, 2181, 2173, 2174,
1747, 2161, 4120, 2477, 3594, 505, 1511, 3545, 4091, 4092,
1274, 1590, 2478, 2064, 953, 2697, 627, 3678, 3466, 2802,
1835, 1389, 3078, 3628, 2804, 3626, 3524, 3998, 4262, 2543,
2563, 1174, 1170, 2853, 2854, 2855, 3164, 2856, 2857, 2858,
2859, 2860, 2861, 875, 2036, 2960, 1139, 2037, 1275, 654,
1870, 2051, 2121, 2235, 3164, 550, 875, 1376, 4134, 1390,
701, 2129, 3501, 2132, 4144, 1429, 1888, 162, 2083, 166,
1132, 1393, 1411, 2851, 2478, 2139, 1170, 1401, 1404, 1405,
2564, 3518, 1140, -2163, 4228, 2065, 3627, 3, 4, 1510,
614, 1394, 954, 2805, -557, 1836, 1473, 3938, 1475, 1948,
1477, 1949, 1479, 2115, 1481, 1482, 1483, 4057, 1956, 875,
1747, 1485, 4121, 1747, 2851, 2640, 2164, 633, 3419, 3272,
2170, 3089, 2172, 1097, 3941, 2175, 1532, 3891, 585, 3945,
2852, 3266, 3947, 3026, 1445, 2038, 4203, 4013, 2801, 3892,
2116, 842, 886, 2084, 585, 3268, 1549, 14, 2236, 694,
4229, 3698, 2167, 2690, 3546, 3629, 1310, 4076, 2464, 2149,
2481, 3079, 2162, 14, 2015, 4196, 2317, 1081, 2182, 2565,
1175, 2852, 1446, 4230, 702, 4122, 1576, 3519, 19, 3273,
676, 2373, 4249, 1591, 1098, 550, 2183, 550, 2253, 1081,
1587, 2163, 3080, 1596, 19, 4217, 1276, 3807, 4199, 971,
701, 1176, 2016, 1633, 651, 773, 984, 1391, 2803, 2849,
763, 764, 765, 2237, 766, 767, 768, 769, 770, 771,
875, 3081, 2481, 1649, 1650, 1599, 3371, 2034, 875, 875,
1177, 2691, 2039, 3326, 1828, 1395, 3331, 3332, 3333, 3334,
3335, 3336, 3337, 3338, 3339, 3340, 2401, 2339, 4136, 4085,
1602, 2673, 1755, 1762, 1763, 2195, 1767, 614, 4095, 4045,
4201, 1829, 614, 614, 3520, 707, 707, 4046, 707, 2238,
2566, 687, 2239, 705, 705, 2490, 705, 3996, 2567, 2296,
1604, 2568, 1277, 3612, 1412, 3614, 169, 3764, 1178, 3893,
2318, 3503, 2035, 1392, 2319, 3380, 3381, 3768, 1834, 2856,
2857, 2858, 2859, 2860, 2861, 634, 4250, 2259, 1988, 2856,
2857, 2858, 2859, 2860, 2861, 1429, 3775, 2013, 1663, 2085,
1447, 2282, 2602, 3018, 4073, 1151, 170, 3432, 521, 1947,
3758, 2320, 2086, 1429, 1413, 2430, 2853, 2854, 2855, 3767,
2856, 2857, 2858, 2859, 2860, 2861, 4023, 3454, 2036, 1746,
2017, 2037, 696, 2509, 614, 1746, 3040, 37, 2491, 862,
2240, 3019, 614, 2505, 1820, 1792, 4168, 4169, 3197, 2576,
2340, 4171, 2014, 37, 4024, 2949, 1771, 2579, 2950, 2581,
1821, 635, 3692, 701, 2767, 523, 1855, 41, 863, 2851,
1830, 697, 2882, 3987, 1960, 792, 2442, 943, 2889, 2773,
2574, 2768, 773, 41, 2063, -2163, 1448, 2431, 711, 1912,
2477, 3200, 614, 2729, 3167, 614, 614, 1772, 4047, 2937,
1988, 2586, 1414, 2937, 1599, 45, 1894, 3504, 2715, 2716,
2717, 2718, 864, 1911, 1822, 2113, 2018, 46, 4022, 2038,
2723, 45, 1962, 4219, 2119, 586, 2852, 2321, 2443, 3164,
2624, 1823, 1948, 46, 1949, 37, 3571, 2241, 1162, 2438,
1888, 1941, 3574, 3575, 3576, 3577, 3578, 3579, 1773, 2763,
1415, 47, 2468, 1988, 1798, 3296, 1747, 614, 746, 1604,
3452, 2478, 1747, 793, 1279, 41, 1932, 587, 759, 1163,
1280, 2260, 4254, 1975, 2260, 2260, 2260, 2260, 2260, 2260,
2260, 2260, 2260, 2260, 2957, 1799, 1903, 1991, 3455, 3020,
2479, -887, 984, 754, 3647, 2849, 2073, 2507, 1164, 530,
2003, 531, 794, 45, 2260, 3041, 2426, 3505, 3792, 773,
3506, 1170, 3372, 4278, 1800, 46, 2039, 3456, 3473, 3314,
3863, 2480, 1557, 1558, 536, 3204, 1933, 2766, 1416, 636,
637, 2442, 784, 2260, 2260, 2040, 3457, 1904, 3952, 2824,
2067, 2950, 2068, 2775, 2776, 1814, 2069, 2778, 2070, 2402,
795, 2071, 3097, 2782, 2072, 1815, 862, 1824, 4117, 2511,
3681, 3205, 3682, 3625, 4128, 791, 1281, 2593, 1956, 3793,
1816, 831, 37, 2594, 3206, 3021, 2792, 834, 1240, 1746,
1746, 1746, 162, 3002, 166, 3228, 3074, 3290, 2876, 3048,
3474, 2853, 2854, 2855, 3268, 2856, 2857, 2858, 2859, 2860,
2861, 1918, 41, 836, 169, 2569, 3957, 3958, 3887, 2481,
2813, 1618, 1619, 1620, 1621, 1622, 1623, 3075, 2151, 2901,
2152, 2197, 2153, 550, 2154, 2561, 2155, 597, 4055, 864,
2156, 2559, 1599, 162, 2194, 166, 2191, 2192, 2193, 984,
45, 2701, 2849, 3475, 170, 3476, 3076, 2308, 3888, 2309,
3005, 1825, 46, 2603, 1589, 3207, 2148, 1602, 2569, 3731,
1452, 2244, 922, 4097, 2185, 851, 3071, 1926, 3197, 2595,
3914, 2310, 597, 1772, 3198, 2851, 515, 2109, 2110, 2522,
1453, 3072, 2604, 1247, 3199, 2605, 47, 1604, 2232, 2233,
2678, 2664, 2196, 2673, 1081, 1081, 2245, 2562, 1241, 1817,
2248, 2249, -140, 1746, 699, 1282, 1747, 1747, 1747, 3249,
2217, 3200, 3253, 3201, 2606, 2270, -1351, 2271, 3017, 1222,
-1351, 3607, 1462, 1746, 1773, 1463, 2306, -140, 37, 1248,
2523, 3327, 2852, 3328, 3726, 3727, 1283, 1568, 2293, 2679,
2294, 1222, 2759, 2903, 2937, 2904, 3147, 2563, 3473, 2937,
1261, 3324, 2937, 3604, 521, 3966, 1569, 3968, 41, 2366,
3799, 3800, 700, 3049, 2311, 1284, 2048, 2905, 1568, 2312,
1570, 2790, 1659, -881, 2313, 3344, 2781, 1920, 521, 4148,
2524, 1262, 3466, -1351, 32, 3202, 1244, 1569, 3050, 4160,
2821, 857, 2702, 773, 3011, 2147, 45, 2564, 603, 1953,
1168, 1572, 2418, 1994, 865, 4083, 1249, 2422, 2596, 1289,
2425, 523, 1607, 1608, 4161, 2680, 2681, 1245, 604, -1351,
3474, 2260, 2851, 1966, 2349, 1921, 1922, 701, 1568, 2682,
1747, 2525, 2448, 2363, 1995, 523, 1920, 3117, 2458, 2597,
3203, 1089, 47, 866, 754, 3204, 792, 1569, 3329, 2807,
1747, 2711, 1250, 881, 1251, 3008, 1611, 3118, 3330, 1918,
1920, 892, 1639, 3488, 1955, 2906, 2492, 3031, 2598, 2968,
2907, 3547, 897, 3475, 2683, 3476, 1263, 3840, 3841, 2852,
906, 3205, 3403, 2388, 1921, 1922, 2565, 916, 2952, 3471,
2314, 3548, 1253, 2506, 3206, 3052, 3466, 2853, 2854, 2855,
2315, 2856, 2857, 2858, 2859, 2860, 2861, 912, 1921, 1922,
3404, 597, 162, 2404, 2432, 614, 2435, 2539, 1918, 2875,
1996, 2877, 2878, 2703, 3034, 3751, 3230, 2918, 3055, 1255,
3057, 1997, 1753, 1746, 793, 1754, 3406, 2560, 3725, 948,
2570, 702, 1918, 952, 2937, 530, 2720, 531, 2374, 1165,
2377, 2721, 958, 1116, 984, 1998, 533, 2849, 2582, 2684,
2220, 2685, 2704, 1756, 1257, 961, 1757, 535, 2591, 530,
536, 531, 1599, 794, 3732, 3207, 3357, 963, 2259, 2259,
1166, 2614, 1088, 2259, 32, 1288, 2908, 2566, 2146, 32,
2621, 2147, 2260, 2260, 536, 2567, 2909, 1602, 2568, 198,
3492, 3345, 3346, 1137, 507, 2394, 2395, 1138, 984, 1167,
-369, 2849, 583, 2485, 1289, 3306, 968, 3115, 3502, 3507,
969, 795, 3122, 2259, 2259, -1350, 3402, 1604, 652, -1350,
2158, 3408, 970, 2159, 2991, 2992, 972, 2994, 1618, 1619,
1620, 1621, 1622, 1623, 2853, 2854, 2855, 971, 2856, 2857,
2858, 2859, 2860, 2861, 2220, -1374, -1374, 932, 934, 936,
1747, 3310, 938, 939, 940, 973, 37, 1093, 3919, 974,
1139, 2822, 945, 1270, 3211, 843, 2823, 844, 3590, 1993,
3592, 1598, 1168, 3595, 1599, 3596, 3187, 1168, 2610, 614,
3010, 2721, -1350, 3403, 3935, 3936, 41, 614, 612, 614,
846, 3378, 847, 612, 1271, 1212, 1140, 2530, 1272, 1602,
-1316, 1213, 2740, 2741, 1746, 1603, 1920, 2488, 1746, 3012,
1746, 3404, -1316, 1106, 2642, -1829, -1316, 1107, -1350, 3178,
3180, 3181, 2642, 1273, 45, 977, 3405, 2851, 3044, 1604,
4216, 3466, 978, 1545, 4002, 1805, 46, 3406, 4020, 2160,
3309, 1214, 2159, 3496, 1920, 980, 3402, 2697, 1545, 2286,
1805, 2543, 2289, 3514, 1921, 1922, 1092, 2188, -1316, 3407,
2189, 3092, 3277, 3164, 1095, 3095, 3280, 3281, 3724, 3283,
47, 3285, 3286, 2379, 1099, 2672, 1429, 3098, 2714, -1316,
3291, 2851, 2414, 3351, 2852, 2189, 2963, 2964, 1918, 1888,
1215, 2814, 1921, 1922, 1517, 1518, 2816, 1216, 3468, 3469,
1217, 3148, 1920, 2745, 3082, 1100, 3084, 162, 2730, 875,
3307, 1101, 3311, 3403, 1920, -1316, 3657, 2712, 2673, 3915,
3916, 3917, 3918, -1316, 1105, 3226, 1918, 27, 1545, 1605,
1160, 1747, 3408, 1606, 1117, 1747, 2498, 1747, 2852, 2499,
1124, 3404, 3149, 875, 2555, 1125, 2709, 2556, 4051, 1127,
1921, 1922, 1218, 1128, 1607, 1608, 3405, 1135, 773, 3116,
1149, 2659, 1921, 1922, 2660, 2674, 3150, 3406, 2675, 2784,
1609, 2820, 2159, 4061, 2147, 2830, 2834, 2838, 2147, 2147,
2147, 3151, 1150, 3130, 1918, 3152, 1180, 2839, 2865, 3407,
2147, 2147, 1531, 1154, 47, 3220, 1918, 3223, 1611, 1545,
1160, 1805, 1302, 3153, 1185, 37, 614, 1219, 3942, 1220,
2922, 1612, 2923, 3212, 2951, 3214, 2260, 1207, 3154, 1221,
2961, 2881, 1211, 2886, 2147, 2260, 2887, 1222, 3962, 3065,
1237, 3126, 3066, 3415, 1239, 41, 1223, -1316, 3069, 2938,
1246, 3070, 2260, 2260, 3217, 3599, 3600, 3218, 3587, 2853,
2854, 2855, 1266, 2856, 2857, 2858, 2859, 2860, 2861, 1287,
4238, 27, 3408, 3420, 3422, 1292, 3257, 1224, 1920, 3258,
2924, 1225, 2925, 45, 694, 1472, 3263, 4282, 1474, 4283,
1476, 1278, 1478, 3295, 1480, 46, 1614, 2938, 1484, 2511,
3315, 2969, 2970, 2147, 3155, 1106, 1226, 3352, 1127, 1107,
3353, 3493, 3156, 3305, -2163, -2163, 2987, 2856, 2857, 2858,
2859, 2860, 2861, 1297, 3278, 1587, 1921, 1922, 1298, 47,
-1098, 1212, -1098, 3362, 1303, 3374, 3363, 1213, 2147, 2306,
3444, 1598, 1305, 3445, 1599, 3157, 3943, 3448, 1920, 37,
3449, 3472, 3583, 3730, 2159, 3584, 2189, 1307, 2921, 3783,
1918, 1600, 3784, 3789, 1227, 3790, 2159, 3883, 2159, 1602,
3884, 2931, 1127, 3924, -1304, 1603, 3925, 1214, 875, 41,
1134, 694, 1136, 1749, 2927, 2928, 2929, -2163, -2163, 3319,
1618, 1619, 1620, 1621, 1622, 1623, 1921, 1922, 1312, 1604,
162, 2194, 166, 2191, 2192, 2193, 1317, 3567, 3926, 3325,
2953, 2147, 614, 3934, 2220, 3984, 2189, 45, 3985, 2931,
4008, 4005, 693, 1319, 4006, 4052, 1215, 1326, 4053, 46,
1918, 1329, 4063, 1216, 3347, 2189, 1217, 1598, 1370, 2926,
1599, 2260, 4070, 4075, 1168, 1429, 3237, 1746, 1372, 1374,
4077, 3073, 3589, 3237, 4137, 1383, 4142, 1638, 3085, 4143,
3750, 1366, 3753, 4239, -2074, 1602, 4149, 875, 3729, 2189,
1511, 1603, 2259, -157, 1385, 2259, 2259, 2259, 2259, 2259,
2259, 2259, 2259, 2259, 2259, 1081, 4150, 4151, 1218, 2887,
2147, 4154, 1387, 4156, 1429, 1604, 3237, 3676, 4173, 1605,
1399, 2189, 1417, 1606, 2961, 3355, 4179, 4180, 4205, 2189,
2189, 1429, 1407, 4280, 4291, 3900, 4281, 4281, 1840, 185,
1422, 1423, 2961, 1424, 1607, 1608, 1425, 1426, 3127, 1428,
1429, 1436, 1746, 1439, 2259, 2259, 1440, 1441, 1442, 1444,
1609, 1450, 1449, 1219, 1451, 1220, 1456, -2074, 3068, 1461,
1513, 1841, 1486, 1519, 1521, 1221, 1528, 1515, 1522, 1529,
-1475, -1482, 1538, 1222, 1842, 1610, 1541, 3713, 1611, 1542,
1543, 1544, 1223, 1548, 1747, 3147, 3090, 1843, 47, 1550,
1553, 1612, -1472, -1473, 1613, 1554, 1555, 1556, 3680, 1561,
1563, 1564, 1565, -2074, -1476, 1566, 3683, 3684, -1474, 1606,
1567, 1574, 3689, 1267, 1575, -2074, 1577, 1225, 1578, -2074,
1579, 1580, 1581, 1582, -2074, 1844, 1583, 1584, 1627, -2074,
1607, 1608, -2074, 1638, -2074, 1642, 1654, 1662, 1760, 1138,
1787, 1140, 1268, 1795, 1801, 1802, 1803, 1805, 1806, 1807,
1809, 1808, 1810, 2642, 1845, 1831, 2642, 2642, 1837, 1846,
2642, -2074, 1838, 1863, 1857, 1864, 1614, 1865, 1866, 1747,
2642, 1861, 1867, 1892, 1611, 1325, 1900, 1893, 1902, 3166,
1912, 1915, -2074, 1913, 1916, 1917, 1918, 1612, 1924, 1925,
1935, 1988, 1927, 1928, 1936, 1943, 1929, 3166, 1939, 754,
1227, 1940, 1950, 1951, 1222, 3298, 1957, 3845, 1958, 1978,
875, 3852, 875, 614, 1967, 1968, 1979, 1983, -2074, 1980,
3173, 3175, 2203, 3308, 1984, 3182, -2074, 1989, 1992, 2006,
2007, 614, 2019, 2021, 2029, 3637, 3638, 2022, 1545, 1551,
2031, 1534, 2032, 3235, 2049, 2052, 2055, 517, 2060, 2077,
2061, 2056, 2082, 1263, 2096, 1847, 1615, 1616, 1617, 3224,
1618, 1619, 1620, 1621, 1622, 1623, 2097, 2102, 2369, 2204,
2107, -2074, 3262, 875, 2370, 2108, 2105, 3657, 2112, 2123,
2125, 1156, 2126, 185, 2127, 2128, 2141, 2142, 2171, 2177,
2186, 2199, 162, 3276, 2226, 3639, 1598, 3797, 2205, 1599,
3216, 2268, 2269, 2225, 2281, 2231, 3686, 3687, 3688, 2287,
3922, 1599, 2291, 2299, 1848, 2292, 627, 2305, 2322, 2206,
1849, 2324, 2364, 1850, 1602, 3231, 2351, 2368, 3813, 3814,
1603, 2367, 2259, 3239, 2371, 2372, 700, 3245, 2938, 2380,
-2074, 2389, 2390, 2415, 2416, 2399, 2381, 2417, 2207, 1851,
2428, 3256, 2433, 2208, 1604, 1852, 1618, 1619, 1620, 1621,
1622, 1623, 2436, -2074, 2438, -2074, -2074, 2447, 1853, 2413,
2393, 2452, 614, 2440, 2459, 2441, 2456, 3842, 2473, 2476,
2489, 2494, 1089, 1093, 3837, 3838, 2496, 2545, 2550, 1212,
2554, 2557, 2607, 1854, 2631, 1213, 2558, 2620, -2074, 2209,
2627, -2074, -2074, -2074, 3900, 2628, 2632, 2633, 2938, 694,
2635, 2636, 2637, 2639, 2649, 1081, 2900, 3369, 2638, 694,
2651, 2658, 2662, 2655, 2665, 2666, 2667, 2961, 2668, 2669,
2670, 2671, 2676, 2695, 2700, 1214, 2707, 2713, 3489, 2719,
2727, 2722, 2728, 1746, 2743, 2746, 2758, 1511, 2760, 2761,
1587, 2762, 3770, 2764, -2163, 2765, 2774, 2777, 1606, 2780,
3395, 1457, 2786, 2787, 2779, 2788, 2789, 4007, 2798, 2200,
3430, 3388, 3389, 3390, 3391, 2806, 2791, 185, 2810, 1607,
1608, 954, 2812, 3953, 1215, 2817, 2818, 2832, 2833, 2835,
2836, 1216, 2883, 2815, 1217, -2163, 2902, 2837, 3908, 2840,
3909, 3910, 2210, 2259, 2259, 2147, 2946, 2871, 2211, 2917,
2841, 3913, 2940, 2843, 2212, 3549, 2948, 2846, 3552, 2864,
-927, 2910, 4062, 1611, 2870, 2897, 2973, 2979, 2872, 2993,
2990, 2920, 3392, 3393, 3394, 2975, 1612, 2873, 2985, 3004,
2880, 3007, 2895, 2213, 2896, 2214, 1218, 2945, 3009, 2996,
3798, 2995, 3000, 3001, 3013, 3027, 3028, 3039, 3830, 3831,
3038, 3833, 2215, 3054, 3056, 3045, 3046, 3866, 3087, 3088,
1747, 3091, 3101, 3093, 3102, 3103, 3106, 3094, 3812, 3099,
3100, 3109, 3119, 3104, 3111, 3105, 3107, 2216, 3108, 4100,
3821, 3113, 3166, 4105, 4106, 3110, 3121, 3112, 3114, 3123,
1976, 1219, 3125, 1220, 3131, 3137, 3138, 3139, 3140, 3534,
3533, -2163, 3535, 1221, 3536, 3141, 3142, 3168, 3171, 3172,
3965, 1222, 2751, 3183, 3227, 2038, 614, 3845, 3188, 3189,
1223, 3225, 3184, 3229, 3836, 3236, 3237, 3247, 3562, 3563,
3241, 1188, 614, 3243, 4101, 3246, 3251, 3250, 3254, 4065,
4104, 3275, 2642, 3255, 3282, 3284, 3292, 3293, 2642, 2642,
2642, 2642, 2642, 2642, 4107, 1225, 4109, 3297, 875, 3294,
3302, 3303, 3591, 1189, 3304, 3313, 1531, 3318, 2867, 2849,
2866, 3364, 3348, 3349, 3350, 3356, 1592, 3377, 3376, 3385,
1226, 3414, 1746, 3423, 3401, 3433, 3480, 3437, 3417, 3434,
3436, 3440, 614, 3459, 3482, 1618, 1619, 1620, 1621, 1622,
1623, 3609, 3611, 3613, 3615, 942, 943, 3483, 3497, 3494,
3499, 3515, 3495, 3544, 3508, 3516, 3598, 3527, 1190, 3528,
3517, 3530, 3560, 4060, 3529, 4268, 3531, 3532, 3503, 1746,
3572, 3564, 3630, 3573, 3570, 3608, 3603, 1746, 1227, 3601,
3602, 3643, 3622, 3267, 3645, 3661, 623, 624, 2159, 1191,
3642, 630, 3664, 3646, 3673, 640, 646, 623, 3674, 653,
3665, 3677, 646, 646, 3679, 680, 3668, 683, 4041, 1511,
3685, 3690, 4268, 3693, 162, 3667, 3694, 4086, 2752, 3695,
4268, 3696, 3605, 773, 1192, 3697, 3705, 3702, 3709, 3714,
3973, 4082, 3715, 3746, 3722, 4159, 3754, 3747, 3710, 2938,
3718, 3631, 3742, 2938, 3744, 3757, 3759, 3760, 3716, 1747,
4112, 3717, 3762, 1193, 3763, 3771, 1630, 3778, 3780, 3785,
3786, 3774, 3805, 3641, 3700, 3990, 3794, 2259, 3808, 3809,
3822, 3825, 3829, 3834, 3839, 3815, 3927, 3843, 3850, 3858,
3859, 3867, 614, 3870, 3871, 3876, 3874, 3882, 3855, 3869,
3885, 3889, 3895, 2259, 2259, 3897, 1747, 3898, 3906, 3912,
3920, 3921, 3923, 3928, 1747, 3930, 3939, 4257, 3932, 3931,
3933, -2076, 3946, 3949, 3955, 32, 3959, 3961, 3963, 1196,
3967, 3979, 3982, 3999, 4000, 1197, 3983, 4009, 3992, 3993,
3629, 4016, 1198, 4018, 4026, 4027, 737, 742, 742, 745,
1876, 742, 750, 4029, 737, 756, 680, 4031, 775, 1200,
756, 4066, 680, 4043, 680, 4044, 3816, 1201, 742, 756,
680, 2931, 4072, 4081, 701, 2931, 4089, 4118, 3826, 1598,
4098, 4123, 1599, 4127, 4129, 4140, 4133, 4139, 4141, 4146,
4147, 4157, 4153, 4069, 4158, 3769, 4152, 4163, 4165, 1600,
4176, 4102, 4181, 4069, -2076, 4182, 4183, 1602, 3779, 4186,
4188, 4192, 3425, 1603, 162, 3772, 3777, 4197, 1202, 4226,
4198, 4215, 2754, 3267, 4220, 4218, 4223, 4184, 4185, 4248,
4234, 1511, 4260, 3738, 3739, 3740, 3741, 1604, 4276, 4285,
4279, 4289, 1990, 2710, 1210, 2955, 2549, 3051, 614, 1129,
-2076, 2619, 3512, 3144, 4111, 4003, 3844, 4113, 3880, 4028,
3663, 3116, -2076, 4030, 1661, 3864, -2076, 2998, 3810, 4170,
4040, -2076, 2785, 4221, 3971, 4253, -2076, 4256, 4189, -2076,
4187, -2076, 4232, 3003, 3881, 4135, 3633, 2693, 2694, 3511,
3063, 2074, 2259, 3634, 3635, 2677, 3232, 4259, 1511, 4286,
614, 4290, 1511, 1511, 3185, 3169, 4233, 3991, -2076, 2059,
4178, 4224, 3994, 3819, 3820, 629, 4084, 3669, 3823, 3824,
3691, 4145, 1506, 2502, 3670, 877, 4155, 3120, 4241, -2076,
4287, -2089, 4131, 2642, 2642, 2375, 2150, 1605, 2376, 2958,
3651, 1606, 3773, 3450, 4167, 1758, 2959, 875, 2398, 1784,
2971, 3848, 1102, 3849, 1783, 2967, 3853, 3854, 1788, 2397,
2392, 2984, 1607, 1608, 3397, -2076, 2972, 1123, 4074, 3861,
3752, 1791, 2951, -2076, 3451, 3368, 1110, 4064, 1609, 4206,
3358, 773, 4207, 2663, 4214, 2962, 2915, 2913, 2827, 3447,
2350, 0, 0, 0, 2938, 0, 0, 0, 0, 2938,
0, 614, 2938, 1610, 0, 0, 1611, 3878, 0, 0,
0, 2961, 0, 0, -2089, 0, 773, 0, -2076, 1612,
0, 0, 1613, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2938, 0, 3899, 0, 0, 0, 0, 0,
0, 1598, 0, 0, 1599, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3700, 3700, 3700, 3700, 0,
-2089, 1600, 0, 627, 0, 0, 0, 3989, 0, 1602,
0, 0, -2089, 0, 0, 1603, -2089, 0, 801, 0,
0, -2089, 0, 680, 0, 737, -2089, -2076, 742, -2089,
745, -2089, 742, 0, 1614, 0, 756, 0, 775, 1604,
756, 854, 0, 0, 754, 0, 0, 0, 742, 0,
-2076, 756, -2076, -2076, 0, 0, 2931, 0, -2089, 0,
0, 2931, 3905, 0, 2931, 876, 0, 0, 0, 737,
0, 0, 0, 0, 745, 0, 0, 0, 737, -2089,
0, 775, 0, 0, 0, -2076, 2938, 0, -2076, -2076,
-2076, 0, 0, 0, 0, 0, 742, 0, 0, 0,
0, 926, 0, 0, 0, 0, 0, 3964, 0, 0,
0, 0, 0, 0, 0, -2089, 3166, 0, 0, 0,
0, 0, 0, -2089, 1615, 1616, 1617, 0, 1618, 1619,
1620, 1621, 1622, 1623, 2938, 0, 0, 0, 0, 1605,
2642, 2842, 680, 1606, 4004, 0, 0, 2751, 0, 0,
614, 0, 680, 967, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1607, 1608, 1188, 0, -2089, 0,
0, 1076, 0, 680, 646, 0, 876, 0, 646, 0,
1609, 162, 4021, 0, 0, 0, 0, 0, 0, 0,
0, 680, 0, 0, 0, 680, 0, 0, 1189, 0,
0, 1076, 0, 0, 0, 1610, 0, 0, 1611, 0,
0, 0, 680, 627, 0, 0, 0, 0, 0, 0,
0, 1612, 0, 0, 680, 773, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -2089, 0, 0,
0, 0, 0, 0, 4012, 0, 0, 0, 0, 0,
0, 0, 0, 1190, 0, 1212, 2931, 0, 0, 0,
-2089, 1213, -2089, -2089, 0, 0, 680, 0, 0, 0,
0, 0, 0, 0, 1081, 742, 742, 0, 0, 0,
0, 0, 0, 0, 1191, 0, 1247, 0, 0, 0,
0, 0, 0, 0, 0, -2089, 1614, 0, -2089, -2089,
-2089, 1214, 0, 0, 0, 0, 0, 875, 0, 0,
0, 0, 0, 2752, 0, 0, 737, 0, 0, 1192,
0, 4194, 0, 0, 0, 0, 737, 0, 0, 775,
0, 2938, 1248, 0, 0, 0, 0, 0, 0, 0,
0, 0, 742, 0, 0, 0, 0, 0, 1193, 0,
1215, 0, 0, 0, 0, 0, 680, 1216, 0, 0,
1217, 4222, 742, 742, 4093, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 680, 680, 680, 742,
0, 737, 0, 0, 0, 0, 1615, 1616, 1617, 0,
1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 742, 742, 742, 1249,
32, 0, 1218, 0, 2753, 0, 0, 0, 0, 0,
1197, 0, 0, 0, 0, 0, 876, 1198, 0, 0,
1076, 0, 0, 0, 0, 1876, 0, 0, 0, 876,
0, 0, 0, 1598, 1200, 0, 1599, 0, 0, 0,
0, 0, 1201, 0, 0, 1250, 0, 1251, 0, 0,
0, 1489, 1489, 1600, 0, 0, 680, 1252, 623, 1220,
0, 1602, 0, 4288, 0, 0, 0, 1603, 1598, 1221,
0, 1599, 0, 0, 0, 1520, 0, 1222, 680, 0,
0, 1526, 876, 0, 0, 1253, 1223, 0, 1600, 0,
0, 1604, 0, 1202, 1076, 0, 1602, 2754, 4275, 0,
0, 0, 1603, 0, 162, 4246, 166, 4243, 4244, 4245,
0, 0, 0, 0, 0, 0, 0, 1254, 0, 0,
0, 1225, 1255, 1076, 0, 4267, 1604, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 4274,
4246, 166, 4243, 4244, 4245, 0, 1256, 0, 0, 0,
0, 1076, 1076, 0, 1076, 0, 0, 1257, 0, 4266,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1076, 4267, 0, 0, 0, 0, 0, 0, 0,
4267, 0, 0, 162, 4246, 166, 4243, 4244, 4245, 0,
0, 1605, 0, 876, 0, 1606, 0, 0, 0, 0,
0, 876, 876, 0, 1227, 0, 4266, 680, 0, 0,
1076, 0, 0, 0, 4266, 0, 1607, 1608, 0, 0,
0, 0, 0, 0, 0, 0, 1605, 0, 0, 0,
1606, 0, 1609, 0, 0, 0, 0, 0, 0, 1076,
0, 0, 0, 1076, 1076, 0, 0, 0, 0, 0,
0, 1607, 1608, 680, 680, 1794, 0, 1610, 0, 0,
1611, 0, 0, 0, 0, 0, 0, 1609, 0, 0,
0, 646, 0, 1612, 0, 0, 1613, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0,
0, 0, 0, 646, 0, 0, 0, 0, 1612, 0,
0, 1613, 0, 0, 0, 680, 1899, 0, 0, 0,
0, 0, 680, 0, 0, 742, 0, 0, 0, 0,
0, 0, 0, 0, 1597, 0, 0, 0, 0, 1598,
0, 0, 1599, 775, 0, 0, 0, 0, 1614, 0,
680, 0, 0, 0, 0, 0, 0, 0, 0, 1600,
0, 0, 1601, 0, 0, 0, 0, 1602, 0, 0,
680, 0, 0, 1603, 1598, 0, 0, 1599, 742, 742,
742, 742, 680, 1614, 0, 0, 0, 0, 0, 0,
0, 756, 0, 646, 1600, 0, 680, 1604, 0, 0,
0, 0, 1602, 0, 0, 0, 0, 2002, 1603, 680,
0, 0, 0, 0, 0, 0, 0, 742, 742, 0,
0, 0, 0, 742, 0, 0, 0, 0, 0, 0,
0, 0, 1604, 0, 0, 0, 0, 0, 1615, 1616,
1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0,
0, 0, 0, 0, 0, 2890, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 742,
0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 0, 3435, 0, 756, 0, 0,
0, 0, 0, 742, 742, 742, 742, 1605, 0, 0,
0, 1606, 0, 756, 0, 0, 0, 0, 0, 0,
0, 0, 2002, 0, 0, 0, 0, 0, 0, 0,
0, 737, 1607, 1608, 0, 0, 0, 0, 745, 0,
737, 0, 1605, 0, 0, 0, 1606, 0, 1609, 0,
775, 0, 0, 0, 0, 742, 0, 0, 0, 0,
0, 0, 0, 0, 742, 0, 756, 1607, 1608, 0,
742, 742, 0, 1610, 0, 680, 1611, 926, 0, 0,
0, 0, 0, 1609, 0, 0, 0, 0, 0, 1612,
0, 0, 1613, 0, 0, 0, 0, 0, 0, 0,
1489, 0, 0, 0, 0, 0, 0, 742, 1610, 737,
0, 1611, 0, 680, 680, 0, 742, 0, 0, 0,
0, 0, 680, 0, 1612, 0, 0, 1613, 0, 0,
0, 0, 0, 0, 0, 623, 623, 0, 0, 2202,
0, 0, 0, 1076, 0, 1076, 0, 0, 0, 0,
0, 0, 1076, 0, 0, 1076, 0, 0, 0, 1076,
0, 0, 0, 0, 1614, 0, 0, 1076, 1076, 0,
0, 0, 0, 0, 0, 1076, 0, 775, 1076, 1076,
1076, 1076, 0, 0, 0, 0, 0, 0, 1076, 1076,
0, 1076, 0, 1076, 1076, 0, 0, 1076, 0, 1614,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1076, 0, 0, 0, 742, 1076,
0, 0, 0, 1076, 0, 0, 0, 1076, 0, 1076,
1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 0, 1076,
0, 0, 0, 680, 1076, 0, 1076, 0, 0, 0,
0, 0, 680, 0, 1615, 1616, 1617, 0, 1618, 1619,
1620, 1621, 1622, 1623, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1615,
1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0,
0, 0, 0, 2290, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1598, 0,
0, 1599, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599,
0, 0, 0, 0, 0, 0, 1602, 680, 0, 680,
0, 1076, 1603, 0, 1598, 0, 0, 1599, 0, 0,
0, 0, 0, 0, 1602, 0, 0, 0, 0, 0,
1603, 0, 0, 0, 1600, 0, 1604, 0, 0, 0,
0, 0, 1602, 0, 0, 0, 0, 2405, 1603, 2412,
0, 0, 0, 0, 1604, 756, 0, 0, 0, 0,
756, 0, 0, 756, 745, 0, 0, 0, 0, 623,
0, 623, 1604, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 756, 0, 0, 1076, 0,
0, 0, 0, 0, 737, 0, 742, 742, 742, 0,
737, 775, 0, 742, 0, 742, 0, 742, 742, 0,
0, 680, 0, 0, 0, 0, 2911, 0, 0, 756,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
646, 0, 0, 0, 0, 0, 1605, 0, 0, 0,
1606, 0, 0, 0, 0, 0, 756, 0, 0, 1899,
0, 0, 0, 0, -2163, 2512, 0, 0, 1606, 0,
2521, 1607, 1608, 0, 0, 0, 680, 0, 0, 0,
756, 0, 1605, 0, 0, 0, 1606, 1609, 0, 1607,
1608, 0, 2552, 2552, 0, 0, 0, 0, 0, 745,
756, 0, 0, 756, 0, -2163, 0, 1607, 1608, 0,
0, 0, 1610, 0, 742, 1611, 0, 0, 0, 0,
0, 756, 0, 1609, 0, 0, 1598, 0, 1612, 1599,
1188, 756, 0, 1611, 0, 0, 0, 0, 0, 0,
2609, 0, 2611, 2613, 756, 0, 1612, 0, 1610, 0,
0, 1611, 0, 756, 1602, 0, 0, 0, 0, 0,
1603, 0, 1189, 0, 1612, 0, 0, 1613, 0, 0,
742, 0, 0, 0, 0, 0, 0, 0, 742, 742,
742, 742, 742, 742, 1604, 0, 0, 0, 0, 0,
0, 0, 0, 1076, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1614, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1190, 0, 0,
1899, -2163, 0, 0, 2552, 680, 0, 0, 0, 623,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1614,
0, 0, 0, 0, 0, 0, 3382, 1598, 1191, 0,
1599, 0, 0, 0, 0, 2609, 0, 0, 0, 0,
0, 0, 742, 2739, 0, 0, 0, 1600, 0, 0,
0, 0, 876, 0, 0, 1602, 0, 0, 0, 0,
0, 1603, 0, 1192, -2163, 0, 0, 742, 1606, 742,
2552, 742, 2552, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 0, 1604, 876, 0, 0, 1607,
1608, 1076, 1193, 0, 0, 1618, 1619, 1620, 1621, 1622,
1623, 0, 0, 1489, 0, -2163, 0, 0, 0, 1615,
1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 1194,
0, 756, 0, 3170, 0, 0, 0, 0, 0, 1598,
0, 0, 1599, 1611, 0, 0, 0, 0, 0, 0,
0, 0, 0, 756, 0, 0, 1612, 737, 1598, 1600,
1195, 1599, 737, 0, 32, 0, 0, 1602, 1196, 0,
0, 0, 742, 1603, 1197, 1598, 0, 0, 1599, 1076,
1076, 1198, 0, 0, 0, 1076, 1602, 0, 0, 1199,
0, 0, 1603, 0, 0, 1605, 0, 1604, 1200, 1606,
0, 0, 0, 1602, 0, 0, 1201, 0, 0, 1603,
1076, 1076, 0, 0, 0, 1076, 1604, 0, 0, 0,
1607, 1608, 0, 0, 0, 0, 0, 1076, 1076, 1076,
1076, -2163, 0, 1604, 0, 0, 1609, 0, 0, 0,
1076, 0, 0, 1076, 0, 1076, 2894, 0, 0, 0,
0, 0, 0, 0, 0, 1076, 1076, 1202, 0, 1076,
0, 1610, 0, 0, 1611, 0, 0, 0, 0, 0,
0, 0, 1076, 0, 1076, 0, 775, 1612, 1076, 0,
1613, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1076, 3383, 0, 1605, 680, 0,
0, 1606, 0, 0, 0, 2939, 0, 1076, 1076, 1076,
0, 0, 0, 0, 0, 0, 1605, 0, 0, 0,
1606, 876, 1607, 1608, 1076, 1618, 1619, 1620, 1621, 1622,
1623, 0, 0, -2163, 0, 1076, 0, 1606, 1609, 0,
1076, 1607, 1608, 0, 680, 0, 0, 1076, 0, 0,
0, 0, 1614, 2939, 0, 0, 2978, 1609, 1607, 1608,
2412, 0, 0, 1610, 0, 0, 1611, 0, 0, 756,
0, 0, 0, 0, -2163, 0, 0, 0, 0, 1612,
0, 0, 1613, 0, 0, 1611, 0, 0, 0, 0,
1076, 0, 2552, 0, 0, 0, 0, 1489, 1612, 0,
0, 0, 1611, 0, 0, 0, 0, 0, 0, 0,
876, 0, 0, 0, 0, 1612, 0, 0, 742, 0,
742, 742, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1598, 0, 0, 1599, 0,
0, 2751, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621,
1622, 1623, 0, 0, 1614, 0, 3320, 0, 0, 0,
1188, 0, 0, 1602, 0, 0, 0, 0, 0, 1603,
0, 0, 0, 1614, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-2163, 0, 1189, 1604, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 756, 0, 0, 0, 0, 0,
0, 756, 0, 0, 0, 0, 0, 0, 0, 0,
0, 499, 0, 0, 0, 0, 0, 544, 499, 0,
0, 0, 0, 584, 0, 499, 0, 0, 0, 0,
499, 0, 632, 0, 1615, 1616, 1617, 1190, 1618, 1619,
1620, 1621, 1622, 1623, 0, 3386, 0, 0, 3367, 0,
692, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 0, 0, 0, 0, 1191, 0,
0, 756, 0, 0, 1618, 1619, 1620, 1621, 1622, 1623,
0, 2552, 2552, -2163, 0, 1598, 0, 1606, 1599, 0,
0, 0, 0, 0, 0, 0, 0, 2752, 0, 1188,
0, 0, 0, 1192, 0, 1600, 0, 0, 1607, 1608,
0, 0, 0, 1602, 0, 0, 0, 0, 0, 1603,
0, 0, 0, 0, -2163, 0, 0, 0, 0, 0,
0, 1189, 1193, 876, 0, 876, 0, 0, 0, 680,
0, 0, 0, 1604, 0, 0, 0, 0, 0, 0,
0, 0, 1611, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1489, 680, 1612, 0, 0, 0, 0,
0, 0, 680, 0, 0, 0, 680, 0, 0, 0,
0, 0, 749, 0, 0, 0, 1190, 0, 0, 0,
680, 777, 0, 780, 32, 783, 876, 785, 1196, 0,
0, 0, 0, 0, 1197, 0, 0, 0, 0, 0,
0, 1198, 0, 0, 0, 0, 0, 1191, 742, 1876,
0, 742, 0, 0, 756, 0, 0, 0, 1200, 0,
0, 0, 0, 0, 0, 737, 1201, 0, 756, 0,
-2163, 0, 0, 1605, 0, 0, 0, 1606, 0, 0,
0, 0, 1192, 0, 680, 0, 756, 0, 0, 0,
0, 0, 742, 0, 0, 0, 0, 0, 1607, 1608,
1076, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1076, 1193, 0, 0, 1609, 0, 1076, 1202, 1076, 0,
0, 2754, 0, 0, 1076, 0, 0, 1076, 1076, 1076,
1076, 1076, 1076, 1076, 1076, 1076, 1076, 0, 0, 1610,
1076, 1076, 1611, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1076, 0, 1612, 0, 1076, 1613, 0,
0, 1076, 0, 0, 1618, 1619, 1620, 1621, 1622, 1623,
0, 1076, 0, 32, 1076, 1875, 1076, 1196, 0, 0,
0, 0, 0, 1197, 0, 1076, 1076, 1076, 0, 0,
1198, 1076, 0, 0, 1076, 0, 0, 0, 1876, 0,
0, 680, 680, 680, 2939, 3400, 0, 1200, 0, 3400,
3413, 0, 1212, 0, 1076, 1201, 0, 0, 1213, 0,
3427, 0, 1076, 0, 1076, 0, 0, 0, 0, 0,
1614, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1247, 0, 0, 0, 1076, 0, 0,
0, 0, 0, 1076, 0, 0, 0, 2412, 1214, 1076,
0, 0, 0, 0, 0, 0, 1202, 0, 0, 0,
0, 0, 0, 0, 3467, 1489, 1489, 0, 2002, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1248,
0, 0, 742, 742, 742, 742, 0, 0, 0, 0,
0, 756, 0, 0, 0, 0, 0, 1215, 0, 0,
0, 0, 0, 0, 1216, 1598, 0, 1217, 1599, 0,
1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623,
3510, 0, 0, 0, 3439, 0, 0, 0, 0, 0,
0, 0, 0, 1602, 0, 0, 833, 0, 0, 1603,
0, 0, 0, 840, 0, 0, 0, 0, 0, 0,
0, 0, 855, 856, 0, 0, 1249, 858, 0, 1218,
0, 0, 0, 1604, 0, 0, 0, 872, 756, 0,
0, 756, 0, 0, 0, 0, 0, 0, 0, 0,
880, 0, 0, 0, 0, 3565, 0, 0, 0, 0,
0, 0, 0, 0, 901, 0, 0, 903, 0, 905,
0, 908, 1250, 0, 1251, 0, 0, 0, 0, 0,
0, 876, 0, 0, 1252, 0, 1220, 0, 0, 0,
0, 0, 0, 0, 0, 3735, 1221, 0, 0, 0,
0, 0, 0, 0, 1222, 0, 499, 0, 0, 0,
0, 0, 1253, 1223, 0, 0, 0, 0, 0, 1212,
0, 680, 0, 0, 0, 1213, 0, 0, 964, 0,
965, 0, 742, -2163, 1076, 0, 0, 1606, 0, 0,
680, 0, 0, 0, 2572, 0, 0, 0, 1225, 1255,
0, 0, 1899, 0, 0, 0, 0, 0, 1607, 1608,
0, 0, 680, 0, 0, 1214, 0, 0, 0, 0,
0, 2609, 0, 2573, -2163, 0, 0, 3658, 0, 0,
0, 1899, 0, 692, 1257, 0, 0, 0, 0, 0,
0, 0, 0, 1076, 1076, 0, 0, 0, 0, 0,
0, 0, 1611, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1215, 1612, 2552, 0, 2552, 1598,
0, 1216, 1599, 0, 1217, 0, 0, 0, 0, 0,
0, 1227, 0, 0, 756, 0, 0, 0, 0, 1600,
0, 0, 0, 0, 0, 0, 0, 1602, 0, 0,
1076, 0, 0, 1603, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1218, 1604, 0, 0,
0, 0, 0, 0, 0, 1296, 0, 1076, 0, 0,
-2163, 0, 0, 0, 0, 0, 0, 1076, 1076, 0,
1308, 0, 0, 0, 0, 1076, 1076, 0, 0, 0,
1076, 1316, 0, 0, 0, 0, 1076, 1076, 1318, 0,
1076, 0, 680, 680, 680, 680, 0, 0, 0, 3400,
1368, 1219, 3743, 1220, 0, 2939, 0, 0, 0, 2939,
0, 0, 0, 1221, 0, 3756, 0, 0, 1076, 0,
0, 1222, 0, 1076, 0, 0, 0, 0, 0, 3766,
1223, 0, 1410, 0, 0, 1076, 0, 0, 0, 0,
0, 775, 0, 0, 0, 0, 0, 1605, 0, 2978,
0, 1606, 0, 2412, 1618, 1619, 1620, 1621, 1622, 1623,
0, 1293, 0, 623, 0, 1225, 1076, 0, 0, 0,
0, 0, 1607, 1608, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2552, 2552, 1609, 0,
1294, 0, 0, 0, 499, 0, 499, 0, 499, 0,
499, 0, 499, 499, 499, 0, 0, 0, 0, 499,
3811, 0, 0, 1610, -115, 0, 1611, 0, 0, 756,
0, 0, 0, 0, 0, 0, 0, 0, 1, 1612,
0, 756, 1613, 0, 0, 0, 0, 0, 2, 0,
3, 4, 0, 0, 0, 0, 0, 0, 1227, 0,
742, 0, 0, 0, 0, 5, 0, 0, 0, 0,
0, 0, 0, 1212, 742, 0, 0, 0, 0, 1213,
0, 0, 0, 0, 0, 6, 0, 7, 8, 0,
0, 0, 0, 9, 0, 10, 0, 0, 0, 0,
876, 0, 0, 0, 0, 11, 0, 12, 1489, 0,
0, 0, 0, 0, 1614, 0, 0, 0, 0, 1214,
0, 0, 0, 13, 0, 0, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1076, 0, 15, 0,
16, 0, 0, 0, 17, 0, 0, 0, 0, 0,
18, 0, 0, 0, 0, 0, 0, 19, 0, 20,
0, 0, 0, 742, 1899, 21, 0, 0, 1215, 0,
0, 0, 0, 0, 0, 1216, 0, 0, 1217, 22,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 680, 0, 0, 0, 0, 0, 0, 692, 0,
0, 0, 0, 0, 1615, 1616, 1617, 756, 1618, 1619,
1620, 1621, 1622, 1623, 0, 0, 0, 0, 3461, 1076,
0, 0, 0, 0, 0, 0, 0, 0, 1076, 0,
1218, 0, 0, 23, 24, 0, 0, 0, 0, 25,
0, 0, 0, 0, 0, 1076, 1076, 26, 0, 1076,
0, 0, 0, 0, 0, 0, 3400, 0, 27, 1856,
2939, 0, 0, 0, 0, 2939, 0, 0, 2939, 2609,
0, 3951, 0, 1076, 1076, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1219, 0, 1220, 0, 0,
0, 0, 756, 0, 756, 28, 0, 1221, 3467, 775,
742, 742, 742, 0, 0, 1222, 29, 0, 0, 0,
0, 30, 0, 31, 1223, 0, 0, 0, 32, 0,
0, 0, 0, 33, 0, 0, 34, 0, 0, 0,
35, 0, 0, 737, 775, 36, 37, 0, 0, 0,
0, 0, 0, 38, 0, 1858, 39, 0, 0, 1225,
0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1489, 0, 41, 0, 0, 0,
737, 0, 0, 680, 1859, 0, 0, 0, 0, 0,
0, 0, 0, 42, 2552, 0, 1899, 0, 0, 0,
0, 0, 0, 43, 0, 0, 0, 1598, 3658, 44,
1599, 0, 0, 680, 45, 0, 0, 0, 0, 0,
0, 742, 3467, 0, 0, 0, 46, 1600, 0, 0,
0, 0, 1212, 0, 1598, 1602, 0, 1599, 1213, 0,
0, 1603, 1227, 0, 1076, 0, 0, 1076, 0, 1076,
0, 0, 1598, 0, 1600, 1599, 0, 0, 2054, 0,
47, 0, 1602, -115, 0, 1604, 1076, 0, 1603, 0,
2939, 2076, 1600, 3951, 0, 0, 0, 0, 1214, 4080,
1602, 0, 0, 0, 0, 0, 1603, 0, 0, 0,
0, 0, 1604, 0, 0, 0, 0, 0, 0, 742,
0, 0, 0, 680, 0, 0, 0, 0, 0, 2118,
1604, 0, 0, 2122, 0, 0, 0, 0, 0, 0,
742, 742, 742, 742, 2133, 0, 2135, 1215, 2136, 0,
876, 0, 0, 2137, 1216, 0, 0, 1217, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1076, 0, 0, 0, 0, 0, 499, 0, 499, 0,
499, 0, 499, 0, 499, 1605, 0, 0, 499, 1606,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 741, 743, 0, 0, 747, 748, 1218,
1607, 1608, 1605, 0, 0, 0, 1606, 0, 0, 0,
0, 0, 0, 0, 786, 1076, 1609, 0, 0, 0,
1605, 742, 0, 775, 1606, 0, 0, 1607, 1608, 0,
0, 0, 1076, 0, 0, 0, 0, 0, 0, 0,
0, 1610, 0, 1609, 1611, 1607, 1608, 0, 0, 0,
0, 0, 0, 0, 1219, 0, 1220, 1612, 0, 0,
1613, 1609, 0, 742, 0, 0, 1221, 737, 1610, 0,
0, 1611, 0, 0, 1222, 0, 0, 3467, 0, 0,
0, 0, 0, 1223, 1612, 0, 1610, 1613, 0, 1611,
0, 4080, 0, 0, 1076, 1076, 0, 756, 0, 0,
0, 0, 1612, 0, 0, 1613, 0, 737, 0, 0,
0, 0, 0, 0, 2508, 742, 0, 0, 1225, 0,
0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599,
0, 0, 1614, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1076, 1226, 0, 0, 1600, 0, 0, 0,
0, 0, 1076, 0, 1602, 0, 0, 742, 0, 1614,
1603, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1614, 0, 0,
0, 0, 0, 0, 1604, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1227, 0, 0, 0, 0, 0, 0, 0, 0,
1076, 0, 0, 0, 0, 0, 0, 0, 0, 737,
0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621,
1622, 1623, 0, 0, 0, 0, 3703, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1615,
1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623, 0,
0, 0, 0, 3737, 0, 0, 0, 1615, 1616, 1617,
0, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 0,
0, 3929, 0, 0, 1605, 0, 0, 1212, 1606, 0,
0, 0, 0, 1213, 0, 0, 2419, 2420, 0, 0,
0, 2423, 2424, 0, 0, 2427, 0, 0, 0, 1607,
1608, 0, 0, 0, 0, 2437, 0, 0, 0, 0,
0, 0, 2446, 0, 0, 1609, 2449, 2450, 0, 0,
2453, 2454, 2455, 1214, 835, 0, 0, 0, 838, 0,
0, 0, 2469, 0, 2471, 0, 0, 0, 0, 0,
1610, 0, 0, 1611, 859, 0, 0, 0, 0, 0,
2493, 0, 0, 0, 0, 2495, 1612, 1598, 0, 1613,
1599, 739, 0, 0, 0, 0, 0, 0, 0, 739,
0, 0, 1215, 0, 0, 1598, 0, 1600, 1599, 1216,
0, 0, 1217, 0, 0, 1602, 2513, 2514, 2517, 2519,
0, 1603, 0, 2526, 2529, 1600, 0, 0, 0, 0,
0, 2540, 1598, 1602, 2544, 1599, 0, 0, 2548, 1603,
0, 0, 0, 0, 0, 1604, 0, 0, 0, 0,
0, 0, 1600, 0, 2571, 0, 0, 0, 0, 0,
1602, 1614, 0, 1604, 1218, 2578, 1603, 2580, 0, 0,
0, 0, 2583, 0, 0, 0, 0, 2587, 2588, 2589,
2590, 0, 2592, 0, 0, 0, 0, 0, 0, 0,
1604, 0, 0, 0, 0, 2615, 2616, 2617, 0, 0,
0, 0, 0, 0, 0, 0, 2625, 2626, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1219,
0, 1220, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1221, 0, 0, 0, 0, 0, 0, 0, 1222,
0, 0, 0, 0, 0, 1605, 0, 0, 1223, 1606,
0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622,
1623, 0, 0, 1605, 0, 3969, 2688, 1606, 0, 0,
1607, 1608, 0, 0, 0, 0, 0, 0, 0, 2584,
0, 0, 0, 1225, 0, 0, 1609, 0, 1607, 1608,
1605, 0, 0, 0, 1606, 0, 0, 0, 0, 0,
0, 1235, 1236, 0, 1609, 0, 0, 0, 2585, 0,
0, 1610, 0, 0, 1611, 1607, 1608, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1612, 0, 1610,
1613, 1609, 1611, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0,
0, 0, 0, 555, 0, 0, 1610, 0, 0, 1611,
0, 0, 0, 0, 0, 556, 1227, 0, 1320, 0,
0, 0, 1612, 0, 0, 1613, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 557, 0, 1378, 1379,
0, 0, 0, 0, 0, 0, 0, 0, 1598, 558,
0, 1599, 1614, 0, 0, 1406, 0, 0, 0, 2808,
0, 0, 559, 0, 0, 0, 0, 0, 1600, 0,
1614, 0, 0, 0, 0, 0, 1602, 0, 0, 560,
739, 0, 1603, 1433, 1435, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1614, 0, 0,
561, 0, 0, 0, 0, 0, 1604, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 562, 0,
0, 0, 0, 0, 739, 0, 0, 0, 0, 563,
0, 0, 0, 739, 564, 0, 0, 0, 0, 0,
565, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621,
1622, 1623, 0, 0, 0, 566, 4014, 0, 0, 0,
1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623,
0, 0, 0, 0, 4193, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2866, 0, 1615, 1616, 1617,
2867, 1618, 1619, 1620, 1621, 1622, 1623, 0, 0, 1598,
0, 4277, 1599, 0, 0, 0, 1605, 0, 0, 0,
1606, 0, 0, 0, 0, 0, 0, 0, 0, 1600,
0, 0, 0, 2382, 0, 0, 739, 1602, 0, 0,
567, 1607, 1608, 1603, 0, 0, 0, 0, 0, 0,
568, 0, 0, 0, 0, 0, 0, 1609, 1598, 0,
0, 1599, 0, 0, 0, 0, 739, 1604, 185, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1600, 0,
0, 0, 1610, 0, 0, 1611, 1602, 0, 0, 0,
2988, 2989, 1603, 569, 0, 0, 0, 570, 1612, 571,
0, 1613, 0, 0, 0, 572, 0, 0, 573, 0,
0, 0, 2383, 0, 0, 0, 1604, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 574, 0, 575, 0, 0, 0,
576, 0, 0, 0, 0, 0, 0, 0, 577, 0,
3022, 3024, 0, 578, 0, 3024, 0, 0, 0, 0,
3035, 3036, 3037, 0, 0, 579, 0, 1605, 0, 0,
0, 1606, 0, 1614, 0, 0, 0, 0, 580, 0,
0, 739, 0, 0, 0, 0, 0, 0, 0, 0,
0, 739, 1607, 1608, 0, 0, 3058, 3059, 3060, 3061,
0, 0, 0, 0, 0, 0, 0, 0, 1609, 0,
0, 0, 0, 1364, 0, 0, 1605, 0, 0, 0,
1606, 1914, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3086, 1610, 0, 0, 1611, 0, 0, 0,
0, 1607, 1608, 0, 0, 0, 739, 0, 0, 1612,
0, 0, 1613, 0, 0, 0, 0, 1609, 0, 0,
0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 1971, 1972, 1973, 1974, 0, 0,
0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0,
0, 0, 0, 0, 3124, 739, 0, 0, 1612, 0,
0, 1613, 3128, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2010, 2011, 0, 0, 0, 0, 2020,
3359, 0, 0, 0, 1614, 1598, 0, 0, 1599, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364, 0, 0, 0, 0, 1600, 0, 0, 1598, 0,
0, 1599, 0, 1602, 0, 0, 0, 0, 0, 1603,
0, 0, 0, 0, 3213, 2045, 0, 0, 1600, 739,
0, 2829, 0, 1614, 3219, 2384, 1602, 0, 0, 0,
0, 0, 1603, 1604, 0, 0, 0, 3360, 0, 2078,
2079, 2080, 2081, 0, 0, 0, 0, 0, 739, 0,
0, 3238, 0, 3240, 0, 0, 1604, 0, 0, 0,
0, 0, 0, 0, 1615, 1616, 1617, 0, 1618, 1619,
1620, 1621, 1622, 1623, 0, 0, 739, 739, 0, 739,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3279,
0, 2134, 0, 0, 0, 0, 739, 0, 1212, 0,
2138, 0, 0, 3289, 1213, 0, 0, 2145, 0, 0,
0, 4251, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1605, 0, 739, 1745, 1606, 0, 0,
0, 0, 0, 0, 1214, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1605, 0, 1607, 1608,
1606, 0, 0, 0, 739, 0, 0, 0, 739, 739,
0, 0, 0, 0, 1609, 0, 0, 0, 0, 0,
0, 1607, 1608, 1364, 0, 0, 0, 0, 0, 1745,
0, 0, 0, 1215, 0, 0, 0, 1609, 0, 1610,
1216, 0, 1611, 1217, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0,
0, 0, 1610, 0, 0, 1611, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4252, 1364, 0, 1612, 0,
0, 1613, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2303, 1218, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1364, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1598, 0, 0, 1599,
1614, 0, 0, 0, 0, 0, 0, 0, 1598, 0,
0, 1599, 0, 0, 0, 0, 1600, 0, 0, 0,
1219, 0, 1220, 1614, 1602, 0, 0, 0, 1600, 0,
1603, 2874, 1221, 0, 0, 0, 1602, 0, 0, 0,
1222, 3478, 1603, 3479, 0, 0, 1364, 3481, 0, 1223,
0, 0, 0, 0, 1604, 0, 0, 0, 0, 0,
0, 0, 3490, 0, 0, 1364, 1604, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3498,
2622, 0, 0, 0, 1225, 1364, 0, 0, 3509, 0,
1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623,
0, 0, 0, 0, 0, 1745, 0, 0, 0, 2623,
1364, 0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 0, 0, 0, 0, 3537, 3538,
3539, 3540, 3541, 3542, 3543, 0, 0, 0, 0, 3550,
3551, 0, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 0,
0, 0, 0, 0, 1605, 0, 739, 3566, 1606, 3568,
3569, 0, 1364, 0, 0, 739, 1605, 1227, 0, 0,
1606, 0, 0, 0, 0, 0, 0, 0, 0, 1607,
1608, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1607, 1608, 0, 0, 1609, 0, 0, 0, 0,
0, 0, 2460, 2461, 2462, 0, 0, 1609, 0, 2470,
0, 2472, 0, 2474, 2475, 0, 0, 0, 0, 0,
1610, 0, 0, 1611, 0, 0, 0, 0, 3617, 3619,
3621, 0, 1610, 3624, 739, 1611, 1612, 0, 0, 1613,
0, 0, 0, 0, 0, 0, 0, 0, 1612, 0,
0, 1613, 0, 2844, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 739, 0,
739, 0, 1363, 0, 0, 0, 0, 739, 0, 0,
739, 0, 0, 0, 739, 0, 0, 0, 0, 1212,
0, 0, 739, 739, 0, 1213, 0, 0, 0, 0,
739, 0, 0, 739, 739, 739, 739, 0, 0, 3024,
2577, 1614, 0, 739, 739, 0, 739, 0, 739, 739,
0, 0, 739, 1614, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1214, 0, 0, 1364, 739,
1745, 0, 0, 0, 739, 0, 0, 0, 739, 0,
0, 0, 739, 0, 739, 739, 739, 739, 739, 739,
739, 739, 739, 0, 739, 0, 2634, 0, 0, 739,
0, 739, 0, 0, 2643, 2644, 2645, 2646, 2647, 2648,
0, 0, 0, 0, 1215, 0, 0, 0, 0, 0,
0, 1216, 0, 0, 1217, 0, 0, 0, 0, 1363,
0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622,
1623, 0, 1362, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 0, 1598, 0, 0, 1599, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1600, 1218, 0, 0, 0,
0, 0, 0, 1602, 0, 0, 0, 0, 2731, 1603,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1604, 0, 2769, 0, 2771, 1598, 0,
0, 1599, 0, 0, 0, 0, 739, 0, 0, 0,
0, 1219, 0, 1220, 0, 0, 0, 0, 1600, 0,
0, 2885, 0, 1221, 0, 0, 1602, 0, 0, 0,
0, 1222, 1603, 0, 0, 3801, 3802, 3803, 3804, 0,
1223, 0, 0, 0, 0, 0, 0, 0, 0, 1362,
0, 0, 0, 0, 1745, 0, 1604, 0, 0, 0,
3817, 3818, 0, 0, 0, 0, 0, 0, 0, 0,
0, 3032, 3827, 3828, 0, 1225, 0, 2879, 0, 0,
0, 0, 0, 739, 0, 0, 0, 1598, 2819, 739,
1599, 0, 0, 1605, 0, 739, 0, 1606, 0, 0,
3033, 0, 1363, 0, 0, 0, 0, 1600, 0, 0,
3366, 0, 0, 0, 0, 1602, 0, 0, 1607, 1608,
0, 1603, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1364, 0, 0, 1609, 0, 1364, 1364, 0, 0,
0, 0, 0, 0, 0, 1604, 0, 0, 1364, 0,
0, 0, 0, 0, 0, 1891, 1605, 0, 1227, 1610,
1606, 0, 1611, 0, 1745, 0, 0, 1745, 0, 0,
0, 0, 0, 0, 0, 1612, 0, 0, 1613, 0,
1648, 1607, 1608, 0, 0, 1363, 3873, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1609, 0, 0,
1598, 0, 0, 1599, 0, 0, 0, 0, 0, 3894,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600, 0, 1610, 0, 0, 1611, 0, 0, 1602, 3911,
0, 0, 0, 0, 1603, 0, 0, 0, 1612, 0,
0, 1613, 1362, 0, 0, 1605, 0, 0, 0, 1606,
1614, 0, 0, 0, 0, 1363, 0, 0, 1604, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607, 1608, 0, 0, 1363, 0, 0, 0, 739, 0,
1364, 0, 0, 0, 0, 0, 1609, 0, 0, 0,
0, 0, 0, 0, 1363, 1362, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1610, 0, 1614, 1611, 499, 0, 0, 0, 1363,
0, 0, 0, 0, 0, 1362, 0, 1612, 0, 0,
1613, 0, 0, 0, 3014, 0, 3015, 3016, 0, 0,
1615, 1616, 1617, 0, 1618, 1619, 1620, 1621, 1622, 1623,
0, 0, 0, 0, 1364, 0, 0, 0, 1605, 0,
0, 0, 1606, 0, 0, 0, 0, 0, 0, 0,
0, 1363, 0, 3995, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1607, 1608, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1362, 739, 0, 0, 1609,
0, 0, 1614, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 4019, 1362, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1610, 0, 0, 1611, 1063, 0,
0, 0, 0, 0, 1362, 0, 0, 0, 1364, 0,
1612, 0, 0, 1613, 0, 0, 0, 0, 0, 0,
3024, 0, 739, 0, 0, 0, 0, 739, 1120, 1362,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 739, 739, 0, 0, 0, 0,
739, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620, 1621,
1622, 1623, 0, 0, 0, 739, 739, 0, 0, 0,
739, 1362, 0, 0, 0, 1614, 0, 0, 0, 0,
0, 0, 739, 739, 739, 739, 0, 4096, 1598, 0,
1745, 1599, 0, 0, 0, 739, 1745, 0, 739, 0,
739, 3316, 0, 0, 0, 0, 0, 1363, 1600, 0,
739, 739, 0, 0, 739, 0, 1602, 0, 0, 0,
0, 0, 1603, 0, 0, 0, 0, 739, 0, 739,
0, 0, 0, 739, 0, 0, 0, 0, 0, 0,
2362, 0, 0, 0, 0, 0, 1604, 0, 0, 739,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739, 3024, 739, 739, 739, 1615, 1616, 1617, 0, 1618,
1619, 1620, 1621, 1622, 1623, 0, 0, 0, 0, 739,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739, 0, 0, 0, 0, 739, 0, 0, 0, 0,
0, 0, 739, 0, 3287, 0, 0, 3288, 739, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 4190, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 739, 1605, 1362, 3312, 0,
1606, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1364, 0,
0, 1607, 1608, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1609, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1364, 1364,
0, 1364, 1610, 0, 0, 1611, 0, 0, 0, 0,
0, 1536, 0, 0, 0, 0, 0, 0, 1612, 0,
0, 1613, 0, 0, 0, 0, 0, 0, 0, 0,
1745, 1745, 1745, 0, 0, 0, 0, 0, 0, 0,
1560, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1364, 0, 1364, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1585, 1586,
0, 1588, 0, 0, 0, 0, 0, 0, 0, 0,
2497, 0, 0, 0, 0, 1891, 2504, 0, 1628, 0,
0, 0, 0, 1614, 0, 0, 0, 1363, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1364, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1664, 0, 0,
0, 0, 1364, 0, 0, 172, 0, 0, 3484, 3485,
3486, 3487, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1745, 0, 1766, 1364, 0, 0,
1776, 1779, 0, 0, 0, 0, 0, 0, 802, 0,
0, 0, 0, 0, 1745, 1364, 0, 0, 0, 0,
0, 173, 0, 1615, 1616, 1617, 0, 1618, 1619, 1620,
1621, 1622, 1623, 0, 174, 0, 0, 0, 0, 0,
0, 803, 0, 0, 0, 0, 0, 0, 0, 0,
0, 175, 0, 0, 804, 805, 0, 176, 0, 0,
1362, 0, 0, 806, 0, 1362, 1362, 807, 0, 1363,
0, 0, 177, 0, 0, 0, 0, 1362, 1364, 0,
0, 0, 0, 0, 808, 0, 0, 0, 0, 0,
178, 0, 1364, 0, 0, 0, 0, 0, 0, 0,
0, 179, 0, 1364, 0, 809, 180, 0, 0, 0,
0, 0, 181, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 810, 0, 0, 0, 182, 0, 0,
739, 0, 0, 0, 811, 0, 0, 0, 0, 812,
0, 0, 0, 1891, 0, 0, 0, 0, 0, 0,
0, 0, 183, 0, 0, 0, 0, 0, 3623, 0,
813, 0, 0, 0, 0, 739, 0, 0, 1364, 0,
0, 0, 0, 0, 0, 739, 0, 0, 0, 0,
0, 739, 0, 739, 0, 814, 0, 0, 1364, 739,
0, 0, 739, 739, 739, 739, 739, 739, 739, 739,
739, 739, 184, 0, 0, 739, 739, 0, 0, 1362,
0, 0, 0, 1364, 0, 0, 0, 0, 739, 0,
0, 0, 739, 0, 1745, 0, 739, 1363, 0, 0,
185, 0, 0, 0, 0, 815, 739, 0, 0, 739,
0, 739, 0, 0, 0, 0, 0, 0, 0, 1364,
739, 739, 739, 0, 0, 186, 739, 0, 0, 739,
0, 187, 0, 185, 0, 0, 0, 188, 0, 739,
189, 0, 0, 0, 0, 0, 0, 0, 0, 739,
0, 0, 0, 1362, 0, 0, 0, 739, 816, 739,
0, 0, 817, 0, 818, 0, 190, 0, 191, 0,
819, 0, 192, 820, 0, 0, 0, 0, 0, 0,
193, 0, 739, 0, 0, 194, 0, 0, 739, 0,
0, 0, 0, 0, 739, 0, 0, 195, 0, 821,
0, 822, 0, 0, 0, 823, 0, 0, 0, 739,
196, 0, 0, 824, 0, 0, 0, 0, 825, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1362, 0, 0,
0, 0, 0, 826, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2362, 2362, 2362, 0, 0, 0, 0, 0, 2229,
0, 0, 0, 0, 0, 1745, 0, 0, 0, 1745,
1364, 1745, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2252, 0, 0, 2254, 0, 0, 2265, 0,
0, 0, 0, 0, 0, 2272, 2277, 0, 0, 0,
0, 2283, 0, 0, 2288, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2297, 0, 0, 0, 0, 2304, 0, 0, 0,
2316, 0, 0, 0, 2323, 0, 2325, 2326, 2327, 2328,
2329, 2330, 2331, 2332, 2333, 0, 2334, 0, 0, 0,
0, 1063, 0, 2359, 0, 0, 0, 1363, 0, 0,
0, 0, 0, 0, 0, 0, 3832, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3835, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1891, 2504, 739,
2504, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1364, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1363, 0, 1363, 0, 0, 1364, 739, 739,
0, 0, 0, 0, 1625, 0, 0, 0, 0, 3879,
0, 0, 0, 0, 0, 0, 0, 0, 1120, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1362, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1363, 0, 0,
0, 0, 0, 0, 0, 739, 0, 0, 0, 0,
0, 1625, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1363, 0, 0, 0, 0, 0, 1362, 1362, 0,
1362, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 739, 0, 0, 2451, 2504, 0, 0, 0,
0, 0, 739, 739, 0, 1364, 0, 0, 0, 0,
739, 739, 0, 0, 2504, 739, 1364, 0, 0, 0,
0, 739, 739, 0, 0, 739, 0, 0, 0, 0,
0, 0, 1362, 0, 1362, 0, 0, 0, 0, 0,
739, 0, 0, 0, 739, 0, 3974, 3976, 3976, 0,
0, 0, 0, 739, 0, 0, 0, 0, 739, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739, 0, 0, 0, 0, 0, 0, 1363, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1362, 0, 0,
0, 2504, 0, 0, 0, 0, 0, 0, 0, 0,
0, 739, 1363, 0, 0, 0, 0, 0, 0, 0,
0, 1362, 0, 0, 0, 0, 0, 0, 0, 1364,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1362, 0, 1745, 0,
0, 0, 0, 0, 0, 0, 0, 1364, 0, 0,
0, 0, 0, 0, 1362, 0, 0, 4048, 0, 1364,
0, 0, 0, 0, 0, 0, 0, 1363, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1363, 0, 0,
2661, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1364, 0, 0, 0, 0, 0, 1354,
0, 0, 1363, 0, 0, 0, 0, 1362, 0, 0,
0, 0, 0, 1745, 0, 0, 0, 0, 0, 0,
0, 1362, 0, 0, 0, 4090, 0, 0, 0, 0,
0, 0, 1362, 0, 0, 0, 0, 0, 1363, 0,
0, 0, 0, 0, 0, 0, 0, 4108, 0, 4110,
0, 739, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2362, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625, 0, 0, 0, 0, 0, 0, 1362, 2783, 0,
0, 0, 0, 1364, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1362, 0, 0,
0, 0, 0, 0, 0, 0, 1354, 0, 0, 0,
0, 0, 0, 0, 739, 0, 0, 3976, 1364, 0,
0, 0, 1362, 739, 0, 0, 0, 0, 0, 0,
1356, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739, 739, 0, 0, 739, 0, 0, 1625, 0, 0,
0, 0, 0, 0, 0, 739, 0, 2825, 1362, 4191,
739, 0, 2831, 739, 0, 0, 0, 0, 739, 739,
0, 1625, 0, 0, 0, 0, 2261, 0, 0, 2504,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 739, 0, 0, 1625, 1625, 0, 1625,
0, 0, 0, 0, 2277, 0, 2277, 2277, 0, 0,
0, 4225, 0, 0, 0, 0, 0, 2888, 0, 0,
2891, 0, 2893, 0, 1364, 0, 0, 0, 739, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1625,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2914,
0, 2916, 0, 4258, 0, 2919, 0, 1356, 0, 0,
0, 0, 0, 0, 0, 739, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1625, 0, 0, 0, 0,
0, 0, 0, 0, 2359, 2359, 2359, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1354,
0, 2956, 0, 0, 0, 0, 0, 739, 0, 1364,
0, 0, 1766, 0, 0, 0, 0, 2966, 0, 1362,
0, 0, 0, 0, 1779, 0, 0, 0, 0, 739,
1364, 0, 739, 1363, 739, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 739, 1354, 0, 0, 739, 0, 0, 0, 0,
1364, 0, 0, 0, 0, 0, 1891, 2997, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1625, 0, 0,
0, 0, 1354, 0, 0, 0, 0, 1625, 0, 0,
1625, 0, 0, 0, 1745, 0, 0, 1364, 0, 0,
0, 1364, 1364, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 739, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356, 0, 1354, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1364, 0, 0, 0, 0, 0, 0, 0,
0, 1354, 0, 1362, 1363, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1363, 0, 0, 0, 0,
739, 1354, 0, 1357, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1356, 0, 0, 1362, 739, 0, 0,
0, 0, 0, 0, 0, 0, 1354, 0, 0, 0,
0, 0, 2362, 0, 0, 0, 0, 2362, 0, 0,
0, 0, 0, 1356, 0, 0, 0, 0, 0, 2362,
0, 0, 739, 0, 0, 0, 0, 0, 0, 0,
0, 0, 739, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1354, 739,
739, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 739, 0, 0, 0, 0, 0, 1363, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1356, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1362, 0, 1363, 739, 0, 0,
1357, 0, 1356, 0, 0, 1362, 0, 739, 1363, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1356, 1745, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1356, 1359, 0,
0, 0, 1363, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 739, 0, 0, 0, 0,
1745, 0, 0, 0, 739, 0, 0, 0, 1745, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1356,
0, 0, 0, 0, 0, 0, 0, 0, 1362, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1354, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1362, 3317, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3321, 1362, 0,
0, 0, 0, 3322, 0, 3323, 0, 0, 0, 0,
0, 0, 3903, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1359, 0, 3341, 3342, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1362, 1357, 0, 0, 0, 1363, 2283, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3370, 0,
0, 3373, 0, 3375, 0, 0, 0, 0, 0, 0,
1625, 0, 3379, 0, 0, 0, 0, 0, 3384, 0,
0, 3387, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1625, 0, 1625, 1357, 2261, 2261, 2862,
0, 3416, 2261, 0, 0, 0, 1625, 0, 0, 3428,
0, 2359, 0, 1625, 0, 0, 0, 0, 1625, 0,
0, 0, 0, 0, 1625, 1356, 1357, 0, 0, 1625,
0, 0, 0, 0, 3442, 0, 0, 0, 1625, 0,
1063, 0, 2261, 2261, 0, 1625, 1120, 0, 0, 0,
0, 0, 0, 2504, 0, 0, 0, 1625, 0, 0,
0, 0, 0, 0, 1625, 0, 1625, 1625, 1625, 1625,
1625, 1625, 1625, 1625, 1625, 1625, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1362, 0, 0,
0, 0, 0, 0, 0, 0, 1357, 0, 0, 0,
1625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1357, 0, 0, 1359, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1357, 0, 0, 2504, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1354, 0, 1363,
1357, 0, 1354, 1354, 0, 0, 0, 0, 0, 0,
511, 1359, 0, 0, 1354, 0, 0, 0, 0, 0,
0, 0, 512, 0, 0, 0, 0, 0, 0, 1363,
0, 0, 1625, 1362, 0, 0, 0, 0, 0, 0,
0, 1359, 0, 513, 0, 0, 0, 0, 0, 0,
0, 0, 1357, 0, 0, 0, 514, 0, 0, 0,
1360, 0, 0, 0, 0, 515, 1363, 0, 0, -692,
1363, 1363, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 516, 0, 0, 0,
0, 0, 517, 0, 0, 1361, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 518, 0, 0,
0, 1359, 0, 0, 0, 0, 0, 0, 1362, 0,
0, 0, 0, 0, 0, 519, 0, 0, 0, 0,
1359, 3903, 0, 0, 0, 0, 520, 0, 0, 1362,
0, 0, 0, 521, 0, 0, 1354, 522, 1356, 0,
1359, 0, 0, 1356, 1356, 0, 0, 0, 0, 0,
3671, 3672, -881, 0, 0, 1356, 0, 0, 0, 1362,
0, 0, 0, 0, 0, 1359, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1360, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523, 0, 0, 0, 0, 0, 1362, 0, 0, 0,
1362, 1362, 0, 0, 0, 0, 0, 3701, 0, 0,
1354, 0, 1361, 0, 0, 0, 0, 1359, 1357, 0,
0, 0, 0, 0, 0, 0, 0, 524, 0, 0,
525, 0, 1625, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3719, 3721, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3728, 0, 0,
0, 0, 0, 3733, 3734, 0, 0, 3736, 0, 0,
526, 0, 0, 0, 0, 0, 527, 1356, 0, 0,
0, 0, -369, 0, 1354, 528, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2359, 0, 0, 0, 0,
2359, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -369, 2359, 529, 530, 0, 531, 532, 0, 0,
0, 0, 0, 0, 0, 533, 0, 0, 0, 0,
534, 0, 0, 0, 0, 0, 535, 0, 0, 536,
0, 0, 537, 3782, 1625, 0, 0, 0, 0, 0,
0, 1356, 0, 0, 0, -369, 0, 0, 0, 0,
1360, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1359, 0, 0, 1625, 0, 0, 0,
0, 0, 1625, 0, 0, 1361, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2862, 2862,
0, 2261, 0, 1360, 2261, 2261, 2261, 2261, 2261, 2261,
2261, 2261, 2261, 2261, 2862, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1356, 0, 0, 0, 0,
0, 0, 0, 1360, 0, 0, 0, 0, 1361, 1625,
0, 0, 1625, 0, 1625, 0, 0, 0, 0, 2862,
2862, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2261, 2261, 1625, 0, 1625, 1361, 0,
1625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1357, 0, 0, 0, 0, 1357, 1357, 0, 0,
0, 0, 0, 3862, 0, 0, 0, 0, 1357, 0,
0, 0, 0, 1360, 0, 0, 0, 1625, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1625, 0, 0,
0, 0, 1360, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1361, 0,
0, 0, 1360, 0, 1354, 0, 0, 0, 1625, 0,
0, 0, 0, 0, 0, 0, 0, 1361, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1360, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1361, 0, 0,
0, 0, 0, 0, 1354, 1354, 0, 1354, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1361, 0, 0, 0, 3937, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1360,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357, 3954, 0, 0, 0, 0, 0, 0, 0, 1354,
0, 1354, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1361, 0, 1359, 0, 0, 0,
0, 1359, 1359, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1359, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1354, 1356, 0, 0, 0, 0,
0, 0, 0, 0, 1357, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1354, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1356, 1356, 0, 1356, 0,
0, 0, 0, 1354, 0, 0, 0, 0, 0, 0,
0, 2261, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1354, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1357, 0,
1356, 0, 1356, 0, 2283, 1360, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1359, 0, 0, 0, 0,
0, 0, 0, 4071, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1354, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 0, 0, 0, 1354, 0,
0, 0, 0, 0, 0, 1356, 0, 0, 0, 1354,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1625, 1356,
0, 0, 1625, 1625, 1625, 0, 0, 2862, 0, 1359,
0, 0, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862,
2862, 2862, 1625, 1625, 1356, 0, 0, 4132, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1356, 0, 1354, 0, 0, 0, 0, 0,
0, 1625, 2261, 2261, 1625, 0, 1625, 0, 0, 0,
1625, 2862, 2862, 0, 1354, 1625, 0, 0, 1625, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1354,
0, 0, 0, 1359, 0, 0, 0, 1625, 0, 4172,
0, 0, 0, 0, 0, 1356, 0, 0, 0, 1625,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1356,
0, 0, 0, 1625, 0, 1354, 0, 0, 0, 0,
1356, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 4211, 4211, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1357, 0,
0, 0, 0, 0, 0, 1356, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1360, 4211,
0, 0, 0, 1360, 1360, 1356, 0, 0, 0, 4255,
0, 0, 0, 0, 0, 1360, 0, 0, 1357, 1357,
0, 1357, 0, 0, 0, 0, 0, 0, 0, 0,
1356, 0, 0, 1361, 0, 0, 0, 0, 1361, 1361,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1356, 4211, 0, 0,
0, 0, 0, 1357, 0, 1357, 1354, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2862, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1357, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1625, 1625, 0, 0, 0, 1360, 0, 0,
0, 0, 1357, 1359, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1625, 0, 0, 0, 2261, 1357, 0, 0,
0, 0, 1361, 0, 0, 0, 0, 0, 0, 0,
1625, 0, 1625, 1359, 1359, 1357, 1359, 2862, 2862, 1625,
0, 0, 2261, 2261, 1625, 1625, 0, 1625, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1360, 0, 0, 0, 0, 0, 1356, 0, 0,
1354, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1359, 0,
1359, 0, 0, 1625, 0, 0, 1361, 0, 1357, 0,
0, 0, 0, 1354, 0, 0, 0, 0, 0, 0,
0, 0, 1357, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1357, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1359, 0, 1360, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1359, 0, 0,
0, 0, 0, 1625, 0, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 0, 0, 0, 1357, 0,
0, 0, 1359, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1357, 0,
1359, 1354, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1356, 1354, 0, 0, 0, 0, 0, 0, 0,
2862, 2261, 0, 1357, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2862, 2862, 1625, 0,
0, 0, 0, 0, 1356, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1625, 0, 0, 0, 1357,
0, 0, 0, 1359, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1359, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1359, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1354, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1354, 0, 0, 0, 0, 0, 0,
0, 0, 1356, 1359, 0, 1354, 0, 0, 0, 0,
0, 0, 2862, 1356, 0, 0, 0, 0, 0, 0,
0, 0, 1625, 1359, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1359, 1354,
0, 0, 0, 0, 0, 1360, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1625, 1359, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 1360, 1360, 0, 1360, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1356, 0, 0, 0,
0, 0, 0, 1625, 0, 0, 0, 0, 0, 0,
1361, 1361, 0, 1361, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1356, 0, 0, 0, 0, 0,
1360, 0, 1360, 0, 0, 0, 1356, 0, 0, 0,
0, 0, 1625, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1361, 0, 1361, 0, 0,
0, 0, 0, 0, 1354, 0, 0, 0, 0, 0,
1356, 0, 0, 0, 0, 1360, 1625, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1357, 0, 0, 0, 0, 1360,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 1359, 0, 0, 0, 0,
0, 0, 0, 0, 1360, 0, 0, 1357, 0, 0,
0, 0, 0, 0, 1361, 0, 0, 0, 0, 0,
0, 0, 1360, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1361,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1354, 0, 0, 0, 0, 0, 0, 1361, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1360, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1356, 0, 0, 0, 1360,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360, 0, 0, 0, 0, 1357, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 0, 1357, 0, 0, 0,
0, 0, 0, 0, 1361, 1354, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1361, 0, 0, 0, 1359,
0, 0, 0, 0, 0, 0, 1354, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1360, 0, 0, 0, 0,
0, 0, 1359, 0, 0, 0, 1354, 0, 0, 0,
0, 0, 0, 0, 0, 1360, 0, 0, 0, 0,
0, 1356, 0, 0, 0, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360, 0, 0, 1354, 0, 0, 0, 1354, 1354, 1357,
1361, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1361, 1360, 1357, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1357,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1356, 0, 0, 0,
1359, 1361, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1359, 0, 0, 0, 0, 0, 1356, 0, 0,
0, 0, 0, 1357, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1356, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1356, 0, 0, 0, 1356, 1356,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1359, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1360, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1359, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1359, 0, 0, 0, 0, 0,
0, 0, 1361, 0, 0, 0, 0, 0, 1357, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1359, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1357, 0, 0, 0, 0, 0,
0, 1360, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1360, 0, 1361, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1359, 0, 0, 0, 0, 0, 1361,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1357,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1360, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1360, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1357, 0, 1359,
0, 1357, 1357, 0, 0, 0, 0, 1361, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1361, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1359, 0, 1360, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1359, 0, 0, 0, 0,
0, 0, 0, 0, 1360, 0, 0, 0, 0, 0,
0, 1361, 0, 0, 0, 0, 1360, 0, 0, 0,
0, 0, 0, 0, 0, 1359, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1361,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1361, 0, 0, 0, 0, 0, 0, 0, 0,
1360, 0, 1359, 0, 0, 0, 1359, 1359, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1361, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1360, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1360, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1361, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1360, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1360, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1361, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1360, 0, 0,
0, 0, 1361, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1361, 0, 1360, 0, 0, 0, 1360, 1360,
0, 0, 0, 0, 0, 712, 981, 550, 982, 983,
984, 597, 985, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 2353, 209, 210, 211, 0, 1361,
0, 0, 986, 1361, 1361, 212, 213, 0, 214, 215,
713, 216, 217, 218, 219, 987, 714, 988, 989, 0,
223, 224, 225, 226, 227, 990, 991, 228, 229, 992,
993, 232, 0, 233, 234, 235, 236, 994, 0, 995,
0, 238, 239, 240, 241, 716, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 717, 250, 251, 996,
997, 998, 999, 1000, 1001, 1002, 252, 253, 254, 255,
256, 257, 1003, 1004, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 2354, 0, 270,
271, 1005, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 1006, 285, 286, 287,
1007, 1008, 289, 0, 290, 1009, 292, 0, 293, 0,
294, 719, 0, 720, 295, 296, 297, 0, 298, 1010,
0, 300, 0, 301, 302, 303, 304, 305, 721, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 722, 316, 317, 318, 319, 320, 1011, 1012, 0,
1013, 0, 324, 723, 724, 325, 725, 326, 327, 328,
329, 330, 331, 332, 0, 333, 1014, 726, 335, 727,
0, 336, 337, 338, 1015, 1016, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 1017, 728,
1018, 353, 354, 355, 1019, 356, 357, 729, 358, 1020,
1021, 360, 1022, 362, 363, 364, 0, 365, 0, 0,
1023, 367, 368, 0, 0, 369, 730, 731, 732, 1024,
371, 372, 373, 374, 375, 376, 377, 0, 378, 1025,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 1026, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 733, 409, 410, 1027, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
1028, 425, 426, 427, 428, 734, 429, 1029, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1030, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 1031, 1032, 0, 0, 453, 1033, 455, 1034,
1035, 457, 458, 459, 460, 461, 462, 463, 0, 1036,
464, 465, 466, 467, 468, 1037, 0, 469, 470, 471,
472, 473, 474, 1038, 2355, 476, 735, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495,
496, 497, 0, 0, 0, 0, 0, 0, 0, 1047,
1048, 2356, 0, 0, 0, 0, 0, 0, 1050, 2357,
712, 981, 550, 982, 983, 984, 597, 985, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 986, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 219,
987, 714, 988, 989, 0, 223, 224, 225, 226, 227,
990, 991, 228, 229, 992, 993, 232, 0, 233, 234,
235, 236, 994, 0, 995, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001,
1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290,
1009, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 1010, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015,
1016, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019,
356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363,
364, 0, 365, 0, 0, 1023, 367, 368, 0, 0,
369, 730, 731, 732, 1024, 371, 372, 373, 374, 375,
376, 377, 0, 378, 1025, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1026, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
1027, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 1028, 425, 426, 427, 428,
734, 429, 1029, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 1030, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0,
0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460,
461, 462, 463, 0, 1036, 464, 465, 466, 467, 468,
1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042,
1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0,
0, 0, 0, 0, 1047, 1048, 199, 0, 0, 0,
0, 0, 0, 1050, 2263, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 3398, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, -1406, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, -1406, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, -1406, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, -1406, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, -1406, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
-1406, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, -1406, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
1330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1127, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 0,
1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234,
235, 236, 0, 0, 715, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 0, 0, 0, 718, 0, 0,
0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 0, 285, 286, 287, 0, 0, 289, 0, 290,
1338, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 0, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 1879, 309, 310,
311, 312, 313, 314, 0, 315, 722, 1880, 317, 318,
319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 0, 726, 335, 727, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0,
356, 357, 729, 358, 0, 0, 360, 1344, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
1881, 730, 731, 732, 0, 371, 372, 373, 374, 375,
376, 377, 0, 378, 0, 380, 0, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1345, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
0, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 1882, 427, 428,
734, 429, 1347, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 0, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0,
0, 453, 0, 455, 0, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 0, 1350, 1883,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 0, 199, 0, 0, 0,
0, 0, 0, 0, 495, 496, 497, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 1884, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
1330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 0,
1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234,
235, 236, 0, 0, 715, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 0, 0, 0, 718, 0, 0,
0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 0, 285, 286, 287, 0, 0, 289, 0, 290,
1338, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 0, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 1879, 309, 310,
311, 312, 313, 314, 0, 315, 722, 1880, 317, 318,
319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 0, 726, 335, 727, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0,
356, 357, 729, 358, 0, 0, 360, 1344, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
1881, 730, 731, 732, 0, 371, 372, 373, 374, 375,
376, 377, 0, 378, 0, 380, 0, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1345, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
0, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 1882, 427, 428,
734, 429, 1347, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 0, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0,
0, 453, 0, 455, 0, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 0, 1350, 1883,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 0, 712, 981, 550, 982,
983, 984, 597, 985, 495, 496, 497, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 986, 2747, 0, 212, 213, 0, 214,
215, 713, 216, 217, 218, 219, 987, 714, 988, 989,
2273, 223, 224, 225, 226, 227, 990, 991, 228, 229,
992, 993, 232, 0, 233, 234, 235, 236, 994, 0,
995, 0, 238, 239, 240, 241, 716, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 717, 250, 251,
996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254,
255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 1005, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 1006, 285, 286,
287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293,
0, 294, 719, 2274, 720, 295, 296, 297, 0, 298,
1010, 0, 300, 0, 301, 302, 303, 304, 305, 721,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012,
0, 1013, 0, 324, 723, 724, 325, 725, 326, 327,
328, 329, 330, 331, 332, 2275, 333, 1014, 726, 335,
727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 1017,
728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358,
1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0,
0, 1023, 367, 368, 0, 0, 369, 730, 731, 732,
1024, 371, 372, 373, 374, 375, 376, 377, 0, 378,
1025, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 1026, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 733, 409, 410, 1027, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 1030, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 1031, 1032, 0, 2276, 453, 1033, 455,
1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0,
1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470,
471, 472, 473, 474, 1038, 0, 476, 735, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050,
712, 981, 550, 982, 983, 984, 597, 985, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 986, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 219,
987, 714, 988, 989, 0, 223, 224, 225, 226, 227,
990, 991, 228, 229, 992, 993, 232, 0, 233, 234,
235, 236, 994, 0, 995, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001,
1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290,
1009, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 1010, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015,
1016, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019,
356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363,
364, 0, 365, 0, 0, 1023, 367, 368, 0, 0,
369, 730, 731, 732, 1024, 371, 372, 373, 374, 375,
376, 377, 0, 378, 1025, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1026, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
1027, 412, 413, 414, 415, 416, 417, 418, 419, 37,
420, 421, 422, 423, 424, 1028, 425, 426, 427, 428,
734, 429, 1029, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 1030, 0, 443, 444, 41,
445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0,
0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460,
461, 462, 463, 0, 1036, 464, 465, 466, 467, 468,
1037, 0, 469, 470, 471, 472, 473, 920, 1038, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 46,
481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042,
1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0,
0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0,
0, 0, 0, 1050, 712, 981, 550, 982, 983, 984,
597, 985, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 986, 0, 0, 212, 213, 0, 214, 215, 713,
216, 217, 218, 219, 987, 714, 988, 989, 0, 223,
224, 225, 226, 227, 990, 991, 228, 229, 992, 993,
232, 0, 233, 234, 235, 236, 994, 0, 995, 0,
238, 239, 240, 241, 716, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 717, 250, 251, 996, 997,
998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256,
257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
1005, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007,
1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294,
719, 0, 720, 295, 296, 297, 0, 298, 1010, 0,
300, 0, 301, 302, 303, 304, 305, 721, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013,
0, 324, 723, 724, 325, 725, 326, 327, 328, 329,
330, 331, 332, 0, 333, 1014, 726, 335, 727, 0,
336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018,
353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021,
360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023,
367, 368, 0, 0, 369, 730, 731, 732, 1024, 371,
372, 373, 374, 375, 376, 377, 0, 378, 1025, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 1026, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 733, 409, 410, 1027, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 1028,
425, 426, 427, 428, 734, 429, 1029, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 1030,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035,
457, 458, 459, 460, 461, 462, 463, 0, 1036, 464,
465, 466, 467, 468, 1037, 0, 469, 470, 471, 472,
473, 474, 1038, 0, 476, 735, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496,
497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048,
0, 0, 0, 0, 0, 1531, 2221, 1050, 712, 981,
550, 982, 983, 984, 597, 985, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 986, 0, 0, 212, 213,
0, 214, 215, 713, 216, 217, 218, 219, 987, 714,
988, 989, 0, 223, 224, 225, 226, 227, 990, 991,
228, 229, 992, 993, 232, 0, 233, 234, 235, 236,
994, 0, 995, 0, 238, 239, 240, 241, 716, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 717,
250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252,
253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 1005, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 1006,
285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292,
0, 293, 0, 294, 719, 0, 720, 295, 296, 297,
0, 298, 1010, 0, 300, 0, 301, 302, 303, 304,
305, 721, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 722, 316, 317, 318, 319, 320,
1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725,
326, 327, 328, 329, 330, 331, 332, 0, 333, 1014,
726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357,
729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0,
365, 0, 0, 1023, 367, 368, 0, 0, 369, 730,
731, 732, 1024, 371, 372, 373, 374, 375, 376, 377,
0, 378, 1025, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 1026, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 733, 409, 410, 1027, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 1028, 425, 426, 427, 428, 734, 429,
1029, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 1030, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453,
1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462,
463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0,
469, 470, 471, 472, 473, 474, 1038, 0, 476, 735,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044,
1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0,
0, 0, 1047, 1048, 1049, 0, 0, 0, 0, 0,
0, 1050, 712, 981, 550, 982, 983, 984, 597, 985,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 986,
0, 0, 212, 213, 0, 214, 215, 713, 216, 217,
218, 219, 987, 714, 988, 989, 0, 223, 224, 225,
226, 227, 990, 991, 228, 229, 992, 993, 232, 0,
233, 234, 235, 236, 994, 0, 995, 0, 238, 239,
240, 241, 716, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 717, 250, 251, 996, 997, 998, 999,
1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003,
1004, 260, 1119, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 1005, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289,
0, 290, 1009, 292, 0, 293, 0, 294, 719, 0,
720, 295, 296, 297, 0, 298, 1010, 0, 300, 0,
301, 302, 303, 304, 305, 721, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 722, 316,
317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324,
723, 724, 325, 725, 326, 327, 328, 329, 330, 331,
332, 0, 333, 1014, 726, 335, 727, 0, 336, 337,
338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354,
355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022,
362, 363, 364, 0, 365, 0, 0, 1023, 367, 368,
0, 0, 369, 730, 731, 732, 1024, 371, 372, 373,
374, 375, 376, 377, 0, 378, 1025, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
1026, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 733,
409, 410, 1027, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 1028, 425, 426,
427, 428, 734, 429, 1029, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 1030, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 1031,
1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458,
459, 460, 461, 462, 463, 0, 1036, 464, 465, 466,
467, 468, 1037, 0, 469, 470, 471, 472, 473, 474,
1038, 0, 476, 735, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040,
1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0,
0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0,
0, 0, 0, 0, 0, 1050, 712, 981, 550, 982,
983, 984, 597, 985, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 1774, 209, 210, 211, 0,
0, 0, 0, 986, 0, 0, 212, 213, 0, 214,
215, 713, 216, 217, 218, 219, 987, 714, 988, 989,
0, 223, 224, 225, 226, 227, 990, 991, 228, 229,
992, 993, 232, 0, 233, 234, 235, 236, 994, 0,
995, 0, 238, 239, 240, 241, 716, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 717, 250, 251,
996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254,
255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 1005, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 1006, 285, 286,
287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293,
0, 294, 719, 0, 720, 295, 296, 297, 0, 298,
1010, 0, 300, 0, 301, 302, 303, 304, 305, 721,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012,
0, 1013, 0, 324, 723, 724, 325, 725, 326, 327,
328, 329, 330, 331, 332, 0, 333, 1014, 726, 335,
727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 1017,
728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358,
1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0,
0, 1023, 367, 368, 0, 0, 369, 730, 731, 732,
1024, 371, 372, 373, 374, 375, 376, 377, 0, 378,
1025, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 1026, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 733, 409, 410, 1027, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 1030, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455,
1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0,
1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470,
471, 472, 473, 474, 1038, 0, 476, 735, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050,
712, 981, 550, 982, 983, 984, 597, 985, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 986, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 219,
987, 714, 988, 989, 0, 223, 224, 225, 226, 227,
990, 991, 228, 229, 992, 993, 232, 0, 233, 234,
235, 236, 994, 0, 995, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001,
1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290,
1009, 292, 0, 293, 0, 294, 719, 2274, 720, 295,
296, 297, 0, 298, 1010, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015,
1016, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1017, 728, 1018, 353, 354, 355, 1019,
356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363,
364, 0, 365, 0, 0, 1023, 367, 368, 0, 0,
369, 730, 731, 732, 1024, 371, 372, 373, 374, 375,
376, 377, 0, 378, 1025, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1026, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
1027, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 1028, 425, 426, 427, 428,
734, 429, 1029, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 1030, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0,
0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460,
461, 462, 463, 0, 1036, 464, 465, 466, 467, 468,
1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042,
1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0,
0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0,
0, 0, 0, 1050, 712, 981, 550, 982, 983, 984,
597, 985, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 986, 0, 0, 212, 213, 0, 214, 215, 713,
216, 217, 218, 219, 987, 714, 988, 989, 0, 223,
224, 225, 226, 227, 990, 991, 228, 229, 992, 993,
232, 0, 233, 234, 235, 236, 994, 0, 995, 0,
238, 239, 240, 241, 716, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 717, 250, 251, 996, 997,
998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256,
257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
1005, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007,
1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294,
719, 0, 720, 295, 296, 297, 0, 298, 1010, 0,
300, 0, 301, 302, 303, 304, 305, 721, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013,
0, 324, 723, 724, 325, 725, 326, 327, 328, 329,
330, 331, 332, 0, 333, 1014, 726, 335, 727, 0,
336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018,
353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021,
360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023,
367, 368, 0, 0, 369, 730, 731, 732, 1024, 371,
372, 373, 374, 375, 376, 377, 0, 378, 1025, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 1026, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 733, 409, 410, 1027, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 1028,
425, 426, 427, 428, 734, 429, 1029, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 1030,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035,
457, 458, 459, 460, 461, 462, 463, 0, 1036, 464,
465, 466, 467, 468, 1037, 0, 469, 470, 471, 472,
473, 474, 1038, 3431, 476, 735, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496,
497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048,
0, 0, 0, 0, 0, 0, 0, 1050, 712, 981,
550, 982, 983, 984, 597, 985, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 986, 0, 0, 212, 213,
0, 214, 215, 713, 216, 217, 218, 219, 987, 714,
988, 989, 0, 223, 224, 225, 226, 227, 990, 991,
228, 229, 992, 993, 232, 0, 233, 234, 235, 236,
994, 0, 995, 0, 238, 239, 240, 241, 716, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 717,
250, 251, 996, 997, 998, 999, 1000, 1001, 1002, 252,
253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 1005, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 1006,
285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292,
0, 293, 0, 294, 719, 0, 720, 295, 296, 297,
0, 298, 1010, 0, 300, 0, 301, 302, 303, 304,
305, 721, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 722, 316, 317, 318, 319, 320,
1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725,
326, 327, 328, 329, 330, 331, 332, 0, 333, 1014,
726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357,
729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0,
365, 0, 0, 1023, 367, 368, 0, 0, 369, 730,
731, 732, 1024, 371, 372, 373, 374, 375, 376, 377,
0, 378, 1025, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 1026, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 733, 409, 410, 1027, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 1028, 425, 426, 427, 428, 734, 429,
1029, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 1030, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453,
1033, 455, 1034, 1035, 457, 458, 459, 460, 461, 462,
463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0,
469, 470, 471, 472, 473, 474, 1038, 0, 476, 735,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044,
1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0,
0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0,
0, 1050, 712, 981, 550, 982, 983, 984, 597, 985,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 986,
0, 0, 212, 213, 0, 214, 215, 713, 216, 217,
218, 219, 987, 714, 988, 989, 0, 223, 224, 225,
226, 227, 990, 991, 228, 229, 992, 993, 232, 0,
233, 234, 235, 236, 994, 0, 995, 0, 238, 239,
240, 241, 716, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 717, 250, 3441, 996, 997, 998, 999,
1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003,
1004, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 1005, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289,
0, 290, 1009, 292, 0, 293, 0, 294, 719, 0,
720, 295, 296, 297, 0, 298, 1010, 0, 300, 0,
301, 302, 303, 304, 305, 721, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 722, 316,
317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324,
723, 724, 325, 725, 326, 327, 328, 329, 330, 331,
332, 0, 333, 1014, 726, 335, 727, 0, 336, 337,
338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354,
355, 1019, 356, 357, 729, 358, 1020, 1021, 360, 1022,
362, 363, 364, 0, 365, 0, 0, 1023, 367, 368,
0, 0, 369, 730, 731, 732, 1024, 371, 372, 373,
374, 375, 376, 377, 0, 378, 1025, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
1026, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 733,
409, 410, 1027, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 1028, 425, 426,
427, 428, 734, 429, 1029, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 1030, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 1031,
1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458,
459, 460, 461, 462, 463, 0, 1036, 464, 465, 466,
467, 468, 1037, 0, 469, 470, 471, 472, 473, 474,
1038, 0, 476, 735, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040,
1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0,
0, 0, 0, 0, 0, 0, 1047, 1048, 0, 0,
0, 0, 0, 0, 0, 1050, 712, 981, 550, 982,
983, 984, 597, 985, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 986, 0, 0, 212, 213, 0, 214,
215, 713, 216, 217, 218, 219, 987, 714, 988, 989,
0, 223, 224, 225, 226, 227, 990, 991, 228, 229,
992, 993, 232, 0, 233, 234, 235, 236, 994, 0,
995, 0, 238, 239, 240, 241, 716, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 717, 250, 251,
996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254,
255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 1005, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 1006, 285, 286,
287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293,
0, 294, 719, 0, 720, 295, 296, 297, 0, 298,
1010, 0, 300, 0, 301, 302, 303, 304, 305, 721,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012,
0, 1013, 0, 324, 723, 724, 325, 725, 326, 327,
328, 329, 330, 331, 332, 0, 333, 1014, 726, 335,
727, 0, 336, 337, 338, 1015, 1016, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 1017,
728, 1018, 353, 354, 355, 1019, 356, 357, 729, 358,
1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0,
0, 1023, 367, 368, 0, 0, 369, 730, 731, 732,
1024, 371, 372, 373, 374, 375, 376, 377, 0, 378,
1025, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 1026, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 733, 409, 410, 1027, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 1028, 425, 426, 427, 428, 734, 429, 1029, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 1030, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455,
1034, 1035, 457, 458, 459, 460, 461, 462, 463, 0,
1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470,
471, 472, 473, 474, 1038, 0, 476, 735, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 3711, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
1047, 1048, 0, 0, 0, 0, 0, 0, 0, 1050,
712, 981, 550, 982, 983, 984, 597, 985, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 986, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 219,
987, 714, 988, 989, 0, 223, 224, 225, 226, 227,
990, 991, 228, 229, 992, 993, 232, 0, 233, 234,
235, 236, 994, 0, 995, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001,
1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290,
1009, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 1010, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015,
1016, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1017, 728, 1018, 353, 3720, 355, 1019,
356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363,
364, 0, 365, 0, 0, 1023, 367, 368, 0, 0,
369, 730, 731, 732, 1024, 371, 372, 373, 374, 375,
376, 377, 0, 378, 1025, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1026, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
1027, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 1028, 425, 426, 427, 428,
734, 429, 1029, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 1030, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0,
0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460,
461, 462, 463, 0, 1036, 464, 465, 466, 467, 468,
1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042,
1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0,
0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0,
0, 0, 0, 1050, 712, 981, 550, 982, 983, 984,
597, 985, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 986, 0, 0, 212, 213, 0, 214, 215, 713,
216, 217, 218, 4208, 987, 714, 988, 989, 0, 223,
224, 225, 226, 227, 990, 991, 228, 229, 992, 993,
232, 0, 233, 234, 235, 236, 994, 0, 995, 0,
238, 239, 240, 241, 716, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 717, 250, 4209, 996, 997,
998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256,
257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
1005, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007,
1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294,
719, 0, 720, 295, 296, 297, 0, 298, 1010, 0,
300, 0, 301, 302, 303, 304, 305, 721, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013,
0, 324, 723, 724, 325, 725, 326, 327, 328, 329,
330, 331, 332, 0, 333, 1014, 726, 335, 727, 0,
336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018,
353, 354, 355, 1019, 356, 357, 729, 358, 1020, 1021,
360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023,
367, 368, 0, 0, 369, 730, 731, 732, 1024, 371,
372, 373, 374, 375, 376, 377, 0, 378, 1025, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 1026, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 733, 409, 410, 1027, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 1028,
425, 426, 427, 428, 734, 429, 1029, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 1030,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035,
457, 458, 459, 460, 4210, 462, 463, 0, 1036, 464,
465, 466, 467, 468, 1037, 0, 469, 470, 471, 472,
473, 474, 1038, 0, 476, 735, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496,
497, 0, 0, 0, 0, 0, 0, 0, 1047, 1048,
0, 0, 0, 0, 0, 0, 0, 1050, 712, 981,
550, 982, 983, 984, 597, 985, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 986, 0, 0, 212, 213,
0, 214, 215, 713, 216, 217, 218, 219, 987, 714,
988, 989, 0, 223, 224, 225, 226, 227, 990, 991,
228, 229, 992, 993, 232, 0, 233, 234, 235, 236,
994, 0, 995, 0, 238, 239, 240, 241, 716, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 717,
250, 4209, 996, 997, 998, 999, 1000, 1001, 1002, 252,
253, 254, 255, 256, 257, 1003, 1004, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 1005, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 1006,
285, 286, 287, 1007, 1008, 289, 0, 290, 1009, 292,
0, 293, 0, 294, 719, 0, 720, 295, 296, 297,
0, 298, 1010, 0, 300, 0, 301, 302, 303, 304,
305, 721, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 722, 316, 317, 318, 319, 320,
1011, 1012, 0, 1013, 0, 324, 723, 724, 325, 725,
326, 327, 328, 329, 330, 331, 332, 0, 333, 1014,
726, 335, 727, 0, 336, 337, 338, 1015, 1016, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 1017, 728, 1018, 353, 354, 355, 1019, 356, 357,
729, 358, 1020, 1021, 360, 1022, 362, 363, 364, 0,
365, 0, 0, 1023, 367, 368, 0, 0, 369, 730,
731, 732, 1024, 371, 372, 373, 374, 375, 376, 377,
0, 378, 1025, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 1026, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 733, 409, 410, 1027, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 1028, 425, 426, 427, 428, 734, 429,
1029, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 1030, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 1031, 1032, 0, 0, 453,
1033, 455, 1034, 1035, 457, 458, 459, 460, 4210, 462,
463, 0, 1036, 464, 465, 466, 467, 468, 1037, 0,
469, 470, 471, 472, 473, 474, 1038, 0, 476, 735,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044,
1045, 1046, 495, 496, 497, 0, 0, 0, 0, 0,
0, 0, 1047, 1048, 0, 0, 0, 0, 0, 0,
0, 1050, 712, 981, 550, 982, 983, 984, 597, 985,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 986,
0, 0, 212, 213, 0, 214, 215, 713, 216, 217,
218, 219, 987, 714, 988, 989, 0, 223, 224, 225,
226, 227, 990, 991, 228, 229, 992, 993, 232, 0,
233, 234, 235, 236, 994, 0, 995, 0, 238, 239,
240, 241, 716, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 717, 250, 251, 996, 997, 998, 999,
1000, 1001, 1002, 252, 253, 254, 255, 256, 257, 1003,
1004, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 1005, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 1006, 285, 286, 287, 1007, 1008, 289,
0, 290, 1009, 292, 0, 293, 0, 294, 719, 0,
720, 295, 296, 297, 0, 298, 1010, 0, 300, 0,
301, 302, 303, 304, 305, 721, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 722, 316,
317, 318, 319, 320, 1011, 1012, 0, 1013, 0, 324,
723, 724, 325, 725, 326, 327, 328, 329, 330, 331,
332, 0, 333, 1014, 726, 335, 727, 0, 336, 337,
338, 1015, 1016, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 1017, 728, 1018, 353, 354,
355, 0, 356, 357, 729, 358, 1020, 1021, 360, 1022,
362, 363, 364, 0, 365, 0, 0, 1023, 367, 368,
0, 0, 369, 730, 731, 732, 1024, 371, 372, 373,
374, 375, 376, 377, 0, 378, 1025, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
1026, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 733,
409, 410, 1027, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 1028, 425, 426,
427, 428, 734, 429, 1029, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 1030, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 1031,
1032, 0, 0, 453, 1033, 455, 1034, 1035, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 1037, 0, 469, 470, 471, 472, 473, 474,
1038, 0, 476, 735, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 1039, 1040,
1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497, 0,
0, 0, 0, 0, 0, 0, 2256, 2257, 0, 0,
0, 0, 0, 0, 0, 1050, 712, 981, 550, 982,
983, 984, 597, 985, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 986, 0, 0, 212, 213, 0, 214,
215, 713, 216, 217, 218, -2163, 987, 714, 988, 989,
0, 223, 224, 225, 226, 227, 990, 991, 228, 229,
992, 993, 232, 0, 233, 234, 235, 236, 994, 0,
995, 0, 238, 239, 240, 241, 716, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 717, 250, 4209,
996, 997, 998, 999, 1000, 1001, 1002, 252, 253, 254,
255, 256, 257, 1003, 1004, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 1005, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 1006, 285, 286,
287, 1007, 1008, 289, 0, 290, 1009, 292, 0, 293,
0, 294, 719, 0, 720, 295, 296, 297, 0, 298,
1010, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 722, 316, 317, 318, 319, 320, 1011, 1012,
0, 1013, 0, 324, 723, 724, 325, 725, 326, 327,
328, 329, 330, 331, 332, 0, 333, 1014, 726, 335,
0, 0, 336, 337, 338, 1015, 1016, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 1017,
728, 1018, 353, 354, 355, 0, 356, 357, 729, 358,
1020, 1021, 360, 1022, 362, 363, 364, 0, 365, 0,
0, 1023, 367, 368, 0, 0, 369, 730, 731, 732,
1024, 371, 372, 373, 374, 375, 376, 377, 0, 378,
1025, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 1026, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 733, 409, 410, 1027, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 1028, 425, 426, 427, 428, 0, 429, 1029, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 1030, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 1031, 1032, 0, 0, 453, 1033, 455,
1034, 1035, 457, 458, 459, 460, 4210, 462, 463, 0,
1036, 464, 465, 466, 467, 468, 1037, 0, 469, 470,
471, 472, 473, 474, 1038, 0, 476, 735, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
1047, 1048, 0, 0, 712, 981, 550, 982, 983, 1050,
597, 985, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 986, 0, 0, 212, 213, 0, 214, 215, 713,
216, 217, 218, 219, 987, 714, 988, 989, 0, 223,
224, 225, 226, 227, 990, 991, 228, 229, 992, 993,
232, 0, 233, 234, 235, 236, 994, 0, 995, 0,
238, 239, 240, 241, 716, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 717, 250, 251, 996, 997,
998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256,
257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
1005, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007,
1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294,
719, 0, 720, 295, 296, 297, 0, 298, 1010, 0,
300, 0, 301, 302, 303, 304, 305, 721, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013,
0, 324, 723, 724, 325, 725, 326, 327, 328, 329,
330, 331, 332, 0, 333, 1014, 726, 335, 727, 0,
336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018,
353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021,
360, 1022, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 730, 731, 732, 1024, 371,
372, 373, 374, 375, 376, 377, 0, 378, 1025, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 1026, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 733, 409, 410, 1027, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 1028,
425, 426, 427, 428, 734, 429, 1029, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 1030,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 1037, 0, 469, 470, 471, 472,
473, 474, 1038, 0, 476, 735, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496,
497, 0, 0, 0, 0, 0, 0, 712, 981, 550,
982, 983, 0, 597, 985, 0, 0, 1050, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 986, 0, 0, 212, 213, 0,
214, 215, 713, 216, 217, 218, 219, 987, 714, 988,
989, 0, 3354, 224, 225, 226, 227, 990, 991, 228,
229, 992, 993, 232, 0, 233, 234, 235, 236, 994,
0, 995, 0, 238, 239, 240, 241, 716, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 717, 250,
251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253,
254, 255, 256, 257, 1003, 1004, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 1005, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 1006, 285,
286, 287, 1007, 1008, 289, 0, 290, 1009, 292, 0,
293, 0, 294, 719, 0, 720, 295, 296, 297, 0,
298, 1010, 0, 300, 0, 301, 302, 303, 304, 305,
721, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 722, 316, 317, 318, 319, 320, 1011,
1012, 0, 1013, 0, 324, 723, 724, 325, 725, 326,
327, 328, 329, 330, 331, 332, 0, 333, 1014, 726,
335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1017, 728, 1018, 353, 354, 355, 0, 356, 357, 729,
358, 1020, 1021, 360, 1022, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 730, 731,
732, 1024, 371, 372, 373, 374, 375, 376, 377, 0,
378, 1025, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 1026, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 733, 409, 410, 1027, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 1028, 425, 426, 427, 428, 734, 429, 1029,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 1030, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 1031, 1032, 0, 0, 453, 1033,
455, 1034, 1035, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 1037, 0, 469,
470, 471, 472, 473, 474, 1038, 0, 476, 735, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
1046, 495, 496, 497, 0, 0, 0, 0, 0, 0,
712, 981, 550, 982, 983, 984, 597, 985, 0, 0,
1050, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 986, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 0,
987, 714, 988, 989, 0, 223, 224, 225, 226, 227,
990, 991, 228, 229, 992, 993, 232, 0, 233, 234,
235, 236, 994, 0, 995, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001,
1002, 252, 253, 254, 255, 256, 257, 1003, 1004, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 0, 0, 280, 281, 282,
283, 1006, 285, 286, 287, 1007, 1008, 289, 0, 290,
1009, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 1010, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 1011, 1012, 0, 1013, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 1014, 726, 335, 0, 0, 336, 337, 338, 1015,
1016, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1017, 728, 1018, 353, 354, 355, 0,
356, 357, 729, 358, 1020, 1021, 360, 1022, 362, 363,
364, 0, 365, 0, 0, 1023, 367, 368, 0, 0,
369, 730, 731, 732, 1024, 371, 372, 373, 374, 375,
376, 377, 0, 378, 1025, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1026, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
1027, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 1028, 425, 426, 427, 428,
0, 429, 1029, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 1030, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1031, 1032, 0,
0, 453, 1033, 455, 1034, 1035, 457, 458, 459, 460,
461, 462, 463, 0, 1036, 464, 465, 466, 467, 468,
1037, 0, 469, 470, 471, 472, 473, 474, 1038, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042,
1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0,
0, 0, 0, 0, 1047, 1048, 0, 0, 0, 0,
0, 0, 0, 1050, 712, 981, 550, 982, 983, 984,
597, 985, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 986, 0, 0, 212, 213, 0, 214, 215, 713,
216, 217, 218, 0, 987, 714, 988, 989, 0, 223,
224, 225, 226, 227, 990, 991, 228, 229, 992, 993,
232, 0, 233, 234, 235, 236, 994, 0, 995, 0,
238, 239, 240, 241, 716, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 717, 250, 251, 996, 997,
998, 999, 1000, 1001, 1002, 252, 253, 254, 255, 256,
257, 1003, 1004, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
1005, 273, 274, 0, 275, 276, 277, 0, 278, 0,
0, 280, 281, 282, 283, 1006, 285, 286, 287, 1007,
1008, 289, 0, 290, 1009, 292, 0, 293, 0, 294,
719, 0, 720, 295, 296, 297, 0, 298, 1010, 0,
300, 0, 301, 302, 303, 304, 305, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
722, 316, 317, 318, 319, 320, 1011, 1012, 0, 1013,
0, 324, 723, 724, 325, 725, 326, 327, 328, 329,
330, 331, 332, 0, 333, 1014, 726, 335, 0, 0,
336, 337, 338, 1015, 1016, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 1017, 728, 1018,
353, 354, 355, 0, 356, 357, 729, 358, 1020, 1021,
360, 1022, 362, 363, 364, 0, 365, 0, 0, 1023,
367, 368, 0, 0, 369, 730, 731, 732, 1024, 371,
372, 373, 374, 375, 376, 377, 0, 378, 1025, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 1026, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 733, 409, 410, 1027, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 1028,
425, 426, 427, 428, 0, 429, 1029, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 1030,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 1031, 1032, 0, 0, 453, 1033, 455, 1034, 1035,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 1037, 0, 469, 470, 471, 472,
473, 474, 1038, 0, 476, 735, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496,
497, 0, 0, 0, 0, 0, 0, 712, 2256, 2257,
0, 0, 0, 0, 0, 0, 0, 1050, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 713, 216, 217, 218, 219, 220, 714, 221,
222, 0, 223, 224, 225, 226, 227, 0, 991, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 994,
0, 995, 0, 238, 239, 240, 241, 716, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 717, 250,
251, 996, 997, 998, 999, 1000, 1001, 1002, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 1007, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 719, 0, 720, 295, 296, 297, 0,
298, 1010, 0, 300, 0, 301, 302, 303, 304, 305,
721, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 722, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 723, 724, 325, 725, 326,
327, 328, 329, 330, 331, 332, 0, 333, 1014, 726,
335, 727, 0, 336, 337, 338, 1015, 1016, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 728, 352, 353, 354, 355, 0, 356, 357, 729,
358, 0, 1021, 360, 361, 362, 363, 364, 0, 365,
0, 677, 366, 367, 368, 0, 0, 369, 730, 731,
732, 1024, 371, 372, 373, 374, 375, 376, 377, 0,
378, 1025, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 733, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 37, 420, 421, 422,
423, 424, 1028, 425, 426, 427, 428, 734, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 1030, 0, 443, 444, 41, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 1033,
455, 1034, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 1037, 0, 469,
470, 471, 472, 473, 920, 475, 0, 476, 735, 477,
478, 479, 0, 0, 480, 0, 46, 481, 482, 483,
484, 485, 486, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
1046, 495, 496, 497, 0, 0, 0, 0, 0, 0,
712, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 219,
220, 714, 221, 222, 0, 223, 224, 225, 226, 227,
0, 991, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 994, 0, 995, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 996, 997, 998, 999, 1000, 1001,
1002, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 1007, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 1010, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 1014, 726, 335, 727, 0, 336, 337, 338, 1015,
1016, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 728, 352, 353, 354, 355, 0,
356, 357, 729, 358, 0, 1021, 360, 361, 362, 363,
364, 0, 365, 0, 677, 366, 367, 368, 0, 0,
369, 730, 731, 732, 1024, 371, 372, 373, 374, 375,
376, 377, 0, 378, 1025, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 1028, 425, 426, 427, 428,
734, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 1030, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 1033, 455, 1034, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
1037, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 1039, 1040, 1041, 1042,
1043, 1044, 1045, 1046, 495, 496, 497, 0, 0, 0,
0, 0, 0, 712, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2930, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 713, 216,
217, 218, 219, 220, 714, 221, 222, 0, 223, 224,
225, 226, 227, 0, 991, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 994, 0, 995, 0, 238,
239, 240, 241, 716, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 717, 250, 251, 996, 997, 998,
999, 1000, 1001, 1002, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 1007, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 719,
0, 720, 295, 296, 297, 0, 298, 1010, 0, 300,
0, 301, 302, 303, 304, 305, 721, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 722,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 723, 724, 325, 725, 326, 327, 328, 329, 330,
331, 332, 0, 333, 1014, 726, 335, 727, 0, 336,
337, 338, 1015, 1016, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 728, 352, 353,
354, 355, 0, 356, 357, 729, 358, 0, 1021, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 730, 731, 732, 1024, 371, 372,
373, 374, 375, 376, 377, 0, 378, 1025, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
733, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 1028, 425,
426, 427, 428, 734, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 1030, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 1033, 455, 1034, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 1037, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 735, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 1039,
1040, 1041, 1042, 1043, 1044, 1045, 1046, 495, 496, 497,
0, 0, 0, 0, 0, 0, 712, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3462, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 713, 216, 217, 218, 219, 220, 714, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
715, 0, 238, 239, 240, 241, 716, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 717, 250, 251,
0, 0, 0, 718, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 719, 0, 720, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 721,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 722, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 723, 724, 325, 725, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 726, 335,
727, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
728, 352, 353, 354, 355, 0, 356, 357, 729, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 730, 731, 732,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 733, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 734, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 735, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 0, 0, 0, 0, 0, 0, 199,
1231, 550, 0, 0, 0, 597, 0, 0, 0, 3988,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 1464, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 305, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 1465, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 1466, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
0, 0, 199, 609, 1232, 3585, 0, 0, 0, 0,
0, 0, 3586, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 3, 4, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 230, 231, 232, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 305, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 37, 420, 421, 422, 423, 424, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 41, 445, 446, 447, 448, 449, 450, 0, 451,
452, 0, 0, 453, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 920,
475, 0, 476, 921, 477, 478, 479, 0, 0, 480,
0, 46, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
0, 0, 0, 0, 0, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 47, 200, 201, 202, 203,
204, 205, 206, 207, 0, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 37, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 41, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 920, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 46, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 0, 0, 0, 0, 0, 0, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 47, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
0, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1103, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 0, 0,
0, 0, 0, 0, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2406, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 305, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 0, 0, 0, 0, 0, 0, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3425, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 305,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 0, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
1330, 1231, 550, 0, 0, 760, 597, 0, 0, 0,
3755, 200, 201, 202, 203, 204, 205, 206, 207, 1666,
209, 210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673,
212, 213, 1674, 214, 215, 713, 216, 217, 218, 0,
1331, 714, 1332, 1333, 1675, 223, 224, 225, 226, 227,
1676, 1677, 228, 229, 1334, 1335, 232, 1678, 233, 234,
235, 236, 0, 1679, 715, 1680, 238, 239, 240, 241,
716, 242, 243, 1681, 244, 245, 246, 247, 248, 249,
1682, 717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687,
1688, 252, 253, 254, 255, 256, 257, 1336, 1337, 260,
1689, 261, 1690, 262, 263, 264, 265, 266, 1691, 267,
268, 269, 1692, 1693, 270, 271, 1005, 273, 274, 1694,
275, 276, 277, 1695, 278, 279, 1696, 280, 281, 282,
283, 0, 285, 286, 287, 0, 1697, 289, 1698, 290,
1338, 292, 1699, 293, 1700, 294, 719, 1701, 720, 295,
296, 297, 1702, 298, 0, 1703, 300, 1704, 301, 302,
303, 304, 305, 721, 306, 307, 308, 1705, 309, 310,
311, 312, 313, 314, 1706, 315, 722, 0, 317, 318,
319, 320, 1339, 1340, 1707, 1341, 1708, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 1709,
333, 0, 726, 335, 727, 1710, 336, 337, 338, 1711,
1712, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1342, 728, 1343, 353, 354, 0, 1713,
356, 357, 729, 358, 1714, 0, 360, 1344, 362, 363,
364, 1715, 365, 1716, 1717, 3159, 367, 368, 1718, 1719,
0, 730, 731, 732, 0, 371, 372, 373, 374, 375,
376, 377, 1720, 378, 0, 380, 0, 382, 383, 384,
1721, 385, 386, 387, 388, 389, 390, 391, 1345, 393,
394, 395, 396, 1722, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 1723, 407, 408, 733, 409, 410,
0, 412, 413, 414, 415, 416, 417, 418, 419, 1724,
420, 421, 422, 423, 424, 1725, 425, 1882, 427, 428,
734, 429, 1347, 431, 1726, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 0, 1727, 443, 444, 1728,
445, 446, 447, 448, 449, 450, 1729, 1348, 1349, 1730,
1731, 453, 0, 455, 0, 1732, 457, 458, 459, 460,
461, 462, 463, 1733, 1734, 464, 465, 466, 467, 468,
1735, 1736, 469, 470, 471, 472, 473, 0, 1350, 1737,
476, 735, 477, 478, 479, 1738, 1739, 480, 1740, 1741,
481, 482, 483, 484, 485, 0, 0, 0, 0, 0,
0, 0, 0, 0, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 3160, 3161, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 761,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 762, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 848,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 849, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 893,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 894, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 895, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 1313,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 1314, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 2466,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 2467, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
199, 0, 0, 0, 0, 760, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 3972, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 0, 0, 1665,
763, 764, 765, 0, 766, 767, 768, 769, 770, 771,
200, 201, 202, 203, 204, 205, 206, 207, 1666, 209,
210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212,
213, 1674, 214, 215, 713, 216, 217, 218, 219, 220,
714, 221, 222, 1675, 223, 224, 225, 226, 227, 1676,
1677, 228, 229, 230, 231, 232, 1678, 233, 234, 235,
236, 237, 1679, 715, 1680, 238, 239, 240, 241, 716,
242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682,
717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688,
252, 253, 254, 255, 256, 257, 258, 259, 260, 1689,
261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268,
269, 1692, 1693, 270, 271, 272, 273, 274, 1694, 275,
276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283,
284, 285, 286, 287, 288, 1697, 289, 1698, 290, 291,
292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296,
297, 1702, 298, 299, 1703, 300, 1704, 301, 302, 303,
304, 305, 721, 306, 307, 308, 1705, 309, 310, 311,
312, 313, 314, 1706, 315, 722, 316, 317, 318, 319,
320, 321, 322, 1707, 323, 1708, 324, 723, 724, 325,
725, 326, 327, 328, 329, 330, 331, 332, 1709, 333,
334, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 728, 352, 353, 354, 355, 1713, 356,
357, 729, 358, 1714, 359, 360, 361, 362, 363, 364,
1715, 365, 1716, 1717, 366, 367, 368, 1718, 1719, 369,
730, 731, 732, 370, 371, 372, 373, 374, 375, 376,
377, 1720, 378, 379, 380, 381, 382, 383, 384, 1721,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 1722, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 1723, 407, 408, 733, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 1724, 420,
421, 422, 423, 424, 1725, 425, 426, 427, 428, 734,
429, 430, 431, 1726, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 1727, 443, 444, 1728, 445,
446, 447, 448, 449, 450, 1729, 451, 452, 1730, 1731,
453, 454, 455, 456, 1732, 457, 458, 459, 460, 461,
462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735,
1736, 469, 470, 471, 472, 473, 474, 475, 1737, 476,
735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 0, 0,
0, 0, 0, 0, 0, 1742, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 682, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
1330, 0, 0, 0, 0, 0, 0, 0, 0, 3851,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 0,
1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234,
235, 236, 0, 0, 715, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 0, 0, 0, 718, 0, 0,
0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 0, 285, 286, 287, 0, 0, 289, 0, 290,
1338, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 0, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 0, 317, 318,
319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 0, 726, 335, 727, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0,
356, 357, 729, 358, 0, 0, 360, 1344, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
0, 730, 731, 732, 0, 371, 372, 373, 374, 375,
376, 377, 0, 378, 0, 380, 0, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1345, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
0, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 1346, 427, 428,
734, 429, 1347, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 0, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0,
0, 453, 0, 455, 0, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 0, 1350, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 0, 0, 2025, 0, 0,
0, 0, 0, 0, 495, 496, 497, 0, 200, 201,
202, 203, 204, 205, 206, 207, 1796, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332,
1333, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0,
0, 715, 0, 238, 239, 240, 241, 716, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 717, 250,
251, 0, 0, 0, 718, 0, 0, 0, 252, 253,
254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 1005, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 0, 285,
286, 287, 0, 0, 289, 0, 290, 1338, 292, 0,
293, 0, 294, 719, 0, 720, 295, 296, 297, 0,
298, 0, 0, 300, 0, 301, 302, 303, 304, 305,
721, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 722, 0, 317, 318, 319, 320, 1339,
1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326,
327, 328, 329, 330, 331, 332, 0, 333, 0, 726,
335, 727, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729,
358, 0, 0, 360, 1344, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 0, 730, 731,
732, 0, 371, 372, 373, 374, 375, 376, 377, 0,
378, 0, 380, 0, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 1345, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 733, 409, 410, 0, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 1346, 427, 428, 734, 429, 1347,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 0, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0,
455, 0, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 0, 1350, 0, 476, 735, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 0, 0, 199, 1231, 550, 0, 0, 0,
597, 495, 496, 497, 0, 200, 201, 202, 203, 204,
205, 206, 207, 1796, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 1655, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
1464, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 305, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 1465, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 1466,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 1231, 550, 0, 0, 0, 597, 609, 1232,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 1660, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 1464, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 1465, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 1466, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 1231,
550, 0, 0, 0, 597, 609, 1232, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 1464, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 1465, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 1466, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 597, 609, 1232, 0, 0, 200, 598, 202, 203,
204, 205, 206, 207, 599, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 600, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 601, 291, 292, 0, 293, 0,
602, 0, 603, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 604, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 605, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 606, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 607, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
608, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 1665, 4263, 550, 0, 0, 0, 597, 609,
610, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 1666, 209, 210, 211, 1667, 1668, 1669, 1670, 1671,
1672, 1673, 212, 213, 1674, 214, 215, 713, 216, 217,
218, 219, 220, 714, 221, 222, 1675, 223, 224, 225,
226, 227, 1676, 1677, 228, 229, 230, 231, 232, 1678,
233, 234, 235, 236, 237, 1679, 715, 1680, 238, 239,
240, 241, 716, 242, 243, 1681, 244, 245, 246, 247,
248, 249, 1682, 717, 250, 251, 1683, 1684, 1685, 718,
1686, 1687, 1688, 252, 253, 254, 255, 256, 257, 258,
259, 260, 1689, 261, 1690, 262, 263, 264, 265, 266,
1691, 267, 268, 269, 1692, 1693, 270, 271, 272, 273,
274, 1694, 275, 276, 277, 1695, 278, 279, 1696, 280,
281, 282, 283, 284, 285, 286, 287, 288, 1697, 289,
1698, 290, 291, 292, 1699, 293, 1700, 294, 719, 1701,
720, 295, 296, 297, 1702, 298, 299, 1703, 300, 1704,
301, 302, 303, 304, 305, 721, 306, 307, 308, 1705,
309, 310, 311, 312, 313, 314, 1706, 315, 722, 316,
317, 318, 319, 320, 321, 322, 1707, 323, 1708, 324,
723, 724, 325, 725, 326, 327, 328, 329, 330, 331,
332, 1709, 333, 334, 726, 335, 727, 1710, 336, 337,
338, 1711, 1712, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 728, 352, 353, 354,
355, 1713, 356, 357, 729, 358, 1714, 359, 360, 361,
362, 363, 364, 1715, 365, 1716, 1717, 366, 367, 368,
1718, 1719, 369, 730, 731, 732, 370, 371, 372, 373,
374, 375, 376, 377, 1720, 378, 379, 380, 381, 382,
383, 384, 1721, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 1722, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 1723, 407, 408, 733,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 1724, 420, 421, 422, 423, 424, 1725, 425, 426,
427, 428, 734, 429, 430, 431, 1726, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 1727, 443,
444, 1728, 445, 446, 447, 448, 449, 450, 1729, 451,
452, 1730, 1731, 453, 454, 455, 456, 1732, 457, 458,
459, 460, 461, 462, 463, 1733, 1734, 464, 465, 466,
467, 468, 1735, 1736, 469, 470, 471, 472, 473, 474,
475, 1737, 476, 735, 477, 478, 479, 1738, 1739, 480,
1740, 1741, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 1665,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 1666, 209,
210, 211, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 212,
213, 1674, 214, 215, 713, 216, 217, 218, 219, 220,
714, 221, 222, 1675, 223, 224, 225, 226, 227, 1676,
1677, 228, 229, 230, 231, 232, 1678, 233, 234, 235,
236, 237, 1679, 715, 1680, 238, 239, 240, 241, 716,
242, 243, 1681, 244, 245, 246, 247, 248, 249, 1682,
717, 250, 251, 1683, 1684, 1685, 718, 1686, 1687, 1688,
252, 253, 254, 255, 256, 257, 258, 259, 260, 1689,
261, 1690, 262, 263, 264, 265, 266, 1691, 267, 268,
269, 1692, 1693, 270, 271, 272, 273, 274, 1694, 275,
276, 277, 1695, 278, 279, 1696, 280, 281, 282, 283,
284, 285, 286, 287, 288, 1697, 289, 1698, 290, 291,
292, 1699, 293, 1700, 294, 719, 1701, 720, 295, 296,
297, 1702, 298, 299, 1703, 300, 1704, 301, 302, 303,
304, 305, 721, 306, 307, 308, 1705, 309, 310, 311,
312, 313, 314, 1706, 315, 722, 316, 317, 318, 319,
320, 321, 322, 1707, 323, 1708, 324, 723, 724, 325,
725, 326, 327, 328, 329, 330, 331, 332, 1709, 333,
334, 726, 335, 727, 1710, 336, 337, 338, 1711, 1712,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 728, 352, 353, 354, 355, 1713, 356,
357, 729, 358, 1714, 359, 360, 361, 362, 363, 364,
1715, 365, 1716, 1717, 366, 367, 368, 1718, 1719, 369,
730, 731, 732, 370, 371, 372, 373, 374, 375, 376,
377, 1720, 378, 379, 380, 381, 382, 383, 384, 1721,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 1722, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 1723, 407, 408, 733, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 1724, 420,
421, 422, 423, 424, 1725, 425, 426, 427, 428, 734,
429, 430, 431, 1726, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 1727, 443, 444, 1728, 445,
446, 447, 448, 449, 450, 1729, 451, 452, 1730, 1731,
453, 454, 455, 456, 1732, 457, 458, 459, 460, 461,
462, 463, 1733, 1734, 464, 465, 466, 467, 468, 1735,
1736, 469, 470, 471, 472, 473, 474, 475, 1737, 476,
735, 477, 478, 479, 1738, 1739, 480, 1740, 1741, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 1665, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 2531, 205, 206, 207, 1666, 209, 210, 211, 1667,
1668, 1669, 1670, 1671, 1672, 1673, 212, 213, 1674, 214,
215, 713, 216, 217, 218, 219, 220, 714, 221, 222,
1675, 223, 224, 225, 226, 227, 1676, 1677, 228, 229,
230, 231, 232, 1678, 233, 234, 235, 236, 237, 1679,
715, 1680, 238, 239, 240, 241, 716, 242, 243, 1681,
244, 245, 246, 247, 248, 249, 1682, 717, 250, 251,
1683, 1684, 1685, 718, 1686, 1687, 1688, 252, 253, 254,
255, 256, 257, 258, 259, 260, 1689, 261, 1690, 262,
263, 264, 265, 266, 1691, 267, 268, 269, 1692, 1693,
270, 271, 272, 2532, 274, 1694, 275, 276, 277, 1695,
278, 279, 1696, 280, 281, 282, 283, 284, 285, 286,
287, 288, 1697, 289, 1698, 290, 291, 292, 1699, 293,
1700, 294, 719, 1701, 720, 295, 296, 297, 1702, 298,
299, 1703, 300, 1704, 301, 302, 303, 304, 305, 721,
306, 307, 308, 1705, 309, 310, 311, 312, 313, 314,
1706, 315, 722, 316, 317, 318, 319, 320, 321, 322,
1707, 323, 1708, 324, 723, 724, 325, 725, 326, 327,
328, 329, 330, 331, 332, 1709, 333, 334, 726, 335,
727, 1710, 336, 337, 338, 1711, 1712, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
728, 352, 353, 354, 355, 1713, 356, 357, 729, 358,
1714, 359, 360, 361, 362, 363, 364, 1715, 365, 1716,
1717, 366, 367, 368, 1718, 1719, 369, 730, 731, 732,
370, 371, 372, 373, 374, 375, 376, 377, 1720, 378,
379, 380, 381, 382, 383, 384, 1721, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 1722,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
1723, 407, 408, 733, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 1724, 420, 421, 422, 423,
424, 1725, 2533, 426, 427, 428, 734, 429, 430, 431,
1726, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 1727, 443, 444, 1728, 445, 446, 447, 448,
449, 450, 1729, 451, 452, 1730, 1731, 453, 454, 455,
456, 1732, 457, 458, 459, 460, 461, 462, 463, 1733,
1734, 464, 465, 466, 467, 468, 1735, 1736, 469, 470,
471, 472, 473, 474, 475, 1737, 476, 735, 477, 478,
479, 1738, 1739, 480, 1740, 1741, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 712, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 713, 216,
217, 218, 219, 220, 714, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 715, 0, 238,
239, 240, 241, 716, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 717, 250, 251, 0, 0, 0,
718, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 719,
0, 720, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 721, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 722,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 723, 724, 325, 725, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 726, 335, 727, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 728, 352, 353,
354, 355, 0, 356, 357, 729, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 730, 731, 732, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
733, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 734, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 735, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
712, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 219,
220, 714, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 715, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 0, 0, 0, 718, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 878, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 726, 335, 727, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 728, 352, 353, 354, 355, 0,
356, 357, 729, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 730, 731, 732, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
734, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 712, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 713, 216, 217, 218, 219, 220, 714, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 715, 0, 238, 239, 240, 241, 716, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 717, 250,
251, 0, 0, 0, 718, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 719, 0, 720, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 887,
721, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 722, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 723, 724, 325, 725, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 726,
335, 727, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 728, 352, 353, 354, 355, 0, 356, 357, 729,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 730, 731,
732, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 733, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 734, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 735, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 1820, 233, 234, 235, 236, 237, 0, 0, 1895,
238, 239, 240, 241, 0, 242, 243, 1821, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 1896, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 1823, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 305, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 1824, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 1825, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 1820, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 1821, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 1896, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 1823, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 2732, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 1824, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 1825, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 647, 206, 207, 616, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 617, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
648, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 618, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 619, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 616, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 617, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 2434, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 618, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 619, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 230, 231, 232, 1820,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 1821, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 1896,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 1823, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 305, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 1824, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 451,
452, 0, 0, 453, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 1825, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 616, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 617,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 305, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 618, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 619, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 550, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 1464, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 1465,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 1466, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 1491, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 1492, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 1493, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 1494, 294, 0,
0, 0, 1495, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 1496, 1497, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 1498, 416, 417,
418, 419, 0, 1499, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 1500, 445, 1501, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 1502, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
617, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 618, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 619,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
3, 4, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 305,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 921, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 550, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 1640, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 305, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 1985, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 1986, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 3, 4, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 2515, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 2516, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 2527, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 230, 231, 232, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 305, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 451,
452, 0, 0, 453, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 2528, 0, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 305, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 542, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 543, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 641, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 642, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
643, 452, 0, 0, 644, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 671,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 672, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 673, 452, 0,
0, 674, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 305,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 677, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 0, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 781, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 677, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
871, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
550, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 1078, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 1089, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 658, 229, 230, 231, 1090, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 305, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 661, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
662, 410, 411, 412, 413, 414, 663, 416, 417, 418,
419, 0, 420, 421, 422, 423, 1082, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 665,
452, 0, 0, 666, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 667, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 1186, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 677, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 550, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 1454, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 2342, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 2343, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 2344, 445, 446, 2345, 448, 2346, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
2347, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 2794, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 3398, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 305,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 0, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 3411, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 305, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 3616, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 3618, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 0, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 3620, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 230, 231, 232, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 305, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 451,
452, 0, 0, 453, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 3975, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 305, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 305, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 631, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 639, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 658, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 659, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 305, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 660, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 661, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 662, 410,
411, 412, 413, 414, 663, 416, 417, 418, 419, 0,
420, 421, 422, 423, 664, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 665, 452, 0,
0, 666, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 667, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 305,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 689, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 0, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 757, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 778, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 787, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 0, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 789, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 230, 231, 232, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 839, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 451,
452, 0, 0, 453, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 305, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 860, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 883, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 889, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 898, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 900,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 0, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 902, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 904, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
907, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 0, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 909, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 910, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 412, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 230, 231, 232, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 913, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 451,
452, 0, 0, 453, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 658, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 305, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 661, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 662, 410, 411,
412, 413, 414, 663, 416, 417, 418, 419, 0, 420,
421, 422, 423, 1082, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 665, 452, 0, 0,
666, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 667, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 1375, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 1402, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 1430, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 199, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 0, 216, 217, 218, 219, 220, 0, 221,
222, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 230, 231, 232, 0, 233, 234, 235, 236, 237,
0, 0, 0, 238, 239, 240, 241, 0, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 0, 250,
251, 0, 0, 0, 0, 0, 0, 0, 252, 253,
254, 255, 256, 257, 258, 259, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 284, 285,
286, 287, 288, 0, 289, 0, 290, 291, 292, 0,
293, 0, 294, 0, 0, 0, 295, 296, 297, 0,
298, 299, 0, 300, 0, 301, 302, 303, 304, 1432,
0, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 0, 316, 317, 318, 319, 320, 321,
322, 0, 323, 0, 324, 0, 0, 325, 0, 326,
327, 328, 329, 330, 331, 332, 0, 333, 334, 0,
335, 0, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
351, 0, 352, 353, 354, 355, 0, 356, 357, 0,
358, 0, 359, 360, 361, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 369, 0, 0,
0, 370, 371, 372, 373, 374, 375, 376, 377, 0,
378, 379, 380, 381, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 0, 409, 410, 411, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 426, 427, 428, 0, 429, 430,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 0, 443, 444, 0, 445, 446, 447,
448, 449, 450, 0, 451, 452, 0, 0, 453, 454,
455, 456, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 474, 475, 0, 476, 0, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
494, 495, 496, 497, 199, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 0,
216, 217, 218, 219, 220, 0, 221, 222, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 230, 231,
232, 0, 233, 234, 235, 236, 237, 0, 0, 0,
238, 239, 240, 241, 0, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 0, 250, 251, 0, 0,
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
257, 258, 259, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
272, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
0, 289, 0, 290, 291, 292, 0, 293, 0, 294,
0, 0, 0, 295, 296, 297, 0, 298, 299, 0,
300, 0, 301, 302, 303, 304, 1434, 0, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
0, 316, 317, 318, 319, 320, 321, 322, 0, 323,
0, 324, 0, 0, 325, 0, 326, 327, 328, 329,
330, 331, 332, 0, 333, 334, 0, 335, 0, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 0, 352,
353, 354, 355, 0, 356, 357, 0, 358, 0, 359,
360, 361, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 369, 0, 0, 0, 370, 371,
372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
381, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 0, 409, 410, 411, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 426, 427, 428, 0, 429, 430, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 451, 452, 0, 0, 453, 454, 455, 456, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 474, 475, 0, 476, 0, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
497, 199, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
0, 209, 210, 211, 0, 0, 0, 0, 0, 0,
0, 212, 213, 0, 214, 215, 0, 216, 217, 218,
219, 220, 0, 221, 222, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 230, 231, 232, 0, 233,
234, 235, 236, 237, 0, 0, 0, 238, 239, 240,
241, 0, 242, 243, 0, 244, 245, 246, 247, 248,
249, 0, 0, 250, 251, 0, 0, 0, 0, 0,
0, 0, 252, 253, 254, 255, 256, 257, 258, 259,
260, 0, 261, 0, 262, 263, 264, 265, 266, 0,
267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
0, 275, 276, 277, 0, 278, 279, 0, 280, 281,
282, 283, 284, 285, 286, 287, 288, 0, 289, 0,
290, 291, 292, 0, 293, 0, 294, 0, 0, 0,
295, 296, 297, 0, 298, 299, 0, 300, 0, 301,
302, 303, 304, 305, 0, 306, 307, 308, 0, 309,
310, 311, 312, 313, 314, 0, 315, 0, 316, 317,
318, 319, 320, 321, 322, 0, 323, 0, 324, 0,
0, 325, 0, 326, 327, 328, 329, 330, 331, 332,
0, 333, 334, 0, 335, 0, 0, 336, 337, 338,
0, 0, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 0, 352, 353, 354, 355,
0, 356, 357, 0, 358, 0, 359, 360, 361, 362,
363, 364, 0, 365, 0, 0, 366, 367, 368, 0,
0, 369, 0, 0, 0, 370, 371, 372, 373, 374,
375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
384, 0, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 0, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 0, 407, 408, 0, 409,
410, 411, 412, 413, 1525, 415, 416, 417, 418, 419,
0, 420, 421, 422, 423, 424, 0, 425, 426, 427,
428, 0, 429, 430, 431, 0, 432, 433, 434, 435,
436, 437, 438, 439, 440, 441, 442, 0, 443, 444,
0, 445, 446, 447, 448, 449, 450, 0, 451, 452,
0, 0, 453, 454, 455, 456, 0, 457, 458, 459,
460, 461, 462, 463, 0, 0, 464, 465, 466, 467,
468, 0, 0, 469, 470, 471, 472, 473, 474, 475,
0, 476, 0, 477, 478, 479, 0, 0, 480, 0,
0, 481, 482, 483, 484, 485, 486, 487, 488, 489,
490, 491, 492, 493, 494, 495, 496, 497, 199, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 1793, 0, 212, 213,
0, 214, 215, 0, 216, 217, 218, 219, 220, 0,
221, 222, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 230, 231, 232, 0, 233, 234, 235, 236,
237, 0, 0, 0, 238, 239, 240, 241, 0, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 0,
250, 251, 0, 0, 0, 0, 0, 0, 0, 252,
253, 254, 255, 256, 257, 258, 259, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 284,
285, 286, 287, 288, 0, 289, 0, 290, 291, 292,
0, 293, 0, 294, 0, 0, 0, 295, 296, 297,
0, 298, 299, 0, 300, 0, 301, 302, 303, 304,
305, 0, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 0, 316, 317, 318, 319, 320,
321, 322, 0, 323, 0, 324, 0, 0, 325, 0,
326, 327, 328, 329, 330, 331, 332, 0, 333, 334,
0, 335, 0, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 351, 0, 352, 353, 354, 355, 0, 356, 357,
0, 358, 0, 359, 360, 361, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 369, 0,
0, 0, 370, 371, 372, 373, 374, 375, 376, 377,
0, 378, 379, 380, 381, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 0, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 0, 426, 427, 428, 0, 429,
430, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 442, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 451, 452, 0, 0, 453,
454, 455, 456, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 474, 475, 0, 476, 0,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
493, 494, 495, 496, 497, 199, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 200, 201, 202, 203,
204, 205, 206, 207, 0, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 658, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 661, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 390, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 662, 410, 411, 412, 413, 414, 663,
416, 417, 418, 419, 0, 420, 421, 422, 423, 1082,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 1811, 447, 448, 449,
450, 0, 665, 452, 0, 0, 666, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 667,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 199, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 0, 216, 217,
218, 219, 220, 0, 221, 222, 0, 223, 224, 225,
226, 227, 0, 0, 658, 229, 230, 231, 232, 0,
233, 234, 235, 236, 237, 0, 0, 0, 238, 239,
240, 241, 0, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 252, 253, 254, 255, 256, 257, 258,
259, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 272, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 284, 285, 286, 287, 288, 0, 289,
0, 290, 291, 292, 0, 293, 0, 294, 0, 0,
0, 295, 296, 297, 0, 298, 299, 0, 300, 0,
301, 302, 303, 304, 305, 0, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 0, 316,
317, 318, 319, 320, 321, 322, 0, 323, 0, 324,
0, 0, 325, 0, 326, 327, 328, 329, 330, 331,
332, 0, 333, 334, 0, 335, 0, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 661, 351, 0, 352, 353, 354,
355, 0, 356, 357, 0, 358, 0, 359, 360, 361,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 369, 0, 0, 0, 370, 371, 372, 373,
374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 0,
662, 410, 411, 412, 413, 414, 1871, 416, 417, 418,
419, 0, 420, 421, 422, 423, 1872, 0, 425, 426,
427, 428, 0, 429, 430, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 665,
452, 0, 0, 1873, 454, 455, 456, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 474,
475, 0, 476, 0, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 667, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 199,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 0, 216, 217, 218, 219, 220,
0, 221, 222, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 230, 231, 232, 0, 233, 234, 235,
236, 237, 0, 0, 0, 238, 239, 240, 241, 0,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
0, 250, 251, 0, 0, 0, 0, 0, 0, 0,
252, 253, 254, 255, 256, 257, 258, 259, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
284, 285, 286, 287, 288, 0, 289, 0, 290, 291,
292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
297, 0, 298, 299, 0, 300, 0, 301, 302, 303,
304, 2117, 0, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 0, 316, 317, 318, 319,
320, 321, 322, 0, 323, 0, 324, 0, 0, 325,
0, 326, 327, 328, 329, 330, 331, 332, 0, 333,
334, 0, 335, 0, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 351, 0, 352, 353, 354, 355, 0, 356,
357, 0, 358, 0, 359, 360, 361, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 369,
0, 0, 0, 370, 371, 372, 373, 374, 375, 376,
377, 0, 378, 379, 380, 381, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 0, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 426, 427, 428, 0,
429, 430, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 451, 452, 0, 0,
453, 454, 455, 456, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 474, 475, 0, 476,
0, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
492, 493, 494, 495, 496, 497, 199, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 2445, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 658, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 305, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 661, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 662, 410, 411, 412, 413, 414, 663, 416, 417,
418, 419, 0, 420, 421, 422, 423, 1872, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
665, 452, 0, 0, 1873, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 667, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
1330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 0,
1331, 714, 1332, 1333, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 1334, 1335, 232, 0, 233, 234,
235, 236, 0, 0, 715, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 0, 0, 0, 718, 0, 0,
0, 252, 253, 254, 255, 256, 257, 1336, 1337, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 1005, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 0, 285, 286, 287, 0, 0, 289, 0, 290,
1338, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 0, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 1879, 309, 310,
311, 312, 313, 314, 0, 315, 722, 1880, 317, 318,
319, 320, 1339, 1340, 0, 1341, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 0, 726, 335, 727, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 1342, 728, 1343, 353, 354, 0, 0,
356, 357, 729, 358, 0, 0, 360, 1344, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
1881, 730, 731, 732, 0, 371, 372, 373, 374, 375,
376, 377, 0, 378, 0, 380, 0, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 1345, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
0, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 1882, 427, 428,
734, 429, 1347, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 0, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 1348, 1349, 0,
0, 453, 0, 455, 0, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 0, 1350, 1883,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 0, 199, 0, 0, 0,
0, 0, 0, 0, 495, 496, 497, 200, 201, 202,
203, 204, 205, 206, 207, 0, 209, 210, 211, 0,
0, 0, 0, 0, 0, 0, 212, 213, 0, 214,
215, 0, 216, 217, 218, 219, 220, 0, 221, 222,
0, 223, 224, 225, 226, 227, 0, 0, 228, 229,
230, 231, 232, 0, 233, 234, 235, 236, 237, 0,
0, 0, 238, 239, 240, 241, 0, 242, 243, 0,
244, 245, 246, 247, 248, 249, 0, 0, 250, 251,
0, 0, 0, 0, 0, 0, 0, 252, 253, 254,
255, 256, 257, 258, 259, 260, 0, 261, 0, 262,
263, 264, 265, 266, 0, 267, 268, 269, 0, 0,
270, 271, 272, 273, 274, 0, 275, 276, 277, 0,
278, 279, 0, 280, 281, 282, 283, 284, 285, 286,
287, 288, 0, 289, 0, 290, 291, 292, 0, 293,
0, 294, 0, 0, 0, 295, 296, 297, 0, 298,
299, 0, 300, 0, 301, 302, 303, 304, 2518, 0,
306, 307, 308, 0, 309, 310, 311, 312, 313, 314,
0, 315, 0, 316, 317, 318, 319, 320, 321, 322,
0, 323, 0, 324, 0, 0, 325, 0, 326, 327,
328, 329, 330, 331, 332, 0, 333, 334, 0, 335,
0, 0, 336, 337, 338, 0, 0, 339, 340, 341,
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
0, 352, 353, 354, 355, 0, 356, 357, 0, 358,
0, 359, 360, 361, 362, 363, 364, 0, 365, 0,
0, 366, 367, 368, 0, 0, 369, 0, 0, 0,
370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
379, 380, 381, 382, 383, 384, 0, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 0,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
0, 407, 408, 0, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 0, 420, 421, 422, 423,
424, 0, 425, 426, 427, 428, 0, 429, 430, 431,
0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 0, 443, 444, 0, 445, 446, 447, 448,
449, 450, 0, 451, 452, 0, 0, 453, 454, 455,
456, 0, 457, 458, 459, 460, 461, 462, 463, 0,
0, 464, 465, 466, 467, 468, 0, 0, 469, 470,
471, 472, 473, 474, 475, 0, 476, 0, 477, 478,
479, 0, 0, 480, 0, 0, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 199, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 0, 216,
217, 218, 219, 220, 0, 221, 222, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 230, 231, 232,
0, 233, 234, 235, 236, 237, 0, 0, 0, 238,
239, 240, 241, 0, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 0, 250, 251, 0, 0, 0,
0, 0, 0, 0, 252, 253, 254, 255, 256, 257,
258, 259, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 272,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 284, 285, 286, 287, 288, 0,
289, 0, 290, 291, 292, 0, 293, 0, 294, 0,
0, 0, 295, 296, 297, 0, 298, 299, 0, 300,
0, 301, 302, 303, 304, 2520, 0, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 0,
316, 317, 318, 319, 320, 321, 322, 0, 323, 0,
324, 0, 0, 325, 0, 326, 327, 328, 329, 330,
331, 332, 0, 333, 334, 0, 335, 0, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 0, 352, 353,
354, 355, 0, 356, 357, 0, 358, 0, 359, 360,
361, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 369, 0, 0, 0, 370, 371, 372,
373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 392, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
426, 427, 428, 0, 429, 430, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 442, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
451, 452, 0, 0, 453, 454, 455, 456, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
474, 475, 0, 476, 0, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 0, 216, 217, 218, 219,
220, 0, 221, 222, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 230, 231, 232, 0, 233, 234,
235, 236, 237, 0, 0, 0, 238, 239, 240, 241,
0, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 0, 250, 251, 0, 0, 0, 0, 0, 0,
0, 252, 253, 254, 255, 256, 257, 258, 259, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 284, 285, 286, 287, 288, 0, 289, 0, 290,
291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
296, 297, 0, 298, 299, 0, 300, 0, 301, 302,
303, 304, 2612, 0, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 0, 316, 317, 318,
319, 320, 321, 322, 0, 323, 0, 324, 0, 0,
325, 0, 326, 327, 328, 329, 330, 331, 332, 0,
333, 334, 0, 335, 0, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 0, 352, 353, 354, 355, 0,
356, 357, 0, 358, 0, 359, 360, 361, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
369, 0, 0, 0, 370, 371, 372, 373, 374, 375,
376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 0, 409, 410,
411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 426, 427, 428,
0, 429, 430, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 442, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 451, 452, 0,
0, 453, 454, 455, 456, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 474, 475, 0,
476, 0, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
491, 492, 493, 494, 495, 496, 497, 1330, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 200, 201,
202, 203, 204, 205, 206, 207, 0, 209, 210, 211,
0, 0, 0, 0, 0, 0, 0, 212, 213, 0,
214, 215, 713, 216, 217, 218, 0, 1331, 714, 1332,
1333, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 1334, 1335, 232, 0, 233, 234, 235, 236, 0,
0, 715, 0, 238, 239, 240, 241, 716, 242, 243,
0, 244, 245, 246, 247, 248, 249, 0, 717, 250,
251, 0, 0, 0, 718, 0, 0, 0, 252, 253,
254, 255, 256, 257, 1336, 1337, 260, 0, 261, 0,
262, 263, 264, 265, 266, 0, 267, 268, 269, 0,
0, 270, 271, 1005, 273, 274, 0, 275, 276, 277,
0, 278, 279, 0, 280, 281, 282, 283, 0, 285,
286, 287, 0, 0, 289, 0, 290, 1338, 292, 0,
293, 0, 294, 719, 0, 720, 295, 296, 297, 0,
298, 0, 0, 300, 0, 301, 302, 303, 304, 305,
721, 306, 307, 308, 0, 309, 310, 311, 312, 313,
314, 0, 315, 722, 0, 317, 318, 319, 320, 1339,
1340, 0, 1341, 0, 324, 723, 724, 325, 725, 326,
327, 328, 329, 330, 331, 332, 0, 333, 0, 726,
335, 727, 0, 336, 337, 338, 0, 0, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1342, 728, 1343, 353, 354, 0, 0, 356, 357, 729,
358, 1867, 0, 360, 1344, 362, 363, 364, 0, 365,
0, 0, 366, 367, 368, 0, 0, 0, 730, 731,
732, 0, 371, 372, 373, 374, 375, 376, 377, 0,
378, 0, 380, 0, 382, 383, 384, 0, 385, 386,
387, 388, 389, 390, 391, 1345, 393, 394, 395, 396,
0, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 0, 407, 408, 733, 409, 410, 0, 412, 413,
414, 415, 416, 417, 418, 419, 0, 420, 421, 422,
423, 424, 0, 425, 1882, 427, 428, 734, 429, 1347,
431, 0, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 0, 0, 443, 444, 3264, 445, 446, 447,
448, 449, 450, 0, 1348, 1349, 0, 0, 453, 0,
455, 0, 0, 457, 458, 459, 460, 461, 462, 463,
0, 0, 464, 465, 466, 467, 468, 0, 0, 469,
470, 471, 472, 473, 0, 1350, 0, 476, 735, 477,
478, 479, 0, 0, 480, 0, 0, 481, 482, 483,
484, 485, 0, 1330, 0, 0, 0, 0, 0, 0,
0, 495, 496, 497, 200, 201, 202, 203, 204, 205,
206, 207, 0, 209, 210, 211, 0, 0, 0, 0,
0, 0, 0, 212, 213, 0, 214, 215, 713, 216,
217, 218, 0, 1331, 714, 1332, 1333, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 1334, 1335, 232,
0, 233, 234, 235, 236, 0, 0, 715, 0, 238,
239, 240, 241, 716, 242, 243, 0, 244, 245, 246,
247, 248, 249, 0, 717, 250, 251, 0, 0, 0,
718, 0, 0, 0, 252, 253, 254, 255, 256, 257,
1336, 1337, 260, 0, 261, 0, 262, 263, 264, 265,
266, 0, 267, 268, 269, 0, 0, 270, 271, 1005,
273, 274, 0, 275, 276, 277, 0, 278, 279, 0,
280, 281, 282, 283, 0, 285, 286, 287, 0, 0,
289, 0, 290, 1338, 292, 0, 293, 0, 294, 719,
0, 720, 295, 296, 297, 0, 298, 0, 0, 300,
0, 301, 302, 303, 304, 305, 721, 306, 307, 308,
0, 309, 310, 311, 312, 313, 314, 0, 315, 722,
0, 317, 318, 319, 320, 1339, 1340, 0, 1341, 0,
324, 723, 724, 325, 725, 326, 327, 328, 329, 330,
331, 332, 0, 333, 0, 726, 335, 727, 0, 336,
337, 338, 0, 0, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 1342, 728, 1343, 353,
354, 1930, 0, 356, 357, 729, 358, 0, 0, 360,
1344, 362, 363, 364, 0, 365, 0, 0, 366, 367,
368, 0, 0, 0, 730, 731, 732, 0, 371, 372,
373, 374, 375, 376, 377, 0, 378, 0, 380, 0,
382, 383, 384, 0, 385, 386, 387, 388, 389, 390,
391, 1345, 393, 394, 395, 396, 0, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 0, 407, 408,
733, 409, 410, 0, 412, 413, 414, 415, 416, 417,
418, 419, 0, 420, 421, 422, 423, 424, 0, 425,
1346, 427, 428, 734, 429, 1347, 431, 0, 432, 433,
434, 435, 436, 437, 438, 439, 440, 441, 0, 0,
443, 444, 0, 445, 446, 447, 448, 449, 450, 0,
1348, 1349, 0, 0, 453, 0, 455, 0, 0, 457,
458, 459, 460, 461, 462, 463, 0, 0, 464, 465,
466, 467, 468, 0, 0, 469, 470, 471, 472, 473,
0, 1350, 0, 476, 735, 477, 478, 479, 0, 0,
480, 0, 0, 481, 482, 483, 484, 485, 0, 1330,
0, 0, 0, 0, 0, 0, 0, 495, 496, 497,
200, 201, 202, 203, 204, 205, 206, 207, 0, 209,
210, 211, 0, 0, 0, 0, 0, 0, 0, 212,
213, 0, 214, 215, 713, 216, 217, 218, 0, 1331,
714, 1332, 1333, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 1334, 1335, 232, 0, 233, 234, 235,
236, 0, 0, 715, 0, 238, 239, 240, 241, 716,
242, 243, 0, 244, 245, 246, 247, 248, 249, 0,
717, 250, 251, 0, 0, 0, 718, 0, 0, 0,
252, 253, 254, 255, 256, 257, 1336, 1337, 260, 0,
261, 0, 262, 263, 264, 265, 266, 0, 267, 268,
269, 0, 0, 270, 271, 1005, 273, 274, 0, 275,
276, 277, 0, 278, 279, 0, 280, 281, 282, 283,
0, 285, 286, 287, 0, 0, 289, 0, 290, 1338,
292, 0, 293, 0, 294, 719, 0, 720, 295, 296,
297, 0, 298, 0, 0, 300, 0, 301, 302, 303,
304, 305, 721, 306, 307, 308, 0, 309, 310, 311,
312, 313, 314, 0, 315, 722, 0, 317, 318, 319,
320, 1339, 1340, 0, 1341, 0, 324, 723, 724, 325,
725, 326, 327, 328, 329, 330, 331, 332, 0, 333,
0, 726, 335, 727, 0, 336, 337, 338, 0, 0,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
349, 350, 1342, 728, 1343, 353, 354, 3083, 0, 356,
357, 729, 358, 0, 0, 360, 1344, 362, 363, 364,
0, 365, 0, 0, 366, 367, 368, 0, 0, 0,
730, 731, 732, 0, 371, 372, 373, 374, 375, 376,
377, 0, 378, 0, 380, 0, 382, 383, 384, 0,
385, 386, 387, 388, 389, 390, 391, 1345, 393, 394,
395, 396, 0, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 0, 407, 408, 733, 409, 410, 0,
412, 413, 414, 415, 416, 417, 418, 419, 0, 420,
421, 422, 423, 424, 0, 425, 1346, 427, 428, 734,
429, 1347, 431, 0, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 0, 0, 443, 444, 0, 445,
446, 447, 448, 449, 450, 0, 1348, 1349, 0, 0,
453, 0, 455, 0, 0, 457, 458, 459, 460, 461,
462, 463, 0, 0, 464, 465, 466, 467, 468, 0,
0, 469, 470, 471, 472, 473, 0, 1350, 0, 476,
735, 477, 478, 479, 0, 0, 480, 0, 0, 481,
482, 483, 484, 485, 0, 199, 0, 0, 0, 0,
0, 0, 0, 495, 496, 497, 200, 201, 202, 203,
204, 205, 206, 207, 0, 209, 210, 211, 0, 0,
0, 0, 0, 0, 0, 212, 213, 0, 214, 215,
0, 216, 217, 218, 219, 220, 0, 221, 222, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 230,
231, 232, 0, 233, 234, 235, 236, 237, 0, 0,
0, 238, 239, 240, 241, 0, 242, 243, 0, 244,
245, 246, 247, 248, 249, 0, 0, 250, 251, 0,
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
256, 257, 258, 259, 260, 0, 261, 0, 262, 263,
264, 265, 266, 0, 267, 268, 269, 0, 0, 270,
271, 272, 273, 274, 0, 275, 276, 277, 0, 278,
279, 0, 280, 281, 282, 283, 284, 285, 286, 287,
288, 0, 289, 0, 290, 291, 292, 0, 293, 0,
294, 0, 0, 0, 295, 296, 297, 0, 298, 299,
0, 300, 0, 301, 302, 303, 304, 305, 0, 306,
307, 308, 0, 309, 310, 311, 312, 313, 314, 0,
315, 0, 316, 317, 318, 319, 320, 321, 322, 0,
323, 0, 324, 0, 0, 325, 0, 326, 327, 328,
329, 330, 331, 332, 0, 333, 334, 0, 335, 0,
0, 336, 337, 338, 0, 0, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 0,
352, 353, 354, 355, 0, 356, 357, 0, 358, 0,
359, 360, 361, 362, 363, 364, 0, 365, 0, 0,
366, 367, 368, 0, 0, 369, 0, 0, 0, 370,
371, 372, 373, 374, 0, 376, 377, 0, 378, 379,
380, 381, 382, 383, 384, 0, 385, 386, 387, 388,
389, 0, 391, 392, 393, 394, 395, 396, 0, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 0,
407, 408, 0, 409, 410, 411, 0, 413, 414, 415,
416, 417, 418, 419, 0, 420, 421, 422, 423, 424,
0, 425, 426, 427, 428, 0, 429, 430, 431, 0,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
442, 0, 443, 444, 0, 445, 446, 447, 448, 449,
450, 0, 451, 452, 0, 0, 453, 454, 455, 456,
0, 457, 458, 459, 460, 461, 462, 463, 0, 0,
464, 465, 466, 467, 468, 0, 0, 469, 470, 471,
472, 473, 474, 475, 0, 476, 0, 477, 478, 479,
0, 0, 480, 0, 0, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
496, 497, 1330, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 200, 201, 202, 203, 204, 205, 206,
207, 0, 209, 210, 211, 0, 0, 0, 0, 0,
0, 0, 212, 213, 0, 214, 215, 713, 216, 217,
218, 0, 1331, 714, 1332, 1333, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 1334, 1335, 232, 0,
233, 234, 235, 236, 0, 0, 715, 0, 238, 239,
240, 241, 716, 242, 243, 0, 244, 245, 246, 247,
248, 249, 0, 717, 250, 251, 0, 0, 0, 718,
0, 0, 0, 252, 253, 254, 255, 256, 257, 1336,
1337, 260, 0, 261, 0, 262, 263, 264, 265, 266,
0, 267, 268, 269, 0, 0, 270, 271, 1005, 273,
274, 0, 275, 276, 277, 0, 278, 279, 0, 280,
281, 282, 283, 0, 285, 286, 287, 0, 0, 289,
0, 290, 1338, 292, 0, 293, 0, 294, 719, 0,
720, 295, 296, 297, 0, 298, 0, 0, 300, 0,
301, 302, 303, 304, 305, 721, 306, 307, 308, 0,
309, 310, 311, 312, 313, 314, 0, 315, 722, 0,
317, 318, 319, 320, 1339, 1340, 0, 1341, 0, 324,
723, 724, 325, 725, 326, 327, 328, 329, 330, 331,
332, 0, 333, 0, 726, 335, 727, 0, 336, 337,
338, 0, 0, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, 1342, 728, 1343, 353, 354,
0, 0, 356, 357, 729, 358, 0, 0, 360, 1344,
362, 363, 364, 0, 365, 0, 0, 366, 367, 368,
0, 0, 0, 730, 731, 732, 0, 371, 372, 373,
374, 375, 376, 377, 0, 378, 0, 380, 0, 382,
383, 384, 0, 385, 386, 387, 388, 389, 390, 391,
1345, 393, 394, 395, 396, 0, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 0, 407, 408, 733,
409, 410, 0, 412, 413, 414, 415, 416, 417, 418,
419, 0, 420, 421, 422, 423, 424, 0, 425, 1346,
427, 428, 734, 429, 1347, 431, 0, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 0, 0, 443,
444, 0, 445, 446, 447, 448, 449, 450, 0, 1348,
1349, 0, 0, 453, 0, 455, 0, 0, 457, 458,
459, 460, 461, 462, 463, 0, 0, 464, 465, 466,
467, 468, 0, 0, 469, 470, 471, 472, 473, 0,
1350, 0, 476, 735, 477, 478, 479, 0, 0, 480,
0, 0, 481, 482, 483, 484, 485, 0, 1330, 0,
0, 0, 0, 0, 0, 0, 495, 496, 497, 200,
201, 202, 203, 204, 205, 206, 207, 0, 209, 210,
211, 0, 0, 0, 0, 0, 0, 0, 212, 213,
0, 214, 215, 713, 216, 217, 218, 0, 1331, 714,
1332, 1333, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 1334, 1335, 232, 0, 233, 234, 235, 236,
0, 0, 715, 0, 238, 239, 240, 241, 716, 242,
243, 0, 244, 245, 246, 247, 248, 249, 0, 717,
250, 251, 0, 0, 0, 718, 0, 0, 0, 252,
253, 254, 255, 256, 257, 1336, 1337, 260, 0, 261,
0, 262, 263, 264, 265, 266, 0, 267, 268, 269,
0, 0, 270, 271, 1005, 273, 274, 0, 275, 276,
277, 0, 278, 279, 0, 280, 281, 282, 283, 0,
285, 286, 287, 0, 0, 289, 0, 290, 1338, 292,
0, 293, 0, 294, 719, 0, 720, 295, 296, 297,
0, 298, 0, 0, 300, 0, 301, 302, 303, 304,
305, 721, 306, 307, 308, 0, 309, 310, 311, 312,
313, 314, 0, 315, 722, 0, 317, 318, 319, 320,
1339, 1340, 0, 1341, 0, 324, 723, 724, 325, 725,
326, 327, 328, 329, 330, 331, 332, 0, 333, 0,
726, 335, 727, 0, 336, 337, 338, 0, 0, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
350, 1342, 728, 1343, 353, 354, 0, 0, 356, 357,
729, 358, 0, 0, 360, 1344, 362, 363, 364, 0,
365, 0, 0, 366, 367, 368, 0, 0, 0, 730,
731, 732, 0, 371, 372, 373, 374, 375, 376, 377,
0, 378, 0, 380, 0, 382, 383, 384, 0, 385,
386, 387, 388, 389, 390, 391, 1345, 393, 394, 395,
396, 0, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 0, 407, 408, 733, 409, 410, 0, 412,
413, 414, 415, 416, 417, 418, 419, 0, 420, 421,
422, 423, 424, 0, 425, 1882, 427, 428, 734, 429,
1347, 431, 0, 432, 433, 434, 435, 436, 437, 438,
439, 440, 441, 0, 0, 443, 444, 0, 445, 446,
447, 448, 449, 450, 0, 1348, 1349, 0, 0, 453,
0, 455, 0, 0, 457, 458, 459, 460, 461, 462,
463, 0, 0, 464, 465, 466, 467, 468, 0, 0,
469, 470, 471, 472, 473, 0, 1350, 0, 476, 735,
477, 478, 479, 0, 0, 480, 0, 0, 481, 482,
483, 484, 485, 0, 1330, 0, 0, 0, 0, 0,
0, 0, 495, 496, 497, 200, 201, 202, 203, 204,
205, 206, 207, 0, 209, 210, 211, 0, 0, 0,
0, 0, 0, 0, 212, 213, 0, 214, 215, 713,
216, 217, 218, 0, 1331, 714, 1332, 1333, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 1334, 1335,
232, 0, 233, 234, 235, 236, 0, 0, 715, 0,
238, 239, 240, 241, 716, 242, 243, 0, 244, 245,
246, 247, 248, 249, 0, 717, 250, 251, 0, 0,
0, 718, 0, 0, 0, 252, 253, 254, 255, 256,
257, 1336, 1337, 260, 0, 261, 0, 262, 263, 264,
265, 266, 0, 267, 268, 269, 0, 0, 270, 271,
1005, 273, 274, 0, 275, 276, 277, 0, 278, 279,
0, 280, 281, 282, 283, 0, 285, 286, 287, 0,
0, 289, 0, 290, 1338, 292, 0, 293, 0, 294,
719, 0, 720, 295, 296, 297, 0, 298, 0, 0,
300, 0, 301, 302, 303, 304, 305, 721, 306, 307,
308, 0, 309, 310, 311, 312, 313, 314, 0, 315,
722, 0, 317, 318, 319, 320, 1339, 1340, 0, 1341,
0, 324, 723, 724, 325, 725, 326, 327, 328, 329,
330, 331, 332, 0, 333, 0, 726, 335, 727, 0,
336, 337, 338, 0, 0, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 1342, 728, 1343,
353, 354, 0, 0, 356, 357, 729, 358, 0, 0,
360, 1344, 362, 363, 364, 0, 365, 0, 0, 366,
367, 368, 0, 0, 0, 730, 731, 732, 0, 371,
372, 373, 374, 375, 376, 377, 0, 378, 0, 380,
0, 382, 383, 384, 0, 385, 386, 387, 388, 389,
390, 391, 1345, 393, 394, 395, 396, 0, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 0, 407,
408, 733, 409, 410, 0, 412, 413, 414, 415, 416,
417, 418, 419, 0, 420, 421, 422, 423, 424, 0,
425, 0, 427, 428, 734, 429, 1347, 431, 0, 432,
433, 434, 435, 436, 437, 438, 439, 440, 441, 0,
0, 443, 444, 0, 445, 446, 447, 448, 449, 450,
0, 1348, 1349, 0, 0, 453, 0, 455, 0, 0,
457, 458, 459, 460, 461, 462, 463, 0, 0, 464,
465, 466, 467, 468, 0, 0, 469, 470, 471, 472,
473, 0, 1350, 0, 476, 735, 477, 478, 479, 0,
0, 480, 0, 0, 481, 482, 483, 484, 485, 0,
1330, 0, 0, 0, 0, 0, 0, 0, 495, 496,
497, 200, 201, 202, 203, 204, 205, 206, 207, 0,
209, 210, 211, 0, 0, 0, 0, 0, 0, 0,
212, 213, 0, 214, 215, 713, 216, 217, 218, 0,
0, 714, 0, 0, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 0, 0, 232, 0, 233, 234,
235, 236, 0, 0, 715, 0, 238, 239, 240, 241,
716, 242, 243, 0, 244, 245, 246, 247, 248, 249,
0, 717, 250, 251, 0, 0, 0, 718, 0, 0,
0, 252, 253, 254, 255, 256, 257, 0, 0, 260,
0, 261, 0, 262, 263, 264, 265, 266, 0, 267,
268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
275, 276, 277, 0, 278, 279, 0, 280, 281, 282,
283, 0, 285, 286, 287, 0, 0, 289, 0, 290,
0, 292, 0, 293, 0, 294, 719, 0, 720, 295,
296, 297, 0, 298, 0, 0, 300, 0, 301, 302,
303, 304, 305, 721, 306, 307, 308, 0, 309, 310,
311, 312, 313, 314, 0, 315, 722, 0, 317, 318,
319, 320, 0, 0, 0, 0, 0, 324, 723, 724,
325, 725, 326, 327, 328, 329, 330, 331, 332, 0,
333, 0, 726, 335, 727, 0, 336, 337, 338, 0,
0, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 0, 728, 0, 353, 354, 0, 0,
356, 357, 729, 358, 0, 0, 360, 0, 362, 363,
364, 0, 365, 0, 0, 366, 367, 368, 0, 0,
0, 730, 731, 732, 0, 371, 372, 373, 374, 375,
376, 377, 0, 378, 0, 380, 0, 382, 383, 384,
0, 385, 386, 387, 388, 389, 390, 391, 0, 393,
394, 395, 396, 0, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 0, 407, 408, 733, 409, 410,
0, 412, 413, 414, 415, 416, 417, 418, 419, 0,
420, 421, 422, 423, 424, 0, 425, 0, 427, 428,
734, 429, 0, 431, 0, 432, 433, 434, 435, 436,
437, 438, 439, 440, 441, 0, 0, 443, 444, 0,
445, 446, 447, 448, 449, 450, 0, 0, 0, 0,
0, 453, 0, 455, 0, 0, 457, 458, 459, 460,
461, 462, 463, 0, 0, 464, 465, 466, 467, 468,
0, 0, 469, 470, 471, 472, 473, 0, 0, 0,
476, 735, 477, 478, 479, 0, 0, 480, 0, 0,
481, 482, 483, 484, 485, 0, 0, 0, 0, 0,
0, 0, 0, 0, 495, 496, 497
};
static const yytype_int16 yycheck[] =
{
0, 0, 0, 0, 0, 0, 47, 16, 164, 524,
184, 11, 33, 888, 21, 24, 925, 706, 659, 26,
20, 737, 20, 617, 618, 619, 896, 711, 1207, 623,
892, 1212, 961, 7, 947, 1107, 1173, 797, 1346, 1495,
14, 1032, 776, 780, 759, 1596, 21, 47, 832, 565,
172, 26, 567, 569, 788, 12, 2199, 1109, 180, 974,
850, 42, 181, 579, 1216, 551, 1565, 186, 1303, 859,
666, 1003, 1004, 22, 1225, 1212, 195, 41, 1107, 17,
1579, 2357, 1363, 2481, 33, 2755, 1399, 1929, 1160, 2531,
1022, 2533, 516, 1207, 1384, 879, 1384, 2962, 779, 20,
1384, 782, 1384, 837, 1156, 1384, 840, 1531, 1384, 790,
916, 845, 1757, 1976, 2676, 1267, 2179, 2658, 852, 2694,
1130, 1272, 1273, 2355, 3047, 1887, 1888, 861, 1627, 2353,
2354, 1160, 1259, 2406, 3244, 2676, 560, 3265, 2996, 1452,
3003, 0, 3226, 586, 0, 151, 166, 0, 0, 1199,
2935, 2936, 0, 1160, 2290, 3659, 38, 3467, 166, 2974,
2868, 753, 1107, 1401, 788, 9, 166, 703, 2930, 703,
51, 0, 44, 1408, 11, 0, 662, 2680, 2681, 2682,
2683, 2684, 2685, 3207, 5, 31, 0, 5, 11, 0,
51, 105, 903, 58, 3905, 66, 5, 0, 3886, 5,
5, 35, 18, 914, 13, 37, 2021, 13, 5, 79,
925, 5, 22, 36, 103, 1160, 13, 150, 2060, 29,
992, 993, 72, 35, 37, 105, 190, 145, 0, 2351,
150, 5, 51, 96, 5, 22, 830, 9, 3898, 5,
58, 22, 29, 66, 1050, 25, 1018, 5, 108, 5,
22, 5, 5, 5, 150, 170, 3788, 182, 151, 0,
5, 189, 22, 188, 58, 4, 2483, 68, 9, 5,
9, 196, 242, 150, 9, 76, 2412, 2399, 127, 193,
83, 22, 103, 3791, 2126, 246, 2128, 242, 150, 64,
275, 230, 122, 259, 1366, 3, 4, 5, 5, 163,
815, 9, 242, 9, 120, 60, 110, 3170, 4, 245,
70, 158, 152, 9, 51, 247, 3858, 77, 232, 96,
34, 150, 219, 183, 290, 150, 26, 27, 272, 150,
319, 115, 18, 117, 1094, 1051, 150, 1366, 24, 150,
0, 170, 22, 4208, 104, 170, 5, 22, 32, 29,
524, 142, 155, 319, 4042, 219, 170, 3865, 1349, 170,
1076, 78, 252, 106, 392, 141, 280, 3812, 259, 152,
392, 68, 384, 5, 834, 130, 1382, 1092, 150, 76,
32, 897, 1097, 1098, 424, 76, 3890, 39, 428, 511,
1846, 3836, 147, 567, 1400, 103, 11, 180, 170, 290,
117, 5, 430, 522, 1336, 1337, 5, 526, 430, 150,
354, 4276, 1344, 310, 174, 296, 30, 18, 537, 309,
68, 1366, 11, 83, 167, 295, 912, 111, 319, 170,
279, 68, 208, 555, 120, 296, 1311, 953, 229, 428,
115, 426, 564, 11, 103, 1315, 310, 963, 3472, 149,
394, 151, 68, 230, 301, 169, 426, 156, 242, 975,
426, 197, 3970, 424, 396, 305, 4008, 428, 36, 408,
245, 426, 3980, 108, 1189, 352, 2693, 296, 1530, 342,
188, 255, 1197, 4143, 927, 266, 426, 2990, 8, 103,
426, 11, 978, 426, 297, 155, 376, 506, 66, 2256,
2257, 961, 430, 211, 2261, 339, 1187, 4195, 426, 3071,
430, 4199, 372, 293, 364, 430, 430, 327, 273, 120,
360, 1255, 1306, 1257, 413, 305, 4237, 339, 1265, 1601,
3071, 352, 1247, 426, 430, 1250, 1251, 1327, 1590, 352,
327, 1301, 551, 552, 2301, 2302, 587, 379, 4236, 430,
706, 352, 3662, 424, 426, 4087, 372, 428, 388, 296,
430, 426, 1334, 1335, 345, 383, 347, 505, 430, 430,
374, 1343, 1601, 1486, 1882, 335, 356, 426, 383, 504,
426, 425, 1634, 589, 509, 422, 586, 587, 586, 392,
1324, 598, 413, 600, 1456, 602, 2438, 1312, 3461, 422,
429, 608, 191, 1089, 429, 237, 3630, 428, 426, 1125,
1891, 1147, 367, 1147, 1206, 429, 3324, 426, 429, 1243,
426, 426, 631, 598, 427, 600, 429, 602, 585, 426,
4134, 1493, 426, 608, 609, 610, 3451, 297, 612, 3401,
1502, 815, 651, 3405, 3219, 417, 418, 327, 393, 658,
170, 3675, 661, 662, 663, 426, 1601, 429, 424, 3969,
426, 352, 428, 3238, 628, 8, 587, 412, 426, 2945,
426, 191, 426, 426, 426, 695, 417, 418, 417, 418,
802, 426, 417, 418, 384, 3188, 393, 695, 429, 290,
812, 426, 4196, 430, 1154, 695, 392, 697, 697, 697,
697, 697, 697, 1941, 352, 412, 1858, 1418, 1887, 417,
418, 417, 418, 638, 1895, 352, 1427, 681, 2950, 426,
1431, 417, 418, 1529, 1239, 1531, 1437, 1438, 248, 333,
334, 430, 392, 1805, 659, 1541, 352, 372, 2500, 1545,
2502, 16, 1140, 5, 1455, 867, 710, 1553, 1554, 5,
8, 103, 677, 11, 103, 96, 96, 2256, 2257, 3783,
1566, 1567, 2261, 11, 685, 51, 3790, 427, 3, 429,
96, 1577, 96, 698, 159, 108, 1805, 1237, 660, 5,
18, 150, 664, 98, 759, 1557, 1558, 292, 752, 18,
152, 8, 96, 103, 11, 2637, 2638, 129, 1805, 413,
252, 159, 2301, 2302, 419, 420, 421, 422, 2930, 132,
424, 1405, 426, 427, 428, 2366, 430, 2632, 232, 230,
2635, 2636, 831, 3755, 2639, 3757, 1876, 107, 417, 418,
419, 420, 421, 422, 2649, 23, 95, 22, 697, 141,
75, 697, 2978, 1915, 697, 697, 1918, 1307, 163, 697,
183, 419, 420, 421, 422, 187, 150, 132, 1499, 1500,
1805, 153, 151, 159, 278, 246, 1326, 145, 3977, 3978,
74, 1587, 230, 83, 352, 2056, 342, 3275, 3000, 132,
232, 74, 120, 105, 303, 106, 248, 392, 237, 1918,
125, 120, 744, 413, 414, 415, 2658, 417, 418, 419,
420, 421, 422, 912, 219, 248, 208, 222, 112, 196,
190, 1371, 1428, 3, 2676, 5, 925, 842, 4028, 112,
252, 1436, 232, 1439, 4052, 430, 2105, 927, 108, 927,
115, 20, 870, 191, 230, 1451, 788, 862, 863, 864,
175, 152, 244, 191, 230, 155, 167, 26, 27, 958,
925, 40, 430, 372, 250, 307, 930, 3742, 932, 218,
934, 220, 936, 1423, 938, 939, 940, 378, 2095, 978,
1915, 945, 261, 1918, 191, 237, 1492, 258, 430, 312,
1496, 237, 1498, 352, 3746, 1501, 986, 108, 83, 3751,
248, 2753, 3754, 378, 74, 310, 184, 3860, 321, 120,
1424, 342, 342, 183, 83, 3675, 1006, 102, 98, 1050,
296, 237, 316, 307, 292, 237, 342, 3949, 342, 1462,
378, 259, 314, 102, 74, 4135, 42, 952, 303, 264,
259, 248, 112, 319, 366, 324, 1036, 248, 133, 372,
354, 1752, 144, 1052, 413, 5, 321, 5, 1563, 974,
1050, 343, 290, 1062, 133, 4164, 260, 3499, 4142, 428,
252, 290, 112, 1072, 272, 1239, 8, 260, 321, 11,
413, 414, 415, 163, 417, 418, 419, 420, 421, 422,
1089, 319, 378, 1092, 1093, 11, 28, 98, 1097, 1098,
319, 385, 407, 2850, 76, 184, 2853, 2854, 2855, 2856,
2857, 2858, 2859, 2860, 2861, 2862, 103, 303, 4031, 3967,
36, 2043, 1118, 1133, 1134, 352, 1136, 1092, 3981, 52,
4144, 103, 1097, 1098, 335, 1133, 1134, 60, 1136, 219,
365, 426, 222, 1133, 1134, 107, 1136, 392, 373, 1599,
66, 376, 346, 103, 44, 103, 354, 3423, 377, 270,
166, 96, 163, 346, 170, 2912, 2913, 3433, 103, 417,
418, 419, 420, 421, 422, 97, 268, 1565, 1287, 417,
418, 419, 420, 421, 422, 430, 3449, 191, 1103, 359,
260, 1579, 1972, 74, 3946, 1149, 394, 3419, 154, 95,
3414, 207, 372, 430, 94, 301, 413, 414, 415, 3431,
417, 418, 419, 420, 421, 422, 303, 153, 219, 2281,
260, 222, 0, 1894, 1189, 2287, 2497, 312, 190, 313,
310, 112, 1197, 2504, 60, 1150, 4091, 4092, 60, 1944,
426, 4094, 246, 312, 331, 427, 280, 1952, 430, 1954,
76, 173, 3305, 252, 2119, 211, 1184, 342, 342, 191,
232, 429, 2281, 3815, 1263, 105, 374, 1232, 2287, 2129,
1941, 2123, 1436, 342, 1383, 191, 346, 373, 430, 175,
159, 103, 1247, 133, 3815, 1250, 1251, 321, 211, 3401,
1399, 1962, 182, 3405, 11, 380, 1211, 232, 2078, 2079,
2080, 2081, 386, 1218, 130, 1417, 346, 392, 3873, 310,
2090, 380, 1266, 4166, 1426, 384, 248, 323, 426, 3071,
1991, 147, 218, 392, 220, 312, 3131, 407, 259, 374,
2499, 1246, 3137, 3138, 3139, 3140, 3141, 3142, 372, 2113,
230, 426, 1847, 1452, 259, 2791, 2281, 1312, 275, 66,
2985, 230, 2287, 193, 18, 342, 259, 426, 241, 290,
24, 2850, 4217, 1278, 2853, 2854, 2855, 2856, 2857, 2858,
2859, 2860, 2861, 2862, 2374, 290, 305, 1292, 314, 260,
259, 426, 8, 1495, 3237, 11, 1385, 1893, 319, 345,
1305, 347, 232, 380, 2883, 2499, 1810, 332, 106, 1563,
335, 1243, 28, 4256, 319, 392, 407, 343, 105, 2823,
232, 290, 57, 58, 370, 237, 319, 2118, 308, 341,
342, 374, 309, 2912, 2913, 426, 362, 356, 427, 2225,
2710, 430, 2710, 2134, 2135, 145, 2710, 2138, 2710, 426,
280, 2710, 2584, 2144, 2710, 155, 313, 273, 145, 1899,
3282, 273, 3284, 3200, 4019, 197, 120, 18, 2575, 167,
170, 352, 312, 24, 286, 346, 2171, 426, 170, 2531,
2532, 2533, 1462, 426, 1462, 342, 259, 2780, 2274, 120,
177, 413, 414, 415, 4144, 417, 418, 419, 420, 421,
422, 426, 342, 356, 354, 1937, 3762, 3763, 131, 378,
2201, 417, 418, 419, 420, 421, 422, 290, 1472, 2305,
1474, 1522, 1476, 5, 1478, 3, 1480, 9, 3906, 386,
1484, 1935, 11, 1513, 1513, 1513, 1513, 1513, 1513, 8,
380, 19, 11, 230, 394, 232, 319, 115, 171, 117,
2443, 367, 392, 290, 2340, 367, 1461, 36, 1990, 28,
145, 1550, 1463, 3985, 1508, 292, 413, 4, 60, 120,
3693, 139, 9, 321, 66, 191, 76, 392, 393, 305,
165, 428, 319, 49, 76, 290, 426, 66, 1543, 1544,
75, 2031, 1521, 2505, 1499, 1500, 1551, 75, 290, 299,
1555, 1556, 294, 2655, 129, 259, 2531, 2532, 2533, 2740,
1528, 103, 2743, 105, 319, 1570, 141, 1572, 2468, 250,
145, 103, 427, 2675, 372, 430, 1606, 319, 312, 95,
356, 115, 248, 117, 3371, 3372, 290, 393, 1593, 124,
1595, 250, 2108, 115, 3746, 117, 2655, 125, 105, 3751,
259, 2845, 3754, 3184, 154, 3778, 412, 3780, 342, 1648,
3482, 3483, 187, 294, 232, 319, 2675, 139, 393, 237,
426, 2167, 2367, 173, 242, 2869, 2142, 344, 154, 4057,
305, 290, 3784, 208, 294, 177, 259, 412, 319, 279,
425, 309, 170, 1847, 2458, 430, 380, 175, 150, 307,
392, 426, 1801, 259, 80, 3961, 172, 1806, 259, 319,
1809, 211, 191, 192, 304, 200, 201, 290, 170, 244,
177, 3200, 191, 307, 1629, 392, 393, 252, 393, 214,
2655, 356, 1831, 1638, 290, 211, 344, 20, 1840, 290,
232, 38, 426, 173, 1846, 237, 105, 412, 232, 2189,
2675, 251, 218, 165, 220, 2446, 235, 40, 242, 426,
344, 73, 59, 3024, 230, 237, 1865, 2484, 319, 2390,
242, 145, 48, 230, 259, 232, 385, 3572, 3573, 248,
309, 273, 151, 1770, 392, 393, 264, 426, 2364, 3004,
358, 165, 258, 1892, 286, 2512, 3898, 413, 414, 415,
368, 417, 418, 419, 420, 421, 422, 197, 392, 393,
179, 9, 1792, 1792, 1815, 1770, 1817, 1916, 426, 2273,
280, 2275, 2276, 301, 2485, 194, 2719, 2322, 2519, 295,
2521, 291, 427, 2885, 193, 430, 205, 1936, 3369, 426,
1939, 366, 426, 246, 3946, 345, 246, 347, 1753, 259,
1755, 251, 430, 1754, 8, 315, 356, 11, 1957, 344,
2892, 346, 340, 427, 330, 426, 430, 367, 1967, 345,
370, 347, 11, 232, 28, 367, 2885, 48, 2256, 2257,
290, 1980, 1871, 2261, 294, 290, 358, 365, 427, 294,
1989, 430, 3371, 3372, 370, 373, 368, 36, 376, 5,
3032, 2872, 2873, 141, 10, 303, 304, 145, 8, 319,
386, 11, 18, 1857, 319, 2810, 38, 2608, 3049, 3050,
409, 280, 2613, 2301, 2302, 141, 84, 66, 34, 145,
427, 300, 193, 430, 2430, 2431, 249, 2433, 417, 418,
419, 420, 421, 422, 413, 414, 415, 428, 417, 418,
419, 420, 421, 422, 2986, 303, 304, 600, 601, 602,
2885, 2816, 605, 606, 607, 249, 312, 326, 3705, 246,
208, 425, 615, 259, 2688, 345, 430, 347, 3150, 307,
3152, 8, 392, 3155, 11, 3157, 246, 392, 1977, 1944,
2456, 251, 208, 151, 3731, 3732, 342, 1952, 21, 1954,
345, 2910, 347, 26, 290, 18, 244, 1912, 294, 36,
129, 24, 392, 393, 3066, 42, 344, 307, 3070, 2459,
3072, 179, 141, 424, 2013, 426, 145, 428, 244, 2667,
2668, 2669, 2021, 319, 380, 352, 194, 191, 421, 66,
4163, 4143, 145, 426, 3839, 428, 392, 205, 3870, 427,
2814, 64, 430, 421, 344, 246, 84, 3218, 426, 1581,
428, 3070, 1584, 3072, 392, 393, 409, 427, 187, 227,
430, 2567, 2763, 3815, 249, 307, 2767, 2768, 3366, 2770,
426, 2772, 2773, 427, 38, 2040, 430, 307, 2077, 208,
2781, 191, 427, 2879, 248, 430, 410, 411, 426, 3258,
113, 2203, 392, 393, 965, 966, 2208, 120, 3001, 3002,
123, 44, 344, 2102, 2554, 409, 2556, 2097, 2097, 2108,
2811, 193, 2817, 151, 344, 244, 3243, 2064, 3040, 3694,
3695, 3696, 3697, 252, 419, 2709, 426, 234, 426, 166,
428, 3066, 300, 170, 149, 3070, 427, 3072, 248, 430,
430, 179, 85, 2142, 427, 426, 2061, 430, 3900, 427,
392, 393, 175, 427, 191, 192, 194, 48, 2322, 2609,
150, 427, 392, 393, 430, 427, 109, 205, 430, 427,
207, 427, 430, 3920, 430, 427, 427, 427, 430, 430,
430, 124, 189, 2633, 426, 128, 319, 427, 427, 227,
430, 430, 424, 426, 426, 2701, 426, 2703, 235, 426,
428, 428, 2952, 146, 395, 312, 2171, 230, 246, 232,
345, 248, 347, 2689, 2360, 2691, 3705, 426, 161, 242,
2384, 427, 134, 427, 430, 3714, 430, 250, 3769, 427,
426, 307, 430, 2939, 428, 342, 259, 366, 427, 2351,
134, 430, 3731, 3732, 427, 392, 393, 430, 3147, 413,
414, 415, 134, 417, 418, 419, 420, 421, 422, 145,
233, 234, 300, 2942, 2943, 134, 427, 290, 344, 430,
345, 294, 347, 380, 2305, 928, 2752, 427, 931, 429,
933, 246, 935, 2789, 937, 392, 323, 2399, 941, 2739,
427, 2391, 2392, 430, 237, 424, 319, 427, 427, 428,
430, 307, 245, 2809, 414, 415, 2415, 417, 418, 419,
420, 421, 422, 206, 2764, 2305, 392, 393, 105, 426,
427, 18, 429, 427, 374, 427, 430, 24, 430, 2319,
427, 8, 246, 430, 11, 278, 374, 427, 344, 312,
430, 427, 427, 427, 430, 430, 430, 426, 2338, 427,
426, 28, 430, 427, 377, 427, 430, 427, 430, 36,
430, 2351, 427, 427, 429, 42, 430, 64, 2367, 342,
700, 2402, 702, 3415, 2345, 2346, 2347, 414, 415, 2829,
417, 418, 419, 420, 421, 422, 392, 393, 241, 66,
2380, 2380, 2380, 2380, 2380, 2380, 309, 3124, 427, 2849,
2365, 430, 2367, 427, 3446, 427, 430, 380, 430, 2399,
3856, 427, 2402, 197, 430, 427, 113, 426, 430, 392,
426, 60, 427, 120, 2874, 430, 123, 8, 31, 2344,
11, 3920, 427, 427, 392, 430, 430, 3499, 232, 395,
427, 2550, 3147, 430, 427, 38, 427, 430, 2557, 430,
3406, 426, 3408, 426, 0, 36, 427, 2456, 3377, 430,
2910, 42, 2850, 38, 361, 2853, 2854, 2855, 2856, 2857,
2858, 2859, 2860, 2861, 2862, 2390, 427, 427, 175, 430,
430, 427, 259, 427, 430, 66, 430, 3267, 427, 166,
145, 430, 134, 170, 2658, 2883, 427, 427, 427, 430,
430, 430, 73, 427, 427, 3674, 430, 430, 21, 276,
134, 426, 2676, 134, 191, 192, 395, 134, 2627, 134,
430, 134, 3584, 134, 2912, 2913, 134, 246, 134, 134,
207, 246, 134, 230, 134, 232, 134, 83, 2537, 342,
31, 54, 426, 206, 145, 242, 246, 146, 145, 426,
5, 5, 426, 250, 67, 232, 426, 3353, 235, 145,
426, 426, 259, 269, 3499, 3584, 2565, 80, 426, 426,
426, 248, 5, 5, 251, 426, 426, 426, 3279, 426,
426, 426, 426, 129, 5, 426, 3287, 3288, 5, 170,
426, 426, 3297, 290, 426, 141, 426, 294, 426, 145,
426, 426, 426, 426, 150, 118, 426, 426, 256, 155,
191, 192, 158, 430, 160, 31, 86, 206, 31, 145,
145, 244, 319, 319, 352, 352, 307, 428, 352, 352,
352, 307, 352, 2632, 147, 352, 2635, 2636, 76, 152,
2639, 187, 307, 311, 134, 203, 323, 352, 352, 3584,
2649, 246, 237, 352, 235, 2654, 68, 373, 246, 2658,
175, 426, 208, 242, 352, 352, 426, 248, 76, 430,
97, 2780, 259, 374, 352, 48, 374, 2676, 352, 2791,
377, 352, 48, 352, 250, 2794, 352, 3586, 352, 37,
2689, 3594, 2691, 2658, 352, 352, 37, 307, 244, 352,
2665, 2666, 21, 2812, 430, 2670, 252, 352, 352, 246,
395, 2676, 246, 191, 426, 3221, 3222, 392, 426, 426,
31, 383, 30, 2722, 20, 134, 232, 103, 374, 214,
386, 426, 242, 385, 232, 248, 413, 414, 415, 2704,
417, 418, 419, 420, 421, 422, 31, 145, 425, 68,
31, 297, 2751, 2752, 431, 197, 426, 3884, 308, 134,
134, 3467, 374, 276, 134, 374, 134, 134, 241, 352,
236, 150, 2762, 2762, 388, 3225, 8, 3478, 97, 11,
2695, 350, 409, 426, 224, 426, 3292, 3293, 3294, 224,
3709, 11, 430, 350, 307, 319, 342, 426, 426, 118,
313, 352, 354, 316, 36, 2720, 150, 427, 3509, 3510,
42, 430, 3200, 2728, 164, 164, 187, 2732, 2930, 426,
366, 247, 242, 352, 352, 374, 430, 307, 147, 342,
75, 2746, 307, 152, 66, 348, 417, 418, 419, 420,
421, 422, 426, 389, 374, 391, 392, 237, 361, 427,
430, 237, 2817, 195, 426, 195, 352, 3581, 309, 197,
237, 246, 38, 326, 3565, 3566, 253, 245, 352, 18,
430, 352, 290, 386, 280, 24, 307, 316, 424, 198,
352, 427, 428, 429, 4053, 352, 191, 31, 3000, 2920,
191, 191, 374, 191, 191, 2810, 128, 2896, 374, 2930,
245, 413, 30, 426, 424, 424, 352, 3071, 352, 352,
426, 352, 413, 134, 316, 64, 145, 147, 3027, 242,
316, 426, 134, 3985, 392, 246, 246, 3377, 162, 162,
2920, 145, 3437, 31, 166, 134, 246, 246, 170, 145,
2930, 430, 170, 170, 316, 170, 395, 3850, 19, 156,
2949, 2922, 2923, 2924, 2925, 221, 430, 276, 246, 191,
192, 430, 48, 3759, 113, 241, 197, 427, 427, 427,
150, 120, 263, 342, 123, 207, 150, 427, 3679, 427,
3681, 3682, 301, 3371, 3372, 430, 255, 409, 307, 352,
427, 3692, 389, 427, 313, 3104, 13, 427, 3107, 427,
13, 426, 3921, 235, 427, 409, 389, 297, 427, 246,
208, 426, 2927, 2928, 2929, 380, 248, 427, 413, 173,
427, 134, 427, 342, 427, 344, 175, 427, 352, 246,
3480, 249, 426, 426, 395, 352, 352, 237, 3544, 3545,
181, 3547, 361, 134, 134, 352, 250, 3631, 208, 264,
3985, 264, 216, 371, 216, 216, 307, 352, 3508, 352,
352, 307, 319, 352, 307, 352, 352, 386, 352, 3988,
3520, 307, 3071, 3992, 3993, 352, 134, 352, 352, 352,
37, 230, 352, 232, 191, 191, 191, 191, 191, 3088,
3087, 323, 3091, 242, 3093, 191, 191, 3, 424, 427,
3774, 250, 31, 222, 292, 310, 3071, 4006, 208, 413,
259, 361, 427, 96, 3564, 427, 430, 430, 3117, 3118,
392, 50, 3087, 426, 3989, 427, 246, 245, 31, 3925,
3990, 159, 3131, 352, 374, 374, 307, 307, 3137, 3138,
3139, 3140, 3141, 3142, 3996, 294, 3998, 430, 3147, 307,
249, 132, 3151, 82, 132, 191, 424, 126, 150, 11,
145, 385, 427, 427, 427, 427, 58, 426, 150, 427,
319, 426, 4234, 427, 430, 427, 31, 426, 158, 427,
427, 247, 3147, 145, 374, 417, 418, 419, 420, 421,
422, 3190, 3191, 3192, 3193, 3160, 3161, 374, 361, 352,
426, 352, 181, 145, 361, 352, 3171, 352, 137, 352,
307, 427, 66, 3914, 307, 4234, 427, 427, 96, 4281,
191, 361, 195, 191, 427, 3190, 427, 4289, 377, 425,
425, 145, 426, 392, 427, 176, 22, 23, 430, 168,
395, 27, 71, 430, 430, 31, 32, 33, 426, 35,
344, 352, 38, 39, 427, 41, 3255, 43, 3889, 3709,
316, 155, 4281, 150, 3254, 3254, 191, 3968, 197, 191,
4289, 191, 3187, 3437, 203, 191, 150, 427, 426, 285,
3785, 3960, 48, 194, 430, 4081, 194, 254, 427, 3401,
427, 3206, 427, 3405, 426, 426, 48, 160, 390, 4234,
4001, 390, 427, 232, 427, 242, 430, 352, 150, 392,
66, 413, 361, 3228, 3313, 3820, 175, 3705, 237, 237,
430, 430, 352, 134, 191, 413, 3714, 110, 237, 152,
150, 374, 3297, 374, 31, 388, 121, 96, 425, 316,
392, 426, 392, 3731, 3732, 150, 4281, 426, 178, 249,
150, 426, 426, 285, 4289, 379, 426, 4222, 427, 329,
427, 0, 194, 426, 391, 294, 262, 427, 427, 298,
246, 286, 427, 392, 145, 304, 352, 31, 426, 426,
237, 217, 311, 173, 426, 133, 172, 173, 174, 175,
319, 177, 178, 427, 180, 181, 182, 250, 184, 328,
186, 48, 188, 304, 190, 304, 3515, 336, 194, 195,
196, 3401, 426, 48, 252, 3405, 426, 230, 3527, 8,
374, 246, 11, 344, 140, 249, 277, 60, 60, 116,
378, 430, 379, 3939, 31, 3434, 285, 150, 389, 28,
283, 145, 392, 3949, 83, 121, 175, 36, 3459, 246,
246, 31, 426, 42, 3444, 3444, 3453, 249, 387, 303,
249, 427, 391, 392, 427, 426, 48, 108, 372, 303,
426, 3921, 17, 3388, 3389, 3390, 3391, 66, 28, 277,
133, 426, 1290, 2063, 755, 2367, 1925, 2512, 3453, 697,
129, 1984, 3070, 2654, 4000, 3842, 3584, 4006, 3650, 3879,
3247, 3951, 141, 3884, 1098, 3624, 145, 2437, 3505, 4093,
3888, 150, 2159, 4170, 3784, 4216, 155, 4221, 4126, 158,
4125, 160, 4185, 2441, 3651, 4029, 3211, 2054, 2054, 3066,
2532, 1386, 3920, 3216, 3218, 2049, 2721, 4226, 3988, 4281,
3505, 4289, 3992, 3993, 2675, 2660, 4192, 3822, 187, 1378,
4104, 4178, 3825, 3518, 3519, 26, 3966, 3256, 3523, 3524,
3300, 4053, 954, 1888, 3258, 552, 4072, 2611, 4204, 208,
4283, 0, 4021, 3572, 3573, 1754, 1463, 166, 1755, 2380,
3240, 170, 3445, 2983, 4089, 1124, 2381, 3586, 1790, 1143,
2393, 3590, 676, 3592, 1142, 2387, 3595, 3596, 1145, 1789,
1773, 2407, 191, 192, 2930, 244, 2399, 689, 3947, 3606,
3407, 1149, 3758, 252, 2984, 2895, 681, 3923, 207, 4157,
2887, 3785, 4158, 2030, 4161, 2384, 2319, 2317, 2227, 2979,
1630, -1, -1, -1, 3746, -1, -1, -1, -1, 3751,
-1, 3606, 3754, 232, -1, -1, 235, 3646, -1, -1,
-1, 3815, -1, -1, 83, -1, 3820, -1, 297, 248,
-1, -1, 251, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3784, -1, 3673, -1, -1, -1, -1, -1,
-1, 8, -1, -1, 11, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3694, 3695, 3696, 3697, -1,
129, 28, -1, 342, -1, -1, -1, 3819, -1, 36,
-1, -1, 141, -1, -1, 42, 145, -1, 504, -1,
-1, 150, -1, 509, -1, 511, 155, 366, 514, 158,
516, 160, 518, -1, 323, -1, 522, -1, 524, 66,
526, 527, -1, -1, 3856, -1, -1, -1, 534, -1,
389, 537, 391, 392, -1, -1, 3746, -1, 187, -1,
-1, 3751, 3677, -1, 3754, 551, -1, -1, -1, 555,
-1, -1, -1, -1, 560, -1, -1, -1, 564, 208,
-1, 567, -1, -1, -1, 424, 3898, -1, 427, 428,
429, -1, -1, -1, -1, -1, 582, -1, -1, -1,
-1, 587, -1, -1, -1, -1, -1, 3771, -1, -1,
-1, -1, -1, -1, -1, 244, 3815, -1, -1, -1,
-1, -1, -1, 252, 413, 414, 415, -1, 417, 418,
419, 420, 421, 422, 3946, -1, -1, -1, -1, 166,
3839, 430, 628, 170, 3843, -1, -1, 31, -1, -1,
3815, -1, 638, 639, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 191, 192, 50, -1, 297, -1,
-1, 657, -1, 659, 660, -1, 662, -1, 664, -1,
207, 3871, 3871, -1, -1, -1, -1, -1, -1, -1,
-1, 677, -1, -1, -1, 681, -1, -1, 82, -1,
-1, 687, -1, -1, -1, 232, -1, -1, 235, -1,
-1, -1, 698, 342, -1, -1, -1, -1, -1, -1,
-1, 248, -1, -1, 710, 4089, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 366, -1, -1,
-1, -1, -1, -1, 3859, -1, -1, -1, -1, -1,
-1, -1, -1, 137, -1, 18, 3946, -1, -1, -1,
389, 24, 391, 392, -1, -1, 752, -1, -1, -1,
-1, -1, -1, -1, 3889, 761, 762, -1, -1, -1,
-1, -1, -1, -1, 168, -1, 49, -1, -1, -1,
-1, -1, -1, -1, -1, 424, 323, -1, 427, 428,
429, 64, -1, -1, -1, -1, -1, 4006, -1, -1,
-1, -1, -1, 197, -1, -1, 802, -1, -1, 203,
-1, 4133, -1, -1, -1, -1, 812, -1, -1, 815,
-1, 4143, 95, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 828, -1, -1, -1, -1, -1, 232, -1,
113, -1, -1, -1, -1, -1, 842, 120, -1, -1,
123, 4173, 848, 849, 3979, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 862, 863, 864, 865,
-1, 867, -1, -1, -1, -1, 413, 414, 415, -1,
417, 418, 419, 420, 421, 422, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 892, 893, 894, 172,
294, -1, 175, -1, 298, -1, -1, -1, -1, -1,
304, -1, -1, -1, -1, -1, 912, 311, -1, -1,
916, -1, -1, -1, -1, 319, -1, -1, -1, 925,
-1, -1, -1, 8, 328, -1, 11, -1, -1, -1,
-1, -1, 336, -1, -1, 218, -1, 220, -1, -1,
-1, 947, 948, 28, -1, -1, 952, 230, 954, 232,
-1, 36, -1, 4285, -1, -1, -1, 42, 8, 242,
-1, 11, -1, -1, -1, 971, -1, 250, 974, -1,
-1, 977, 978, -1, -1, 258, 259, -1, 28, -1,
-1, 66, -1, 387, 990, -1, 36, 391, 4239, -1,
-1, -1, 42, -1, 4204, 4204, 4204, 4204, 4204, 4204,
-1, -1, -1, -1, -1, -1, -1, 290, -1, -1,
-1, 294, 295, 1019, -1, 4234, 66, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 4239,
4239, 4239, 4239, 4239, 4239, -1, 319, -1, -1, -1,
-1, 1047, 1048, -1, 1050, -1, -1, 330, -1, 4234,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1067, 4281, -1, -1, -1, -1, -1, -1, -1,
4289, -1, -1, 4283, 4283, 4283, 4283, 4283, 4283, -1,
-1, 166, -1, 1089, -1, 170, -1, -1, -1, -1,
-1, 1097, 1098, -1, 377, -1, 4281, 1103, -1, -1,
1106, -1, -1, -1, 4289, -1, 191, 192, -1, -1,
-1, -1, -1, -1, -1, -1, 166, -1, -1, -1,
170, -1, 207, -1, -1, -1, -1, -1, -1, 1135,
-1, -1, -1, 1139, 1140, -1, -1, -1, -1, -1,
-1, 191, 192, 1149, 1150, 1151, -1, 232, -1, -1,
235, -1, -1, -1, -1, -1, -1, 207, -1, -1,
-1, 1167, -1, 248, -1, -1, 251, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 232, -1, -1, 235, -1, -1, -1, -1,
-1, -1, -1, 1199, -1, -1, -1, -1, 248, -1,
-1, 251, -1, -1, -1, 1211, 1212, -1, -1, -1,
-1, -1, 1218, -1, -1, 1221, -1, -1, -1, -1,
-1, -1, -1, -1, 3, -1, -1, -1, -1, 8,
-1, -1, 11, 1239, -1, -1, -1, -1, 323, -1,
1246, -1, -1, -1, -1, -1, -1, -1, -1, 28,
-1, -1, 31, -1, -1, -1, -1, 36, -1, -1,
1266, -1, -1, 42, 8, -1, -1, 11, 1274, 1275,
1276, 1277, 1278, 323, -1, -1, -1, -1, -1, -1,
-1, 1287, -1, 1289, 28, -1, 1292, 66, -1, -1,
-1, -1, 36, -1, -1, -1, -1, 1303, 42, 1305,
-1, -1, -1, -1, -1, -1, -1, 1313, 1314, -1,
-1, -1, -1, 1319, -1, -1, -1, -1, -1, -1,
-1, -1, 66, -1, -1, -1, -1, -1, 413, 414,
415, -1, 417, 418, 419, 420, 421, 422, -1, -1,
-1, -1, -1, -1, -1, 430, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1365,
-1, -1, -1, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, -1, 425, -1, 1383, -1, -1,
-1, -1, -1, 1389, 1390, 1391, 1392, 166, -1, -1,
-1, 170, -1, 1399, -1, -1, -1, -1, -1, -1,
-1, -1, 1408, -1, -1, -1, -1, -1, -1, -1,
-1, 1417, 191, 192, -1, -1, -1, -1, 1424, -1,
1426, -1, 166, -1, -1, -1, 170, -1, 207, -1,
1436, -1, -1, -1, -1, 1441, -1, -1, -1, -1,
-1, -1, -1, -1, 1450, -1, 1452, 191, 192, -1,
1456, 1457, -1, 232, -1, 1461, 235, 1463, -1, -1,
-1, -1, -1, 207, -1, -1, -1, -1, -1, 248,
-1, -1, 251, -1, -1, -1, -1, -1, -1, -1,
1486, -1, -1, -1, -1, -1, -1, 1493, 232, 1495,
-1, 235, -1, 1499, 1500, -1, 1502, -1, -1, -1,
-1, -1, 1508, -1, 248, -1, -1, 251, -1, -1,
-1, -1, -1, -1, -1, 1521, 1522, -1, -1, 1525,
-1, -1, -1, 1529, -1, 1531, -1, -1, -1, -1,
-1, -1, 1538, -1, -1, 1541, -1, -1, -1, 1545,
-1, -1, -1, -1, 323, -1, -1, 1553, 1554, -1,
-1, -1, -1, -1, -1, 1561, -1, 1563, 1564, 1565,
1566, 1567, -1, -1, -1, -1, -1, -1, 1574, 1575,
-1, 1577, -1, 1579, 1580, -1, -1, 1583, -1, 323,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1600, -1, -1, -1, 1604, 1605,
-1, -1, -1, 1609, -1, -1, -1, 1613, -1, 1615,
1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, -1, 1625,
-1, -1, -1, 1629, 1630, -1, 1632, -1, -1, -1,
-1, -1, 1638, -1, 413, 414, 415, -1, 417, 418,
419, 420, 421, 422, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 413,
414, 415, -1, 417, 418, 419, 420, 421, 422, -1,
-1, -1, -1, 427, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-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, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 8, -1, -1, 11,
-1, -1, -1, -1, -1, -1, 36, 1753, -1, 1755,
-1, 1757, 42, -1, 8, -1, -1, 11, -1, -1,
-1, -1, -1, -1, 36, -1, -1, -1, -1, -1,
42, -1, -1, -1, 28, -1, 66, -1, -1, -1,
-1, -1, 36, -1, -1, -1, -1, 1793, 42, 1795,
-1, -1, -1, -1, 66, 1801, -1, -1, -1, -1,
1806, -1, -1, 1809, 1810, -1, -1, -1, -1, 1815,
-1, 1817, 66, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1831, -1, -1, 1834, -1,
-1, -1, -1, -1, 1840, -1, 1842, 1843, 1844, -1,
1846, 1847, -1, 1849, -1, 1851, -1, 1853, 1854, -1,
-1, 1857, -1, -1, -1, -1, 128, -1, -1, 1865,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1876, -1, -1, -1, -1, -1, 166, -1, -1, -1,
170, -1, -1, -1, -1, -1, 1892, -1, -1, 1895,
-1, -1, -1, -1, 166, 1901, -1, -1, 170, -1,
1906, 191, 192, -1, -1, -1, 1912, -1, -1, -1,
1916, -1, 166, -1, -1, -1, 170, 207, -1, 191,
192, -1, 1928, 1929, -1, -1, -1, -1, -1, 1935,
1936, -1, -1, 1939, -1, 207, -1, 191, 192, -1,
-1, -1, 232, -1, 1950, 235, -1, -1, -1, -1,
-1, 1957, -1, 207, -1, -1, 8, -1, 248, 11,
50, 1967, -1, 235, -1, -1, -1, -1, -1, -1,
1976, -1, 1978, 1979, 1980, -1, 248, -1, 232, -1,
-1, 235, -1, 1989, 36, -1, -1, -1, -1, -1,
42, -1, 82, -1, 248, -1, -1, 251, -1, -1,
2006, -1, -1, -1, -1, -1, -1, -1, 2014, 2015,
2016, 2017, 2018, 2019, 66, -1, -1, -1, -1, -1,
-1, -1, -1, 2029, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 323, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 137, -1, -1,
2056, 323, -1, -1, 2060, 2061, -1, -1, -1, 2065,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 323,
-1, -1, -1, -1, -1, -1, 128, 8, 168, -1,
11, -1, -1, -1, -1, 2091, -1, -1, -1, -1,
-1, -1, 2098, 2099, -1, -1, -1, 28, -1, -1,
-1, -1, 2108, -1, -1, 36, -1, -1, -1, -1,
-1, 42, -1, 203, 166, -1, -1, 2123, 170, 2125,
2126, 2127, 2128, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, -1, 66, 2142, -1, -1, 191,
192, 2147, 232, -1, -1, 417, 418, 419, 420, 421,
422, -1, -1, 2159, -1, 207, -1, -1, -1, 413,
414, 415, -1, 417, 418, 419, 420, 421, 422, 259,
-1, 2177, -1, 427, -1, -1, -1, -1, -1, 8,
-1, -1, 11, 235, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2199, -1, -1, 248, 2203, 8, 28,
290, 11, 2208, -1, 294, -1, -1, 36, 298, -1,
-1, -1, 2218, 42, 304, 8, -1, -1, 11, 2225,
2226, 311, -1, -1, -1, 2231, 36, -1, -1, 319,
-1, -1, 42, -1, -1, 166, -1, 66, 328, 170,
-1, -1, -1, 36, -1, -1, 336, -1, -1, 42,
2256, 2257, -1, -1, -1, 2261, 66, -1, -1, -1,
191, 192, -1, -1, -1, -1, -1, 2273, 2274, 2275,
2276, 323, -1, 66, -1, -1, 207, -1, -1, -1,
2286, -1, -1, 2289, -1, 2291, 2292, -1, -1, -1,
-1, -1, -1, -1, -1, 2301, 2302, 387, -1, 2305,
-1, 232, -1, -1, 235, -1, -1, -1, -1, -1,
-1, -1, 2318, -1, 2320, -1, 2322, 248, 2324, -1,
251, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 2340, 128, -1, 166, 2344, -1,
-1, 170, -1, -1, -1, 2351, -1, 2353, 2354, 2355,
-1, -1, -1, -1, -1, -1, 166, -1, -1, -1,
170, 2367, 191, 192, 2370, 417, 418, 419, 420, 421,
422, -1, -1, 166, -1, 2381, -1, 170, 207, -1,
2386, 191, 192, -1, 2390, -1, -1, 2393, -1, -1,
-1, -1, 323, 2399, -1, -1, 2402, 207, 191, 192,
2406, -1, -1, 232, -1, -1, 235, -1, -1, 2415,
-1, -1, -1, -1, 207, -1, -1, -1, -1, 248,
-1, -1, 251, -1, -1, 235, -1, -1, -1, -1,
2436, -1, 2438, -1, -1, -1, -1, 2443, 248, -1,
-1, -1, 235, -1, -1, -1, -1, -1, -1, -1,
2456, -1, -1, -1, -1, 248, -1, -1, 2464, -1,
2466, 2467, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 8, -1, -1, 11, -1,
-1, 31, 413, 414, 415, -1, 417, 418, 419, 420,
421, 422, -1, -1, 323, -1, 427, -1, -1, -1,
50, -1, -1, 36, -1, -1, -1, -1, -1, 42,
-1, -1, -1, 323, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
323, -1, 82, 66, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 2550, -1, -1, -1, -1, -1,
-1, 2557, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 7, -1, -1, -1, -1, -1, 13, 14, -1,
-1, -1, -1, 19, -1, 21, -1, -1, -1, -1,
26, -1, 28, -1, 413, 414, 415, 137, 417, 418,
419, 420, 421, 422, -1, 128, -1, -1, 427, -1,
46, -1, -1, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, -1, -1, -1, -1, 168, -1,
-1, 2627, -1, -1, 417, 418, 419, 420, 421, 422,
-1, 2637, 2638, 166, -1, 8, -1, 170, 11, -1,
-1, -1, -1, -1, -1, -1, -1, 197, -1, 50,
-1, -1, -1, 203, -1, 28, -1, -1, 191, 192,
-1, -1, -1, 36, -1, -1, -1, -1, -1, 42,
-1, -1, -1, -1, 207, -1, -1, -1, -1, -1,
-1, 82, 232, 2689, -1, 2691, -1, -1, -1, 2695,
-1, -1, -1, 66, -1, -1, -1, -1, -1, -1,
-1, -1, 235, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2719, 2720, 248, -1, -1, -1, -1,
-1, -1, 2728, -1, -1, -1, 2732, -1, -1, -1,
-1, -1, 178, -1, -1, -1, 137, -1, -1, -1,
2746, 187, -1, 189, 294, 191, 2752, 193, 298, -1,
-1, -1, -1, -1, 304, -1, -1, -1, -1, -1,
-1, 311, -1, -1, -1, -1, -1, 168, 2774, 319,
-1, 2777, -1, -1, 2780, -1, -1, -1, 328, -1,
-1, -1, -1, -1, -1, 2791, 336, -1, 2794, -1,
323, -1, -1, 166, -1, -1, -1, 170, -1, -1,
-1, -1, 203, -1, 2810, -1, 2812, -1, -1, -1,
-1, -1, 2818, -1, -1, -1, -1, -1, 191, 192,
2826, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2836, 232, -1, -1, 207, -1, 2842, 387, 2844, -1,
-1, 391, -1, -1, 2850, -1, -1, 2853, 2854, 2855,
2856, 2857, 2858, 2859, 2860, 2861, 2862, -1, -1, 232,
2866, 2867, 235, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2879, -1, 248, -1, 2883, 251, -1,
-1, 2887, -1, -1, 417, 418, 419, 420, 421, 422,
-1, 2897, -1, 294, 2900, 296, 2902, 298, -1, -1,
-1, -1, -1, 304, -1, 2911, 2912, 2913, -1, -1,
311, 2917, -1, -1, 2920, -1, -1, -1, 319, -1,
-1, 2927, 2928, 2929, 2930, 2931, -1, 328, -1, 2935,
2936, -1, 18, -1, 2940, 336, -1, -1, 24, -1,
2946, -1, 2948, -1, 2950, -1, -1, -1, -1, -1,
323, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 49, -1, -1, -1, 2973, -1, -1,
-1, -1, -1, 2979, -1, -1, -1, 2983, 64, 2985,
-1, -1, -1, -1, -1, -1, 387, -1, -1, -1,
-1, -1, -1, -1, 3000, 3001, 3002, -1, 3004, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
-1, -1, 3018, 3019, 3020, 3021, -1, -1, -1, -1,
-1, 3027, -1, -1, -1, -1, -1, 113, -1, -1,
-1, -1, -1, -1, 120, 8, -1, 123, 11, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3056, -1, -1, -1, 427, -1, -1, -1, -1, -1,
-1, -1, -1, 36, -1, -1, 512, -1, -1, 42,
-1, -1, -1, 519, -1, -1, -1, -1, -1, -1,
-1, -1, 528, 529, -1, -1, 172, 533, -1, 175,
-1, -1, -1, 66, -1, -1, -1, 543, 3104, -1,
-1, 3107, -1, -1, -1, -1, -1, -1, -1, -1,
556, -1, -1, -1, -1, 3121, -1, -1, -1, -1,
-1, -1, -1, -1, 570, -1, -1, 573, -1, 575,
-1, 577, 218, -1, 220, -1, -1, -1, -1, -1,
-1, 3147, -1, -1, 230, -1, 232, -1, -1, -1,
-1, -1, -1, -1, -1, 128, 242, -1, -1, -1,
-1, -1, -1, -1, 250, -1, 612, -1, -1, -1,
-1, -1, 258, 259, -1, -1, -1, -1, -1, 18,
-1, 3187, -1, -1, -1, 24, -1, -1, 634, -1,
636, -1, 3198, 166, 3200, -1, -1, 170, -1, -1,
3206, -1, -1, -1, 290, -1, -1, -1, 294, 295,
-1, -1, 3218, -1, -1, -1, -1, -1, 191, 192,
-1, -1, 3228, -1, -1, 64, -1, -1, -1, -1,
-1, 3237, -1, 319, 207, -1, -1, 3243, -1, -1,
-1, 3247, -1, 689, 330, -1, -1, -1, -1, -1,
-1, -1, -1, 3259, 3260, -1, -1, -1, -1, -1,
-1, -1, 235, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 113, 248, 3282, -1, 3284, 8,
-1, 120, 11, -1, 123, -1, -1, -1, -1, -1,
-1, 377, -1, -1, 3300, -1, -1, -1, -1, 28,
-1, -1, -1, -1, -1, -1, -1, 36, -1, -1,
3316, -1, -1, 42, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 175, 66, -1, -1,
-1, -1, -1, -1, -1, 791, -1, 3353, -1, -1,
323, -1, -1, -1, -1, -1, -1, 3363, 3364, -1,
806, -1, -1, -1, -1, 3371, 3372, -1, -1, -1,
3376, 817, -1, -1, -1, -1, 3382, 3383, 824, -1,
3386, -1, 3388, 3389, 3390, 3391, -1, -1, -1, 3395,
836, 230, 3398, 232, -1, 3401, -1, -1, -1, 3405,
-1, -1, -1, 242, -1, 3411, -1, -1, 3414, -1,
-1, 250, -1, 3419, -1, -1, -1, -1, -1, 3425,
259, -1, 868, -1, -1, 3431, -1, -1, -1, -1,
-1, 3437, -1, -1, -1, -1, -1, 166, -1, 3445,
-1, 170, -1, 3449, 417, 418, 419, 420, 421, 422,
-1, 290, -1, 3459, -1, 294, 3462, -1, -1, -1,
-1, -1, 191, 192, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3482, 3483, 207, -1,
319, -1, -1, -1, 930, -1, 932, -1, 934, -1,
936, -1, 938, 939, 940, -1, -1, -1, -1, 945,
3506, -1, -1, 232, 0, -1, 235, -1, -1, 3515,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 248,
-1, 3527, 251, -1, -1, -1, -1, -1, 24, -1,
26, 27, -1, -1, -1, -1, -1, -1, 377, -1,
3546, -1, -1, -1, -1, 41, -1, -1, -1, -1,
-1, -1, -1, 18, 3560, -1, -1, -1, -1, 24,
-1, -1, -1, -1, -1, 61, -1, 63, 64, -1,
-1, -1, -1, 69, -1, 71, -1, -1, -1, -1,
3586, -1, -1, -1, -1, 81, -1, 83, 3594, -1,
-1, -1, -1, -1, 323, -1, -1, -1, -1, 64,
-1, -1, -1, 99, -1, -1, 102, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3622, -1, 114, -1,
116, -1, -1, -1, 120, -1, -1, -1, -1, -1,
126, -1, -1, -1, -1, -1, -1, 133, -1, 135,
-1, -1, -1, 3649, 3650, 141, -1, -1, 113, -1,
-1, -1, -1, -1, -1, 120, -1, -1, 123, 155,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3677, -1, -1, -1, -1, -1, -1, 1124, -1,
-1, -1, -1, -1, 413, 414, 415, 3693, 417, 418,
419, 420, 421, 422, -1, -1, -1, -1, 427, 3705,
-1, -1, -1, -1, -1, -1, -1, -1, 3714, -1,
175, -1, -1, 209, 210, -1, -1, -1, -1, 215,
-1, -1, -1, -1, -1, 3731, 3732, 223, -1, 3735,
-1, -1, -1, -1, -1, -1, 3742, -1, 234, 1185,
3746, -1, -1, -1, -1, 3751, -1, -1, 3754, 3755,
-1, 3757, -1, 3759, 3760, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 230, -1, 232, -1, -1,
-1, -1, 3778, -1, 3780, 271, -1, 242, 3784, 3785,
3786, 3787, 3788, -1, -1, 250, 282, -1, -1, -1,
-1, 287, -1, 289, 259, -1, -1, -1, 294, -1,
-1, -1, -1, 299, -1, -1, 302, -1, -1, -1,
306, -1, -1, 3819, 3820, 311, 312, -1, -1, -1,
-1, -1, -1, 319, -1, 290, 322, -1, -1, 294,
-1, -1, -1, -1, 330, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3850, -1, 342, -1, -1, -1,
3856, -1, -1, 3859, 319, -1, -1, -1, -1, -1,
-1, -1, -1, 359, 3870, -1, 3872, -1, -1, -1,
-1, -1, -1, 369, -1, -1, -1, 8, 3884, 375,
11, -1, -1, 3889, 380, -1, -1, -1, -1, -1,
-1, 3897, 3898, -1, -1, -1, 392, 28, -1, -1,
-1, -1, 18, -1, 8, 36, -1, 11, 24, -1,
-1, 42, 377, -1, 3920, -1, -1, 3923, -1, 3925,
-1, -1, 8, -1, 28, 11, -1, -1, 1374, -1,
426, -1, 36, 429, -1, 66, 3942, -1, 42, -1,
3946, 1387, 28, 3949, -1, -1, -1, -1, 64, 3955,
36, -1, -1, -1, -1, -1, 42, -1, -1, -1,
-1, -1, 66, -1, -1, -1, -1, -1, -1, 3975,
-1, -1, -1, 3979, -1, -1, -1, -1, -1, 1425,
66, -1, -1, 1429, -1, -1, -1, -1, -1, -1,
3996, 3997, 3998, 3999, 1440, -1, 1442, 113, 1444, -1,
4006, -1, -1, 1449, 120, -1, -1, 123, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4026, -1, -1, -1, -1, -1, 1472, -1, 1474, -1,
1476, -1, 1478, -1, 1480, 166, -1, -1, 1484, 170,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 173, 174, -1, -1, 177, 178, 175,
191, 192, 166, -1, -1, -1, 170, -1, -1, -1,
-1, -1, -1, -1, 194, 4081, 207, -1, -1, -1,
166, 4087, -1, 4089, 170, -1, -1, 191, 192, -1,
-1, -1, 4098, -1, -1, -1, -1, -1, -1, -1,
-1, 232, -1, 207, 235, 191, 192, -1, -1, -1,
-1, -1, -1, -1, 230, -1, 232, 248, -1, -1,
251, 207, -1, 4129, -1, -1, 242, 4133, 232, -1,
-1, 235, -1, -1, 250, -1, -1, 4143, -1, -1,
-1, -1, -1, 259, 248, -1, 232, 251, -1, 235,
-1, 4157, -1, -1, 4160, 4161, -1, 4163, -1, -1,
-1, -1, 248, -1, -1, 251, -1, 4173, -1, -1,
-1, -1, -1, -1, 290, 4181, -1, -1, 294, -1,
-1, -1, -1, -1, -1, -1, 8, -1, -1, 11,
-1, -1, 323, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 4208, 319, -1, -1, 28, -1, -1, -1,
-1, -1, 4218, -1, 36, -1, -1, 4223, -1, 323,
42, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 323, -1, -1,
-1, -1, -1, -1, 66, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 377, -1, -1, -1, -1, -1, -1, -1, -1,
4276, -1, -1, -1, -1, -1, -1, -1, -1, 4285,
-1, -1, 413, 414, 415, -1, 417, 418, 419, 420,
421, 422, -1, -1, -1, -1, 427, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 413,
414, 415, -1, 417, 418, 419, 420, 421, 422, -1,
-1, -1, -1, 427, -1, -1, -1, 413, 414, 415,
-1, 417, 418, 419, 420, 421, 422, -1, -1, -1,
-1, 427, -1, -1, 166, -1, -1, 18, 170, -1,
-1, -1, -1, 24, -1, -1, 1802, 1803, -1, -1,
-1, 1807, 1808, -1, -1, 1811, -1, -1, -1, 191,
192, -1, -1, -1, -1, 1821, -1, -1, -1, -1,
-1, -1, 1828, -1, -1, 207, 1832, 1833, -1, -1,
1836, 1837, 1838, 64, 514, -1, -1, -1, 518, -1,
-1, -1, 1848, -1, 1850, -1, -1, -1, -1, -1,
232, -1, -1, 235, 534, -1, -1, -1, -1, -1,
1866, -1, -1, -1, -1, 1871, 248, 8, -1, 251,
11, 172, -1, -1, -1, -1, -1, -1, -1, 180,
-1, -1, 113, -1, -1, 8, -1, 28, 11, 120,
-1, -1, 123, -1, -1, 36, 1902, 1903, 1904, 1905,
-1, 42, -1, 1909, 1910, 28, -1, -1, -1, -1,
-1, 1917, 8, 36, 1920, 11, -1, -1, 1924, 42,
-1, -1, -1, -1, -1, 66, -1, -1, -1, -1,
-1, -1, 28, -1, 1940, -1, -1, -1, -1, -1,
36, 323, -1, 66, 175, 1951, 42, 1953, -1, -1,
-1, -1, 1958, -1, -1, -1, -1, 1963, 1964, 1965,
1966, -1, 1968, -1, -1, -1, -1, -1, -1, -1,
66, -1, -1, -1, -1, 1981, 1982, 1983, -1, -1,
-1, -1, -1, -1, -1, -1, 1992, 1993, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 230,
-1, 232, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 242, -1, -1, -1, -1, -1, -1, -1, 250,
-1, -1, -1, -1, -1, 166, -1, -1, 259, 170,
-1, 413, 414, 415, -1, 417, 418, 419, 420, 421,
422, -1, -1, 166, -1, 427, 2052, 170, -1, -1,
191, 192, -1, -1, -1, -1, -1, -1, -1, 290,
-1, -1, -1, 294, -1, -1, 207, -1, 191, 192,
166, -1, -1, -1, 170, -1, -1, -1, -1, -1,
-1, 761, 762, -1, 207, -1, -1, -1, 319, -1,
-1, 232, -1, -1, 235, 191, 192, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 248, -1, 232,
251, 207, 235, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 248, -1, -1, 251, -1,
-1, -1, -1, 21, -1, -1, 232, -1, -1, 235,
-1, -1, -1, -1, -1, 33, 377, -1, 828, -1,
-1, -1, 248, -1, -1, 251, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 54, -1, 848, 849,
-1, -1, -1, -1, -1, -1, -1, -1, 8, 67,
-1, 11, 323, -1, -1, 865, -1, -1, -1, 2195,
-1, -1, 80, -1, -1, -1, -1, -1, 28, -1,
323, -1, -1, -1, -1, -1, 36, -1, -1, 97,
511, -1, 42, 893, 894, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 323, -1, -1,
118, -1, -1, -1, -1, -1, 66, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 136, -1,
-1, -1, -1, -1, 555, -1, -1, -1, -1, 147,
-1, -1, -1, 564, 152, -1, -1, -1, -1, -1,
158, -1, 413, 414, 415, -1, 417, 418, 419, 420,
421, 422, -1, -1, -1, 173, 427, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
-1, -1, -1, -1, 427, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 145, -1, 413, 414, 415,
150, 417, 418, 419, 420, 421, 422, -1, -1, 8,
-1, 427, 11, -1, -1, -1, 166, -1, -1, -1,
170, -1, -1, -1, -1, -1, -1, -1, -1, 28,
-1, -1, -1, 32, -1, -1, 657, 36, -1, -1,
248, 191, 192, 42, -1, -1, -1, -1, -1, -1,
258, -1, -1, -1, -1, -1, -1, 207, 8, -1,
-1, 11, -1, -1, -1, -1, 687, 66, 276, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 28, -1,
-1, -1, 232, -1, -1, 235, 36, -1, -1, -1,
2416, 2417, 42, 301, -1, -1, -1, 305, 248, 307,
-1, 251, -1, -1, -1, 313, -1, -1, 316, -1,
-1, -1, 111, -1, -1, -1, 66, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 342, -1, 344, -1, -1, -1,
348, -1, -1, -1, -1, -1, -1, -1, 356, -1,
2476, 2477, -1, 361, -1, 2481, -1, -1, -1, -1,
2486, 2487, 2488, -1, -1, 373, -1, 166, -1, -1,
-1, 170, -1, 323, -1, -1, -1, -1, 386, -1,
-1, 802, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 812, 191, 192, -1, -1, 2522, 2523, 2524, 2525,
-1, -1, -1, -1, -1, -1, -1, -1, 207, -1,
-1, -1, -1, 834, -1, -1, 166, -1, -1, -1,
170, 1221, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 2558, 232, -1, -1, 235, -1, -1, -1,
-1, 191, 192, -1, -1, -1, 867, -1, -1, 248,
-1, -1, 251, -1, -1, -1, -1, 207, -1, -1,
-1, -1, -1, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, 1274, 1275, 1276, 1277, -1, -1,
-1, -1, 232, -1, -1, 235, -1, -1, -1, -1,
-1, -1, -1, -1, 2620, 916, -1, -1, 248, -1,
-1, 251, 2628, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1313, 1314, -1, -1, -1, -1, 1319,
270, -1, -1, -1, 323, 8, -1, -1, 11, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
961, -1, -1, -1, -1, 28, -1, -1, 8, -1,
-1, 11, -1, 36, -1, -1, -1, -1, -1, 42,
-1, -1, -1, -1, 2690, 1365, -1, -1, 28, 990,
-1, 31, -1, 323, 2700, 374, 36, -1, -1, -1,
-1, -1, 42, 66, -1, -1, -1, 337, -1, 1389,
1390, 1391, 1392, -1, -1, -1, -1, -1, 1019, -1,
-1, 2727, -1, 2729, -1, -1, 66, -1, -1, -1,
-1, -1, -1, -1, 413, 414, 415, -1, 417, 418,
419, 420, 421, 422, -1, -1, 1047, 1048, -1, 1050,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 2765,
-1, 1441, -1, -1, -1, -1, 1067, -1, 18, -1,
1450, -1, -1, 2779, 24, -1, -1, 1457, -1, -1,
-1, 144, -1, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 166, -1, 1106, 1107, 170, -1, -1,
-1, -1, -1, -1, 64, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 166, -1, 191, 192,
170, -1, -1, -1, 1135, -1, -1, -1, 1139, 1140,
-1, -1, -1, -1, 207, -1, -1, -1, -1, -1,
-1, 191, 192, 1154, -1, -1, -1, -1, -1, 1160,
-1, -1, -1, 113, -1, -1, -1, 207, -1, 232,
120, -1, 235, 123, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 248, -1, -1, 251, -1,
-1, -1, 232, -1, -1, 235, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 268, 1207, -1, 248, -1,
-1, 251, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1604, 175, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1237, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 8, -1, -1, 11,
323, -1, -1, -1, -1, -1, -1, -1, 8, -1,
-1, 11, -1, -1, -1, -1, 28, -1, -1, -1,
230, -1, 232, 323, 36, -1, -1, -1, 28, -1,
42, 31, 242, -1, -1, -1, 36, -1, -1, -1,
250, 3007, 42, 3009, -1, -1, 1307, 3013, -1, 259,
-1, -1, -1, -1, 66, -1, -1, -1, -1, -1,
-1, -1, 3028, -1, -1, 1326, 66, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3045,
290, -1, -1, -1, 294, 1346, -1, -1, 3054, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
-1, -1, -1, -1, -1, 1366, -1, -1, -1, 319,
1371, -1, -1, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, -1, -1, -1, -1, 3094, 3095,
3096, 3097, 3098, 3099, 3100, -1, -1, -1, -1, 3105,
3106, -1, 3108, 3109, 3110, 3111, 3112, 3113, 3114, -1,
-1, -1, -1, -1, 166, -1, 1417, 3123, 170, 3125,
3126, -1, 1423, -1, -1, 1426, 166, 377, -1, -1,
170, -1, -1, -1, -1, -1, -1, -1, -1, 191,
192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 191, 192, -1, -1, 207, -1, -1, -1, -1,
-1, -1, 1842, 1843, 1844, -1, -1, 207, -1, 1849,
-1, 1851, -1, 1853, 1854, -1, -1, -1, -1, -1,
232, -1, -1, 235, -1, -1, -1, -1, 3194, 3195,
3196, -1, 232, 3199, 1495, 235, 248, -1, -1, 251,
-1, -1, -1, -1, -1, -1, -1, -1, 248, -1,
-1, 251, -1, 265, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1529, -1,
1531, -1, 834, -1, -1, -1, -1, 1538, -1, -1,
1541, -1, -1, -1, 1545, -1, -1, -1, -1, 18,
-1, -1, 1553, 1554, -1, 24, -1, -1, -1, -1,
1561, -1, -1, 1564, 1565, 1566, 1567, -1, -1, 3275,
1950, 323, -1, 1574, 1575, -1, 1577, -1, 1579, 1580,
-1, -1, 1583, 323, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 64, -1, -1, 1599, 1600,
1601, -1, -1, -1, 1605, -1, -1, -1, 1609, -1,
-1, -1, 1613, -1, 1615, 1616, 1617, 1618, 1619, 1620,
1621, 1622, 1623, -1, 1625, -1, 2006, -1, -1, 1630,
-1, 1632, -1, -1, 2014, 2015, 2016, 2017, 2018, 2019,
-1, -1, -1, -1, 113, -1, -1, -1, -1, -1,
-1, 120, -1, -1, 123, -1, -1, -1, -1, 961,
-1, 413, 414, 415, -1, 417, 418, 419, 420, 421,
422, -1, 834, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, -1, 8, -1, -1, 11, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 28, 175, -1, -1, -1,
-1, -1, -1, 36, -1, -1, -1, -1, 2098, 42,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 66, -1, 2125, -1, 2127, 8, -1,
-1, 11, -1, -1, -1, -1, 1757, -1, -1, -1,
-1, 230, -1, 232, -1, -1, -1, -1, 28, -1,
-1, 31, -1, 242, -1, -1, 36, -1, -1, -1,
-1, 250, 42, -1, -1, 3491, 3492, 3493, 3494, -1,
259, -1, -1, -1, -1, -1, -1, -1, -1, 961,
-1, -1, -1, -1, 1805, -1, 66, -1, -1, -1,
3516, 3517, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 290, 3528, 3529, -1, 294, -1, 150, -1, -1,
-1, -1, -1, 1834, -1, -1, -1, 8, 2218, 1840,
11, -1, -1, 166, -1, 1846, -1, 170, -1, -1,
319, -1, 1154, -1, -1, -1, -1, 28, -1, -1,
31, -1, -1, -1, -1, 36, -1, -1, 191, 192,
-1, 42, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1882, -1, -1, 207, -1, 1887, 1888, -1, -1,
-1, -1, -1, -1, -1, 66, -1, -1, 1899, -1,
-1, -1, -1, -1, -1, 1207, 166, -1, 377, 232,
170, -1, 235, -1, 1915, -1, -1, 1918, -1, -1,
-1, -1, -1, -1, -1, 248, -1, -1, 251, -1,
1092, 191, 192, -1, -1, 1237, 3642, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 207, -1, -1,
8, -1, -1, 11, -1, -1, -1, -1, -1, 3665,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28, -1, 232, -1, -1, 235, -1, -1, 36, 3685,
-1, -1, -1, -1, 42, -1, -1, -1, 248, -1,
-1, 251, 1154, -1, -1, 166, -1, -1, -1, 170,
323, -1, -1, -1, -1, 1307, -1, -1, 66, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
191, 192, -1, -1, 1326, -1, -1, -1, 2029, -1,
2031, -1, -1, -1, -1, -1, 207, -1, -1, -1,
-1, -1, -1, -1, 1346, 1207, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 232, -1, 323, 235, 3771, -1, -1, -1, 1371,
-1, -1, -1, -1, -1, 1237, -1, 248, -1, -1,
251, -1, -1, -1, 2464, -1, 2466, 2467, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
-1, -1, -1, -1, 2105, -1, -1, -1, 166, -1,
-1, -1, 170, -1, -1, -1, -1, -1, -1, -1,
-1, 1423, -1, 3829, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 191, 192, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1307, 2147, -1, -1, 207,
-1, -1, 323, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, 3869, 1326, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 232, -1, -1, 235, 657, -1,
-1, -1, -1, -1, 1346, -1, -1, -1, 2189, -1,
248, -1, -1, 251, -1, -1, -1, -1, -1, -1,
3906, -1, 2203, -1, -1, -1, -1, 2208, 687, 1371,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 2225, 2226, -1, -1, -1, -1,
2231, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 413, 414, 415, -1, 417, 418, 419, 420,
421, 422, -1, -1, -1, 2256, 2257, -1, -1, -1,
2261, 1423, -1, -1, -1, 323, -1, -1, -1, -1,
-1, -1, 2273, 2274, 2275, 2276, -1, 3983, 8, -1,
2281, 11, -1, -1, -1, 2286, 2287, -1, 2289, -1,
2291, 349, -1, -1, -1, -1, -1, 1599, 28, -1,
2301, 2302, -1, -1, 2305, -1, 36, -1, -1, -1,
-1, -1, 42, -1, -1, -1, -1, 2318, -1, 2320,
-1, -1, -1, 2324, -1, -1, -1, -1, -1, -1,
1632, -1, -1, -1, -1, -1, 66, -1, -1, 2340,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2351, 4057, 2353, 2354, 2355, 413, 414, 415, -1, 417,
418, 419, 420, 421, 422, -1, -1, -1, -1, 2370,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381, -1, -1, -1, -1, 2386, -1, -1, -1, -1,
-1, -1, 2393, -1, 2774, -1, -1, 2777, 2399, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 4127, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2436, 166, 1599, 2818, -1,
170, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2459, -1,
-1, 191, 192, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 207, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2499, 2500,
-1, 2502, 232, -1, -1, 235, -1, -1, -1, -1,
-1, 990, -1, -1, -1, -1, -1, -1, 248, -1,
-1, 251, -1, -1, -1, -1, -1, -1, -1, -1,
2531, 2532, 2533, -1, -1, -1, -1, -1, -1, -1,
1019, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2554, -1, 2556, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1047, 1048,
-1, 1050, -1, -1, -1, -1, -1, -1, -1, -1,
1882, -1, -1, -1, -1, 1887, 1888, -1, 1067, -1,
-1, -1, -1, 323, -1, -1, -1, 1899, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2609, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1106, -1, -1,
-1, -1, 2633, -1, -1, 21, -1, -1, 3018, 3019,
3020, 3021, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 2655, -1, 1135, 2658, -1, -1,
1139, 1140, -1, -1, -1, -1, -1, -1, 21, -1,
-1, -1, -1, -1, 2675, 2676, -1, -1, -1, -1,
-1, 67, -1, 413, 414, 415, -1, 417, 418, 419,
420, 421, 422, -1, 80, -1, -1, -1, -1, -1,
-1, 54, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 97, -1, -1, 67, 68, -1, 103, -1, -1,
1882, -1, -1, 76, -1, 1887, 1888, 80, -1, 2031,
-1, -1, 118, -1, -1, -1, -1, 1899, 2739, -1,
-1, -1, -1, -1, 97, -1, -1, -1, -1, -1,
136, -1, 2753, -1, -1, -1, -1, -1, -1, -1,
-1, 147, -1, 2764, -1, 118, 152, -1, -1, -1,
-1, -1, 158, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 136, -1, -1, -1, 173, -1, -1,
2791, -1, -1, -1, 147, -1, -1, -1, -1, 152,
-1, -1, -1, 2105, -1, -1, -1, -1, -1, -1,
-1, -1, 198, -1, -1, -1, -1, -1, 3198, -1,
173, -1, -1, -1, -1, 2826, -1, -1, 2829, -1,
-1, -1, -1, -1, -1, 2836, -1, -1, -1, -1,
-1, 2842, -1, 2844, -1, 198, -1, -1, 2849, 2850,
-1, -1, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860,
2861, 2862, 248, -1, -1, 2866, 2867, -1, -1, 2031,
-1, -1, -1, 2874, -1, -1, -1, -1, 2879, -1,
-1, -1, 2883, -1, 2885, -1, 2887, 2189, -1, -1,
276, -1, -1, -1, -1, 248, 2897, -1, -1, 2900,
-1, 2902, -1, -1, -1, -1, -1, -1, -1, 2910,
2911, 2912, 2913, -1, -1, 301, 2917, -1, -1, 2920,
-1, 307, -1, 276, -1, -1, -1, 313, -1, 2930,
316, -1, -1, -1, -1, -1, -1, -1, -1, 2940,
-1, -1, -1, 2105, -1, -1, -1, 2948, 301, 2950,
-1, -1, 305, -1, 307, -1, 342, -1, 344, -1,
313, -1, 348, 316, -1, -1, -1, -1, -1, -1,
356, -1, 2973, -1, -1, 361, -1, -1, 2979, -1,
-1, -1, -1, -1, 2985, -1, -1, 373, -1, 342,
-1, 344, -1, -1, -1, 348, -1, -1, -1, 3000,
386, -1, -1, 356, -1, -1, -1, -1, 361, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2189, -1, -1,
-1, -1, -1, 386, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 2353, 2354, 2355, -1, -1, -1, -1, -1, 1538,
-1, -1, -1, -1, -1, 3066, -1, -1, -1, 3070,
3071, 3072, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1561, -1, -1, 1564, -1, -1, 1567, -1,
-1, -1, -1, -1, -1, 1574, 1575, -1, -1, -1,
-1, 1580, -1, -1, 1583, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1600, -1, -1, -1, -1, 1605, -1, -1, -1,
1609, -1, -1, -1, 1613, -1, 1615, 1616, 1617, 1618,
1619, 1620, 1621, 1622, 1623, -1, 1625, -1, -1, -1,
-1, 1630, -1, 1632, -1, -1, -1, 2459, -1, -1,
-1, -1, -1, -1, -1, -1, 3546, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3560, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2499, 2500, 3200,
2502, -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, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 2554, -1, 2556, -1, -1, 3258, 3259, 3260,
-1, -1, -1, -1, 1063, -1, -1, -1, -1, 3649,
-1, -1, -1, -1, -1, -1, -1, -1, 1757, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2459, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2609, -1, -1,
-1, -1, -1, -1, -1, 3316, -1, -1, -1, -1,
-1, 1120, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 2633, -1, -1, -1, -1, -1, 2499, 2500, -1,
2502, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3353, -1, -1, 1834, 2658, -1, -1, -1,
-1, -1, 3363, 3364, -1, 3366, -1, -1, -1, -1,
3371, 3372, -1, -1, 2676, 3376, 3377, -1, -1, -1,
-1, 3382, 3383, -1, -1, 3386, -1, -1, -1, -1,
-1, -1, 2554, -1, 2556, -1, -1, -1, -1, -1,
3401, -1, -1, -1, 3405, -1, 3786, 3787, 3788, -1,
-1, -1, -1, 3414, -1, -1, -1, -1, 3419, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3431, -1, -1, -1, -1, -1, -1, 2739, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2609, -1, -1,
-1, 2753, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3462, 2764, -1, -1, -1, -1, -1, -1, -1,
-1, 2633, -1, -1, -1, -1, -1, -1, -1, 3480,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 2658, -1, 3499, -1,
-1, -1, -1, -1, -1, -1, -1, 3508, -1, -1,
-1, -1, -1, -1, 2676, -1, -1, 3897, -1, 3520,
-1, -1, -1, -1, -1, -1, -1, 2829, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2849, -1, -1,
2029, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 3564, -1, -1, -1, -1, -1, 834,
-1, -1, 2874, -1, -1, -1, -1, 2739, -1, -1,
-1, -1, -1, 3584, -1, -1, -1, -1, -1, -1,
-1, 2753, -1, -1, -1, 3975, -1, -1, -1, -1,
-1, -1, 2764, -1, -1, -1, -1, -1, 2910, -1,
-1, -1, -1, -1, -1, -1, -1, 3997, -1, 3999,
-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, 2950, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1459, -1, -1, -1, -1, -1, -1, 2829, 2147, -1,
-1, -1, -1, 3674, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2849, -1, -1,
-1, -1, -1, -1, -1, -1, 961, -1, -1, -1,
-1, -1, -1, -1, 3705, -1, -1, 4087, 3709, -1,
-1, -1, 2874, 3714, -1, -1, -1, -1, -1, -1,
834, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3731, 3732, -1, -1, 3735, -1, -1, 1536, -1, -1,
-1, -1, -1, -1, -1, 3746, -1, 2226, 2910, 4129,
3751, -1, 2231, 3754, -1, -1, -1, -1, 3759, 3760,
-1, 1560, -1, -1, -1, -1, 1565, -1, -1, 3071,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 3784, -1, -1, 1585, 1586, -1, 1588,
-1, -1, -1, -1, 2273, -1, 2275, 2276, -1, -1,
-1, 4181, -1, -1, -1, -1, -1, 2286, -1, -1,
2289, -1, 2291, -1, 3815, -1, -1, -1, 3819, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1628,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 2318,
-1, 2320, -1, 4223, -1, 2324, -1, 961, -1, -1,
-1, -1, -1, -1, -1, 3856, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1664, -1, -1, -1, -1,
-1, -1, -1, -1, 2353, 2354, 2355, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1154,
-1, 2370, -1, -1, -1, -1, -1, 3898, -1, 3900,
-1, -1, 2381, -1, -1, -1, -1, 2386, -1, 3071,
-1, -1, -1, -1, 2393, -1, -1, -1, -1, 3920,
3921, -1, 3923, 3225, 3925, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3942, 1207, -1, -1, 3946, -1, -1, -1, -1,
3951, -1, -1, -1, -1, -1, 3258, 2436, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1766, -1, -1,
-1, -1, 1237, -1, -1, -1, -1, 1776, -1, -1,
1779, -1, -1, -1, 3985, -1, -1, 3988, -1, -1,
-1, 3992, 3993, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 4026, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1154, -1, 1307, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 4053, -1, -1, -1, -1, -1, -1, -1,
-1, 1326, -1, 3225, 3366, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3377, -1, -1, -1, -1,
4081, 1346, -1, 834, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1207, -1, -1, 3258, 4098, -1, -1,
-1, -1, -1, -1, -1, -1, 1371, -1, -1, -1,
-1, -1, 3414, -1, -1, -1, -1, 3419, -1, -1,
-1, -1, -1, 1237, -1, -1, -1, -1, -1, 3431,
-1, -1, 4133, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 4143, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1423, 4160,
4161, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 4173, -1, -1, -1, -1, -1, 3480, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1307, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3366, -1, 3508, 4208, -1, -1,
961, -1, 1326, -1, -1, 3377, -1, 4218, 3520, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1346, 4234, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1371, 834, -1,
-1, -1, 3564, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 4276, -1, -1, -1, -1,
4281, -1, -1, -1, 4285, -1, -1, -1, 4289, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1423,
-1, -1, -1, -1, -1, -1, -1, -1, 3480, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1599, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3508, 2826, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2836, 3520, -1,
-1, -1, -1, 2842, -1, 2844, -1, -1, -1, -1,
-1, -1, 3674, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 961, -1, 2866, 2867, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3564, 1154, -1, -1, -1, 3709, 2887, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2897, -1,
-1, 2900, -1, 2902, -1, -1, -1, -1, -1, -1,
2229, -1, 2911, -1, -1, -1, -1, -1, 2917, -1,
-1, 2920, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2252, -1, 2254, 1207, 2256, 2257, 2258,
-1, 2940, 2261, -1, -1, -1, 2265, -1, -1, 2948,
-1, 2950, -1, 2272, -1, -1, -1, -1, 2277, -1,
-1, -1, -1, -1, 2283, 1599, 1237, -1, -1, 2288,
-1, -1, -1, -1, 2973, -1, -1, -1, 2297, -1,
2979, -1, 2301, 2302, -1, 2304, 2985, -1, -1, -1,
-1, -1, -1, 3815, -1, -1, -1, 2316, -1, -1,
-1, -1, -1, -1, 2323, -1, 2325, 2326, 2327, 2328,
2329, 2330, 2331, 2332, 2333, 2334, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3709, -1, -1,
-1, -1, -1, -1, -1, -1, 1307, -1, -1, -1,
2359, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1326, -1, -1, 1154, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 1346, -1, -1, 3900, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1882, -1, 3921,
1371, -1, 1887, 1888, -1, -1, -1, -1, -1, -1,
21, 1207, -1, -1, 1899, -1, -1, -1, -1, -1,
-1, -1, 33, -1, -1, -1, -1, -1, -1, 3951,
-1, -1, 2451, 3815, -1, -1, -1, -1, -1, -1,
-1, 1237, -1, 54, -1, -1, -1, -1, -1, -1,
-1, -1, 1423, -1, -1, -1, 67, -1, -1, -1,
834, -1, -1, -1, -1, 76, 3988, -1, -1, 80,
3992, 3993, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 97, -1, -1, -1,
-1, -1, 103, -1, -1, 834, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 118, -1, -1,
-1, 1307, -1, -1, -1, -1, -1, -1, 3900, -1,
-1, -1, -1, -1, -1, 136, -1, -1, -1, -1,
1326, 4053, -1, -1, -1, -1, 147, -1, -1, 3921,
-1, -1, -1, 154, -1, -1, 2031, 158, 1882, -1,
1346, -1, -1, 1887, 1888, -1, -1, -1, -1, -1,
3259, 3260, 173, -1, -1, 1899, -1, -1, -1, 3951,
-1, -1, -1, -1, -1, 1371, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 961, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
211, -1, -1, -1, -1, -1, 3988, -1, -1, -1,
3992, 3993, -1, -1, -1, -1, -1, 3316, -1, -1,
2105, -1, 961, -1, -1, -1, -1, 1423, 1599, -1,
-1, -1, -1, -1, -1, -1, -1, 248, -1, -1,
251, -1, 2661, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3363, 3364, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3376, -1, -1,
-1, -1, -1, 3382, 3383, -1, -1, 3386, -1, -1,
301, -1, -1, -1, -1, -1, 307, 2031, -1, -1,
-1, -1, 313, -1, 2189, 316, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3414, -1, -1, -1, -1,
3419, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 342, 3431, 344, 345, -1, 347, 348, -1, -1,
-1, -1, -1, -1, -1, 356, -1, -1, -1, -1,
361, -1, -1, -1, -1, -1, 367, -1, -1, 370,
-1, -1, 373, 3462, 2783, -1, -1, -1, -1, -1,
-1, 2105, -1, -1, -1, 386, -1, -1, -1, -1,
1154, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1599, -1, -1, 2825, -1, -1, -1,
-1, -1, 2831, -1, -1, 1154, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2847, 2848,
-1, 2850, -1, 1207, 2853, 2854, 2855, 2856, 2857, 2858,
2859, 2860, 2861, 2862, 2863, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2189, -1, -1, -1, -1,
-1, -1, -1, 1237, -1, -1, -1, -1, 1207, 2888,
-1, -1, 2891, -1, 2893, -1, -1, -1, -1, 2898,
2899, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2912, 2913, 2914, -1, 2916, 1237, -1,
2919, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 1882, -1, -1, -1, -1, 1887, 1888, -1, -1,
-1, -1, -1, 3622, -1, -1, -1, -1, 1899, -1,
-1, -1, -1, 1307, -1, -1, -1, 2956, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2966, -1, -1,
-1, -1, 1326, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1307, -1,
-1, -1, 1346, -1, 2459, -1, -1, -1, 2997, -1,
-1, -1, -1, -1, -1, -1, -1, 1326, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1371, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 1346, -1, -1,
-1, -1, -1, -1, 2499, 2500, -1, 2502, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 1371, -1, -1, -1, 3735, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1423,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2031, 3760, -1, -1, -1, -1, -1, -1, -1, 2554,
-1, 2556, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 1423, -1, 1882, -1, -1, -1,
-1, 1887, 1888, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 1899, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 2609, 2459, -1, -1, -1, -1,
-1, -1, -1, -1, 2105, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2633, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1,
-1, -1, -1, 2658, -1, -1, -1, -1, -1, -1,
-1, 3200, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 2676, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2189, -1,
2554, -1, 2556, -1, 3923, 1599, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2031, -1, -1, -1, -1,
-1, -1, -1, 3942, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 2739, -1, -1, -1, -1, -1,
1599, -1, -1, -1, -1, -1, -1, -1, 2753, -1,
-1, -1, -1, -1, -1, 2609, -1, -1, -1, 2764,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 3317, 2633,
-1, -1, 3321, 3322, 3323, -1, -1, 3326, -1, 2105,
-1, -1, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338,
3339, 3340, 3341, 3342, 2658, -1, -1, 4026, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 2676, -1, 2829, -1, -1, -1, -1, -1,
-1, 3370, 3371, 3372, 3373, -1, 3375, -1, -1, -1,
3379, 3380, 3381, -1, 2849, 3384, -1, -1, 3387, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 2874,
-1, -1, -1, 2189, -1, -1, -1, 3416, -1, 4098,
-1, -1, -1, -1, -1, 2739, -1, -1, -1, 3428,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 2753,
-1, -1, -1, 3442, -1, 2910, -1, -1, -1, -1,
2764, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 4160, 4161, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2459, -1,
-1, -1, -1, -1, -1, 2829, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 1882, 4208,
-1, -1, -1, 1887, 1888, 2849, -1, -1, -1, 4218,
-1, -1, -1, -1, -1, 1899, -1, -1, 2499, 2500,
-1, 2502, -1, -1, -1, -1, -1, -1, -1, -1,
2874, -1, -1, 1882, -1, -1, -1, -1, 1887, 1888,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 2910, 4276, -1, -1,
-1, -1, -1, 2554, -1, 2556, 3071, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3625, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2609, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3671, 3672, -1, -1, -1, 2031, -1, -1,
-1, -1, 2633, 2459, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3701, -1, -1, -1, 3705, 2658, -1, -1,
-1, -1, 2031, -1, -1, -1, -1, -1, -1, -1,
3719, -1, 3721, 2499, 2500, 2676, 2502, 3726, 3727, 3728,
-1, -1, 3731, 3732, 3733, 3734, -1, 3736, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 2105, -1, -1, -1, -1, -1, 3071, -1, -1,
3225, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2554, -1,
2556, -1, -1, 3782, -1, -1, 2105, -1, 2739, -1,
-1, -1, -1, 3258, -1, -1, -1, -1, -1, -1,
-1, -1, 2753, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2764, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 2609, -1, 2189, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2633, -1, -1,
-1, -1, -1, 3862, -1, -1, -1, -1, -1, -1,
2189, -1, -1, -1, -1, -1, -1, -1, 2829, -1,
-1, -1, 2658, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2849, -1,
2676, 3366, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3225, 3377, -1, -1, -1, -1, -1, -1, -1,
3919, 3920, -1, 2874, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3935, 3936, 3937, -1,
-1, -1, -1, -1, 3258, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3954, -1, -1, -1, 2910,
-1, -1, -1, 2739, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 2753, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 2764, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3480, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 3508, -1, -1, -1, -1, -1, -1,
-1, -1, 3366, 2829, -1, 3520, -1, -1, -1, -1,
-1, -1, 4061, 3377, -1, -1, -1, -1, -1, -1,
-1, -1, 4071, 2849, -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, 3564,
-1, -1, -1, -1, -1, 2459, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3071, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 4132, 2910, -1, -1, -1, -1, -1,
2459, -1, -1, -1, -1, 2499, 2500, -1, 2502, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3480, -1, -1, -1,
-1, -1, -1, 4172, -1, -1, -1, -1, -1, -1,
2499, 2500, -1, 2502, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3508, -1, -1, -1, -1, -1,
2554, -1, 2556, -1, -1, -1, 3520, -1, -1, -1,
-1, -1, 4211, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2554, -1, 2556, -1, -1,
-1, -1, -1, -1, 3709, -1, -1, -1, -1, -1,
3564, -1, -1, -1, -1, 2609, 4255, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3225, -1, -1, -1, -1, 2633,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2609, -1, -1, -1, -1, 3071, -1, -1, -1, -1,
-1, -1, -1, -1, 2658, -1, -1, 3258, -1, -1,
-1, -1, -1, -1, 2633, -1, -1, -1, -1, -1,
-1, -1, 2676, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 2658,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3815, -1, -1, -1, -1, -1, -1, 2676, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2739, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3709, -1, -1, -1, 2753,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2764, -1, -1, -1, -1, 3366, -1, -1, -1, -1,
2739, -1, -1, -1, -1, -1, 3377, -1, -1, -1,
-1, -1, -1, -1, 2753, 3900, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2764, -1, -1, -1, 3225,
-1, -1, -1, -1, -1, -1, 3921, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 2829, -1, -1, -1, -1,
-1, -1, 3258, -1, -1, -1, 3951, -1, -1, -1,
-1, -1, -1, -1, -1, 2849, -1, -1, -1, -1,
-1, 3815, -1, -1, -1, -1, -1, -1, -1, -1,
2829, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2874, -1, -1, 3988, -1, -1, -1, 3992, 3993, 3480,
2849, -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, 2910, 3508, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3520,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3900, -1, -1, -1,
3366, 2910, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3377, -1, -1, -1, -1, -1, 3921, -1, -1,
-1, -1, -1, 3564, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3951, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3988, -1, -1, -1, 3992, 3993,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3480, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3071, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3508, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3520, -1, -1, -1, -1, -1,
-1, -1, 3071, -1, -1, -1, -1, -1, 3709, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 3564, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3815, -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, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3258, -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, 3709, -1, -1, -1, -1, -1, 3258,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3900,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3921, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3951, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3366, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 3377, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3988, -1, 3815,
-1, 3992, 3993, -1, -1, -1, -1, 3366, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 3377, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3900, -1, 3480, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3921, -1, -1, -1, -1,
-1, -1, -1, -1, 3508, -1, -1, -1, -1, -1,
-1, 3480, -1, -1, -1, -1, 3520, -1, -1, -1,
-1, -1, -1, -1, -1, 3951, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3508,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3520, -1, -1, -1, -1, -1, -1, -1, -1,
3564, -1, 3988, -1, -1, -1, 3992, 3993, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3564, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3709, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3709, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3815, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3815, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 3900, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3921, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3900, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3951, -1, -1,
-1, -1, 3921, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 3951, -1, 3988, -1, -1, -1, 3992, 3993,
-1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
8, 9, 10, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, 3988,
-1, -1, 30, 3992, 3993, 33, 34, -1, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, 67,
-1, 69, 70, 71, 72, 73, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, 115, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, -1, 142, 143, 144, -1, 146, -1,
148, 149, -1, 151, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, 166, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, 179, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, 191, 192, 193, 194, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
-1, 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, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, 254, 255, 256, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
318, 319, 320, 321, 322, 323, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
358, 359, 360, 361, 362, 363, 364, 365, -1, 367,
368, 369, 370, 371, 372, 373, -1, 375, 376, 377,
378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, -1, -1, -1, -1, -1, -1, -1, 417,
418, 419, -1, -1, -1, -1, -1, -1, 426, 427,
3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, 30, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, -1, 367, 368, 369, 370, 371, 372,
373, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
-1, -1, -1, -1, 417, 418, 3, -1, -1, -1,
-1, -1, -1, 426, 427, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, 31, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, 151, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, 179, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, 194, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
227, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, -1,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
427, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, -1, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, -1, -1, -1, 90, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, -1, 135, 136, 137, -1, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, -1, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, -1, 205, 206, 207, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, -1, -1,
233, 234, 235, 236, -1, -1, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, -1, 258, 259, 260, 261, 262,
263, 264, -1, 266, -1, 268, -1, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
-1, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, -1, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, -1, 356, -1, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, -1, 381, 382,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, -1, 3, -1, -1, -1,
-1, -1, -1, -1, 407, 408, 409, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, 427, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, -1,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
427, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, -1, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, -1, -1, -1, 90, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, -1, 135, 136, 137, -1, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, -1, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, -1, 205, 206, 207, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, -1, -1,
233, 234, 235, 236, -1, -1, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, -1, 258, 259, 260, 261, 262,
263, 264, -1, 266, -1, 268, -1, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
-1, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, -1, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, -1, 356, -1, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, -1, 381, 382,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, -1, 3, 4, 5, 6,
7, 8, 9, 10, 407, 408, 409, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, 30, 427, -1, 33, 34, -1, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
67, -1, 69, 70, 71, 72, 73, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, -1, 142, 143, 144, -1, 146,
-1, 148, 149, 150, 151, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, 166,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, 179, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
207, -1, 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, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, 254, 255, 256,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, 353, 354, 355, 356,
357, 358, 359, 360, 361, 362, 363, 364, 365, -1,
367, 368, 369, 370, 371, 372, 373, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, 384, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, -1,
417, 418, -1, -1, -1, -1, -1, -1, -1, 426,
3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, 30, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 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, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, 342,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, -1, 367, 368, 369, 370, 371, 372,
373, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, 392,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
-1, -1, -1, -1, 417, 418, -1, -1, -1, -1,
-1, -1, -1, 426, 3, 4, 5, 6, 7, 8,
9, 10, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, 30, -1, -1, 33, 34, -1, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, -1, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, 67, -1,
69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, -1, 142, 143, 144, -1, 146, -1, 148,
149, -1, 151, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, 166, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
179, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, 205, 206, 207, -1,
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, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, -1, 367, 368,
369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, 384, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, -1, -1, -1, -1, -1, -1, -1, 417, 418,
-1, -1, -1, -1, -1, 424, 425, 426, 3, 4,
5, 6, 7, 8, 9, 10, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, 30, -1, -1, 33, 34,
-1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, 67, -1, 69, 70, 71, 72, 73, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, -1, 142, 143, 144,
-1, 146, -1, 148, 149, -1, 151, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, 166, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, 179, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
205, 206, 207, -1, 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, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, 254,
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, -1, 367, 368, 369, 370, 371, 372, 373, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, 384,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, -1, -1, -1, -1, -1,
-1, -1, 417, 418, 419, -1, -1, -1, -1, -1,
-1, 426, 3, 4, 5, 6, 7, 8, 9, 10,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, 30,
-1, -1, 33, 34, -1, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, -1, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, 67, -1, 69, 70,
71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 102, 103, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
-1, 142, 143, 144, -1, 146, -1, 148, 149, -1,
151, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, 166, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, 179, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, 254, 255, 256, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, 358, 359, 360,
361, 362, 363, 364, 365, -1, 367, 368, 369, 370,
371, 372, 373, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, 384, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, -1,
-1, -1, -1, -1, -1, -1, 417, 418, -1, -1,
-1, -1, -1, -1, -1, 426, 3, 4, 5, 6,
7, 8, 9, 10, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
-1, -1, -1, 30, -1, -1, 33, 34, -1, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
67, -1, 69, 70, 71, 72, 73, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, -1, 142, 143, 144, -1, 146,
-1, 148, 149, -1, 151, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, 166,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, 179, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
207, -1, 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, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, 254, 255, 256,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, 358, 359, 360, 361, 362, 363, 364, 365, -1,
367, 368, 369, 370, 371, 372, 373, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, 384, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, -1,
417, 418, -1, -1, -1, -1, -1, -1, -1, 426,
3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, 30, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, 150, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, -1, 367, 368, 369, 370, 371, 372,
373, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
-1, -1, -1, -1, 417, 418, -1, -1, -1, -1,
-1, -1, -1, 426, 3, 4, 5, 6, 7, 8,
9, 10, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, 30, -1, -1, 33, 34, -1, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, -1, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, 67, -1,
69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, -1, 142, 143, 144, -1, 146, -1, 148,
149, -1, 151, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, 166, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
179, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, 205, 206, 207, -1,
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, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, -1, 367, 368,
369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
379, 380, 381, 382, 383, 384, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, -1, -1, -1, -1, -1, -1, -1, 417, 418,
-1, -1, -1, -1, -1, -1, -1, 426, 3, 4,
5, 6, 7, 8, 9, 10, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, 30, -1, -1, 33, 34,
-1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, 67, -1, 69, 70, 71, 72, 73, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, -1, 142, 143, 144,
-1, 146, -1, 148, 149, -1, 151, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, 166, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, 179, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
205, 206, 207, -1, 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, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, 254,
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, -1, 367, 368, 369, 370, 371, 372, 373, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, 384,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, -1, -1, -1, -1, -1,
-1, -1, 417, 418, -1, -1, -1, -1, -1, -1,
-1, 426, 3, 4, 5, 6, 7, 8, 9, 10,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, 30,
-1, -1, 33, 34, -1, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, -1, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, 67, -1, 69, 70,
71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
-1, 142, 143, 144, -1, 146, -1, 148, 149, -1,
151, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, 166, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, 179, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, 254, 255, 256, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, 358, 359, 360,
361, 362, 363, 364, 365, -1, 367, 368, 369, 370,
371, 372, 373, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, 384, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, -1,
-1, -1, -1, -1, -1, -1, 417, 418, -1, -1,
-1, -1, -1, -1, -1, 426, 3, 4, 5, 6,
7, 8, 9, 10, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, 30, -1, -1, 33, 34, -1, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
67, -1, 69, 70, 71, 72, 73, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, -1, 142, 143, 144, -1, 146,
-1, 148, 149, -1, 151, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, 166,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, 179, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
207, -1, 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, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, 254, 255, 256,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, 358, 359, 360, 361, 362, 363, 364, 365, -1,
367, 368, 369, 370, 371, 372, 373, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, 384, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, -1,
417, 418, -1, -1, -1, -1, -1, -1, -1, 426,
3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, 30, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, 207, -1, 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, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, -1, 367, 368, 369, 370, 371, 372,
373, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
-1, -1, -1, -1, 417, 418, -1, -1, -1, -1,
-1, -1, -1, 426, 3, 4, 5, 6, 7, 8,
9, 10, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, 30, -1, -1, 33, 34, -1, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, -1, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, 67, -1,
69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, -1, 142, 143, 144, -1, 146, -1, 148,
149, -1, 151, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, 166, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
179, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, 205, 206, 207, -1,
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, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, -1, 367, 368,
369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, 384, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, -1, -1, -1, -1, -1, -1, -1, 417, 418,
-1, -1, -1, -1, -1, -1, -1, 426, 3, 4,
5, 6, 7, 8, 9, 10, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, 30, -1, -1, 33, 34,
-1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, 67, -1, 69, 70, 71, 72, 73, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, -1, 142, 143, 144,
-1, 146, -1, 148, 149, -1, 151, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, 166, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, 179, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
205, 206, 207, -1, 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, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, 254,
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, -1, 367, 368, 369, 370, 371, 372, 373, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, 384,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, -1, -1, -1, -1, -1,
-1, -1, 417, 418, -1, -1, -1, -1, -1, -1,
-1, 426, 3, 4, 5, 6, 7, 8, 9, 10,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, 30,
-1, -1, 33, 34, -1, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, -1, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, 67, -1, 69, 70,
71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
-1, 142, 143, 144, -1, 146, -1, 148, 149, -1,
151, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, 166, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, 179, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, 205, 206, 207, -1, 209, 210,
211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
231, -1, 233, 234, 235, 236, 237, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, 254, 255, 256, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, 300,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, 358, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, 373, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, 384, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, -1,
-1, -1, -1, -1, -1, -1, 417, 418, -1, -1,
-1, -1, -1, -1, -1, 426, 3, 4, 5, 6,
7, 8, 9, 10, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, 30, -1, -1, 33, 34, -1, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
67, -1, 69, 70, 71, 72, 73, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, -1, 142, 143, 144, -1, 146,
-1, 148, 149, -1, 151, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, 179, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
-1, -1, 209, 210, 211, 212, 213, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
227, 228, 229, 230, 231, -1, 233, 234, 235, 236,
237, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, 254, 255, 256,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, 358, 359, 360, 361, 362, 363, 364, 365, -1,
367, 368, 369, 370, 371, 372, 373, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, 384, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, -1,
417, 418, -1, -1, 3, 4, 5, 6, 7, 426,
9, 10, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, 30, -1, -1, 33, 34, -1, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, -1, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, 67, -1,
69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, -1, 142, 143, 144, -1, 146, -1, 148,
149, -1, 151, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, 166, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
179, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, 205, 206, 207, -1,
209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, 384, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, -1, -1, -1, -1, -1, -1, 3, 4, 5,
6, 7, -1, 9, 10, -1, -1, 426, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, 30, -1, -1, 33, 34, -1,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, 67, -1, 69, 70, 71, 72, 73, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, 139, 140, -1, 142, 143, 144, -1,
146, -1, 148, 149, -1, 151, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
166, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, 179, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
206, 207, -1, 209, 210, 211, 212, 213, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, 231, -1, 233, 234, 235,
236, 237, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, 254, 255,
256, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, 300, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, 373, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, 384, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, -1, -1, -1, -1, -1, -1,
3, 4, 5, 6, 7, 8, 9, 10, -1, -1,
426, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, 30, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, -1, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, -1, -1, 209, 210, 211, 212,
213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, 231, -1,
233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, -1, 367, 368, 369, 370, 371, 372,
373, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
-1, -1, -1, -1, 417, 418, -1, -1, -1, -1,
-1, -1, -1, 426, 3, 4, 5, 6, 7, 8,
9, 10, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, 30, -1, -1, 33, 34, -1, 36, 37, 38,
39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, 67, -1,
69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, -1,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, -1, 142, 143, 144, -1, 146, -1, 148,
149, -1, 151, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
179, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, 205, 206, -1, -1,
209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
229, 230, 231, -1, 233, 234, 235, 236, 237, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, 373, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, 384, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, -1, -1, -1, -1, -1, -1, 3, 417, 418,
-1, -1, -1, -1, -1, -1, -1, 426, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, -1, 48, 49, 50, 51, 52, -1, 54, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, 67, -1, 69, 70, 71, 72, 73, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, 149, -1, 151, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
166, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, 179, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
206, 207, -1, 209, 210, 211, 212, 213, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, 231, -1, 233, 234, 235,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, 247, 248, 249, 250, -1, -1, 253, 254, 255,
256, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
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, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, 342, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, 373, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, 384, 385,
386, 387, -1, -1, 390, -1, 392, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, -1, -1, -1, -1, -1, -1,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
426, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
-1, 54, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, 207, -1, 209, 210, 211, 212,
213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, 231, -1,
233, 234, 235, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, 247, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
373, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
-1, -1, -1, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 426, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, -1, 48, 49,
50, 51, 52, -1, 54, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, 67, -1, 69,
70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, 149,
-1, 151, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, 166, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, 179,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, 205, 206, 207, -1, 209,
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, -1, 233, 234, 235, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, 254, 255, 256, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, 318, 319,
320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, 373, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, 384, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
-1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 426, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
67, -1, 69, 70, 71, 72, 73, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
-1, -1, -1, 90, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, 149, -1, 151, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, 166,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, 179, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
207, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
227, 228, 229, 230, 231, -1, 233, 234, 235, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, 254, 255, 256,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, 323, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, 384, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, -1, -1, -1, -1, -1, -1, 3,
4, 5, -1, -1, -1, 9, -1, -1, -1, 426,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, 246, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, -1, -1, -1, -1,
-1, -1, 3, 417, 418, 419, -1, -1, -1, -1,
-1, -1, 426, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, 26, 27, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, 312, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, 342, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, 384, 385, 386, 387, -1, -1, 390,
-1, 392, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, -1,
-1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 426, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, 342, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, 392, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, -1, -1, -1, -1, -1, -1, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 426, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, -1, -1, -1, -1, -1,
-1, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 426, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, -1, -1,
-1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 426, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, -1, -1, -1, -1, -1, -1, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 426, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, -1, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, -1, -1, -1, -1, -1, -1,
3, 4, 5, -1, -1, 8, 9, -1, -1, -1,
426, 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, -1,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, -1, 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, -1, 135, 136, 137, -1, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
153, 154, 155, 156, -1, 158, 159, 160, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
173, 174, 175, 176, 177, 178, 179, -1, 181, 182,
183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
203, -1, 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, -1, 232,
233, 234, 235, 236, 237, -1, 239, 240, 241, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
-1, 254, 255, 256, -1, 258, 259, 260, 261, 262,
263, 264, 265, 266, -1, 268, -1, 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,
-1, 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, -1, 339, 340, 341, 342,
343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
353, 354, -1, 356, -1, 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, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, -1, -1, 3,
413, 414, 415, -1, 417, 418, 419, 420, 421, 422,
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, 3, -1, -1, -1,
-1, -1, -1, -1, -1, 419, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, 419, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, 419,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, -1, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, -1, -1, -1, 90, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, -1, 135, 136, 137, -1, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, -1, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, -1, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, -1, 205, 206, 207, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, -1, -1,
233, 234, 235, 236, -1, -1, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
-1, 254, 255, 256, -1, 258, 259, 260, 261, 262,
263, 264, -1, 266, -1, 268, -1, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
-1, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, -1, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, -1, 356, -1, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, -1, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, -1, -1, 3, -1, -1,
-1, -1, -1, -1, 407, 408, 409, -1, 14, 15,
16, 17, 18, 19, 20, 21, 419, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, -1,
-1, 67, -1, 69, 70, 71, 72, 73, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, 84, 85,
86, -1, -1, -1, 90, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, -1, 135,
136, 137, -1, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, 149, -1, 151, 152, 153, 154, -1,
156, -1, -1, 159, -1, 161, 162, 163, 164, 165,
166, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, 179, -1, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, -1, 203, -1, 205,
206, 207, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, -1, -1, 233, 234, 235,
236, -1, -1, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, -1, 254, 255,
256, -1, 258, 259, 260, 261, 262, 263, 264, -1,
266, -1, 268, -1, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, 300, 301, 302, -1, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, 323, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, -1, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, -1,
356, -1, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, -1, 381, -1, 383, 384, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, -1, -1, 3, 4, 5, -1, -1, -1,
9, 407, 408, 409, -1, 14, 15, 16, 17, 18,
19, 20, 21, 419, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, 103, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, 246, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, 4, 5, -1, -1, -1, 9, 417, 418,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, 246, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, 358, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, 4,
5, -1, -1, -1, 9, 417, 418, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, 246, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, 9, 417, 418, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, 150, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, 170, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, 4, 5, -1, -1, -1, 9, 417,
418, -1, -1, 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, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, 67, -1, 69,
70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, 84, 85, 86, -1, -1, -1,
90, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, 149,
-1, 151, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, 166, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, 179,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, 205, 206, 207, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, -1, 233, 234, 235, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, 254, 255, 256, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, 384, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, -1, -1, -1, 90, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, 205, 206, 207, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, 231, -1,
233, 234, 235, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, 67, -1, 69, 70, 71, 72, 73, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, 84, 85,
86, -1, -1, -1, 90, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, 149, -1, 151, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
166, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, 179, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
206, 207, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, 231, -1, 233, 234, 235,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, 254, 255,
256, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, 300, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, 323, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, 384, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, -1, -1, 68,
69, 70, 71, 72, -1, 74, 75, 76, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, 147, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, 367, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, 76, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, 147, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, 207, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, 367, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, 83, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
155, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, 83, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, 155, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, 76, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, 147, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, 367, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, 83,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, 5, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, 246,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, 358, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, 147, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
83, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
26, 27, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, 384, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, 5, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, 103, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, 373, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, 26, 27, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, 373, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, 373, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, 247, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, -1, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, 247, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
5, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, 38, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, 247, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, 5, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, 342, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, 158, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, 31, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, -1, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, 31, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, 374, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, -1, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, -1, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, -1, 39, 40, 41, 42, 43, -1, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, 65,
-1, -1, -1, 69, 70, 71, 72, -1, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, 134, 135,
136, 137, 138, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, -1, -1, -1, 152, 153, 154, -1,
156, 157, -1, 159, -1, 161, 162, 163, 164, 165,
-1, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, -1, 180, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, -1, -1, 193, -1, 195,
196, 197, 198, 199, 200, 201, -1, 203, 204, -1,
206, -1, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, -1, 228, 229, 230, 231, -1, 233, 234, -1,
236, -1, 238, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, 253, -1, -1,
-1, 257, 258, 259, 260, 261, 262, 263, 264, -1,
266, 267, 268, 269, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, -1, 301, 302, 303, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, -1, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, -1, 340, 341, -1, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, 355,
356, 357, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, 380, 381, -1, 383, -1, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 3, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, -1,
39, 40, 41, 42, 43, -1, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, 65, -1, -1, -1,
69, 70, 71, 72, -1, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, 134, 135, 136, 137, 138,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
-1, -1, -1, 152, 153, 154, -1, 156, 157, -1,
159, -1, 161, 162, 163, 164, 165, -1, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
-1, 180, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, -1, -1, 193, -1, 195, 196, 197, 198,
199, 200, 201, -1, 203, 204, -1, 206, -1, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, -1, 228,
229, 230, 231, -1, 233, 234, -1, 236, -1, 238,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, 253, -1, -1, -1, 257, 258,
259, 260, 261, 262, 263, 264, -1, 266, 267, 268,
269, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, -1, 301, 302, 303, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, 320, 321, 322, -1, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, 355, 356, 357, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, 380, 381, -1, 383, -1, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 3, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, -1, -1, -1, -1,
-1, 33, 34, -1, 36, 37, -1, 39, 40, 41,
42, 43, -1, 45, 46, -1, 48, 49, 50, 51,
52, -1, -1, 55, 56, 57, 58, 59, -1, 61,
62, 63, 64, 65, -1, -1, -1, 69, 70, 71,
72, -1, 74, 75, -1, 77, 78, 79, 80, 81,
82, -1, -1, 85, 86, -1, -1, -1, -1, -1,
-1, -1, 94, 95, 96, 97, 98, 99, 100, 101,
102, -1, 104, -1, 106, 107, 108, 109, 110, -1,
112, 113, 114, -1, -1, 117, 118, 119, 120, 121,
-1, 123, 124, 125, -1, 127, 128, -1, 130, 131,
132, 133, 134, 135, 136, 137, 138, -1, 140, -1,
142, 143, 144, -1, 146, -1, 148, -1, -1, -1,
152, 153, 154, -1, 156, 157, -1, 159, -1, 161,
162, 163, 164, 165, -1, 167, 168, 169, -1, 171,
172, 173, 174, 175, 176, -1, 178, -1, 180, 181,
182, 183, 184, 185, 186, -1, 188, -1, 190, -1,
-1, 193, -1, 195, 196, 197, 198, 199, 200, 201,
-1, 203, 204, -1, 206, -1, -1, 209, 210, 211,
-1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, -1, 228, 229, 230, 231,
-1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
242, 243, -1, 245, -1, -1, 248, 249, 250, -1,
-1, 253, -1, -1, -1, 257, 258, 259, 260, 261,
262, 263, 264, -1, 266, 267, 268, 269, 270, 271,
272, -1, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, -1, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, -1, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
-1, 313, 314, 315, 316, 317, -1, 319, 320, 321,
322, -1, 324, 325, 326, -1, 328, 329, 330, 331,
332, 333, 334, 335, 336, 337, 338, -1, 340, 341,
-1, 343, 344, 345, 346, 347, 348, -1, 350, 351,
-1, -1, 354, 355, 356, 357, -1, 359, 360, 361,
362, 363, 364, 365, -1, -1, 368, 369, 370, 371,
372, -1, -1, 375, 376, 377, 378, 379, 380, 381,
-1, 383, -1, 385, 386, 387, -1, -1, 390, -1,
-1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 3, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, 31, -1, 33, 34,
-1, 36, 37, -1, 39, 40, 41, 42, 43, -1,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
65, -1, -1, -1, 69, 70, 71, 72, -1, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, 134,
135, 136, 137, 138, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, -1, -1, -1, 152, 153, 154,
-1, 156, 157, -1, 159, -1, 161, 162, 163, 164,
165, -1, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, -1, 180, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, -1, -1, 193, -1,
195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
-1, 206, -1, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, -1, 228, 229, 230, 231, -1, 233, 234,
-1, 236, -1, 238, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, 253, -1,
-1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
-1, 266, 267, 268, 269, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, -1, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, -1, 320, 321, 322, -1, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
355, 356, 357, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, 380, 381, -1, 383, -1,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 3, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, 262, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, -1, 39, 40,
41, 42, 43, -1, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, 65, -1, -1, -1, 69, 70,
71, 72, -1, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, -1, -1,
-1, 152, 153, 154, -1, 156, 157, -1, 159, -1,
161, 162, 163, 164, 165, -1, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, -1, 180,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
-1, -1, 193, -1, 195, 196, 197, 198, 199, 200,
201, -1, 203, 204, -1, 206, -1, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, -1, 228, 229, 230,
231, -1, 233, 234, -1, 236, -1, 238, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, 253, -1, -1, -1, 257, 258, 259, 260,
261, 262, 263, 264, -1, 266, 267, 268, 269, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, -1,
301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, -1, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, 355, 356, 357, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, 380,
381, -1, 383, -1, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, 398, 399, 400,
401, 402, 403, 404, 405, 406, 407, 408, 409, 3,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, -1, 39, 40, 41, 42, 43,
-1, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, 65, -1, -1, -1, 69, 70, 71, 72, -1,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
134, 135, 136, 137, 138, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, -1, -1, -1, 152, 153,
154, -1, 156, 157, -1, 159, -1, 161, 162, 163,
164, 165, -1, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, -1, 180, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, -1, -1, 193,
-1, 195, 196, 197, 198, 199, 200, 201, -1, 203,
204, -1, 206, -1, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, -1, 228, 229, 230, 231, -1, 233,
234, -1, 236, -1, 238, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, 253,
-1, -1, -1, 257, 258, 259, 260, 261, 262, 263,
264, -1, 266, 267, 268, 269, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, -1, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, -1,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, 355, 356, 357, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, 380, 381, -1, 383,
-1, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 3, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, -1, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, -1, -1, -1, 90, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, -1, 135, 136, 137, -1, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, -1, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
173, 174, 175, 176, -1, 178, 179, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, -1, 205, 206, 207, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, -1, -1,
233, 234, 235, 236, -1, -1, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, 254, 255, 256, -1, 258, 259, 260, 261, 262,
263, 264, -1, 266, -1, 268, -1, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
-1, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
323, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, -1, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, -1, 356, -1, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, -1, 381, 382,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, -1, 3, -1, -1, -1,
-1, -1, -1, -1, 407, 408, 409, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
-1, -1, -1, -1, -1, -1, 33, 34, -1, 36,
37, -1, 39, 40, 41, 42, 43, -1, 45, 46,
-1, 48, 49, 50, 51, 52, -1, -1, 55, 56,
57, 58, 59, -1, 61, 62, 63, 64, 65, -1,
-1, -1, 69, 70, 71, 72, -1, 74, 75, -1,
77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, 94, 95, 96,
97, 98, 99, 100, 101, 102, -1, 104, -1, 106,
107, 108, 109, 110, -1, 112, 113, 114, -1, -1,
117, 118, 119, 120, 121, -1, 123, 124, 125, -1,
127, 128, -1, 130, 131, 132, 133, 134, 135, 136,
137, 138, -1, 140, -1, 142, 143, 144, -1, 146,
-1, 148, -1, -1, -1, 152, 153, 154, -1, 156,
157, -1, 159, -1, 161, 162, 163, 164, 165, -1,
167, 168, 169, -1, 171, 172, 173, 174, 175, 176,
-1, 178, -1, 180, 181, 182, 183, 184, 185, 186,
-1, 188, -1, 190, -1, -1, 193, -1, 195, 196,
197, 198, 199, 200, 201, -1, 203, 204, -1, 206,
-1, -1, 209, 210, 211, -1, -1, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
-1, 228, 229, 230, 231, -1, 233, 234, -1, 236,
-1, 238, 239, 240, 241, 242, 243, -1, 245, -1,
-1, 248, 249, 250, -1, -1, 253, -1, -1, -1,
257, 258, 259, 260, 261, 262, 263, 264, -1, 266,
267, 268, 269, 270, 271, 272, -1, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, -1,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, -1, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, -1, 313, 314, 315, 316,
317, -1, 319, 320, 321, 322, -1, 324, 325, 326,
-1, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, -1, 340, 341, -1, 343, 344, 345, 346,
347, 348, -1, 350, 351, -1, -1, 354, 355, 356,
357, -1, 359, 360, 361, 362, 363, 364, 365, -1,
-1, 368, 369, 370, 371, 372, -1, -1, 375, 376,
377, 378, 379, 380, 381, -1, 383, -1, 385, 386,
387, -1, -1, 390, -1, -1, 393, 394, 395, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 409, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, -1, 39,
40, 41, 42, 43, -1, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, 65, -1, -1, -1, 69,
70, 71, 72, -1, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, -1, 85, 86, -1, -1, -1,
-1, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, -1,
-1, -1, 152, 153, 154, -1, 156, 157, -1, 159,
-1, 161, 162, 163, 164, 165, -1, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, -1,
180, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, -1, -1, 193, -1, 195, 196, 197, 198, 199,
200, 201, -1, 203, 204, -1, 206, -1, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, -1, 228, 229,
230, 231, -1, 233, 234, -1, 236, -1, 238, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, 253, -1, -1, -1, 257, 258, 259,
260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
-1, 301, 302, 303, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, -1, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, 355, 356, 357, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
380, 381, -1, 383, -1, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, -1, 39, 40, 41, 42,
43, -1, 45, 46, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, 57, 58, 59, -1, 61, 62,
63, 64, 65, -1, -1, -1, 69, 70, 71, 72,
-1, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, 94, 95, 96, 97, 98, 99, 100, 101, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, 134, 135, 136, 137, 138, -1, 140, -1, 142,
143, 144, -1, 146, -1, 148, -1, -1, -1, 152,
153, 154, -1, 156, 157, -1, 159, -1, 161, 162,
163, 164, 165, -1, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, -1, 180, 181, 182,
183, 184, 185, 186, -1, 188, -1, 190, -1, -1,
193, -1, 195, 196, 197, 198, 199, 200, 201, -1,
203, 204, -1, 206, -1, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, -1, 228, 229, 230, 231, -1,
233, 234, -1, 236, -1, 238, 239, 240, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
253, -1, -1, -1, 257, 258, 259, 260, 261, 262,
263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, -1, 301, 302,
303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, 320, 321, 322,
-1, 324, 325, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, 338, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, 350, 351, -1,
-1, 354, 355, 356, 357, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, 380, 381, -1,
383, -1, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
403, 404, 405, 406, 407, 408, 409, 3, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
-1, -1, -1, -1, -1, -1, -1, 33, 34, -1,
36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
46, -1, 48, 49, 50, 51, 52, -1, -1, 55,
56, 57, 58, 59, -1, 61, 62, 63, 64, -1,
-1, 67, -1, 69, 70, 71, 72, 73, 74, 75,
-1, 77, 78, 79, 80, 81, 82, -1, 84, 85,
86, -1, -1, -1, 90, -1, -1, -1, 94, 95,
96, 97, 98, 99, 100, 101, 102, -1, 104, -1,
106, 107, 108, 109, 110, -1, 112, 113, 114, -1,
-1, 117, 118, 119, 120, 121, -1, 123, 124, 125,
-1, 127, 128, -1, 130, 131, 132, 133, -1, 135,
136, 137, -1, -1, 140, -1, 142, 143, 144, -1,
146, -1, 148, 149, -1, 151, 152, 153, 154, -1,
156, -1, -1, 159, -1, 161, 162, 163, 164, 165,
166, 167, 168, 169, -1, 171, 172, 173, 174, 175,
176, -1, 178, 179, -1, 181, 182, 183, 184, 185,
186, -1, 188, -1, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, -1, 203, -1, 205,
206, 207, -1, 209, 210, 211, -1, -1, 214, 215,
216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, -1, -1, 233, 234, 235,
236, 237, -1, 239, 240, 241, 242, 243, -1, 245,
-1, -1, 248, 249, 250, -1, -1, -1, 254, 255,
256, -1, 258, 259, 260, 261, 262, 263, 264, -1,
266, -1, 268, -1, 270, 271, 272, -1, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
-1, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, -1, 298, 299, 300, 301, 302, -1, 304, 305,
306, 307, 308, 309, 310, 311, -1, 313, 314, 315,
316, 317, -1, 319, 320, 321, 322, 323, 324, 325,
326, -1, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, -1, -1, 340, 341, 342, 343, 344, 345,
346, 347, 348, -1, 350, 351, -1, -1, 354, -1,
356, -1, -1, 359, 360, 361, 362, 363, 364, 365,
-1, -1, 368, 369, 370, 371, 372, -1, -1, 375,
376, 377, 378, 379, -1, 381, -1, 383, 384, 385,
386, 387, -1, -1, 390, -1, -1, 393, 394, 395,
396, 397, -1, 3, -1, -1, -1, -1, -1, -1,
-1, 407, 408, 409, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, -1, -1, -1, -1,
-1, -1, -1, 33, 34, -1, 36, 37, 38, 39,
40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
50, 51, 52, -1, -1, 55, 56, 57, 58, 59,
-1, 61, 62, 63, 64, -1, -1, 67, -1, 69,
70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
80, 81, 82, -1, 84, 85, 86, -1, -1, -1,
90, -1, -1, -1, 94, 95, 96, 97, 98, 99,
100, 101, 102, -1, 104, -1, 106, 107, 108, 109,
110, -1, 112, 113, 114, -1, -1, 117, 118, 119,
120, 121, -1, 123, 124, 125, -1, 127, 128, -1,
130, 131, 132, 133, -1, 135, 136, 137, -1, -1,
140, -1, 142, 143, 144, -1, 146, -1, 148, 149,
-1, 151, 152, 153, 154, -1, 156, -1, -1, 159,
-1, 161, 162, 163, 164, 165, 166, 167, 168, 169,
-1, 171, 172, 173, 174, 175, 176, -1, 178, 179,
-1, 181, 182, 183, 184, 185, 186, -1, 188, -1,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
200, 201, -1, 203, -1, 205, 206, 207, -1, 209,
210, 211, -1, -1, 214, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, -1, 233, 234, 235, 236, -1, -1, 239,
240, 241, 242, 243, -1, 245, -1, -1, 248, 249,
250, -1, -1, -1, 254, 255, 256, -1, 258, 259,
260, 261, 262, 263, 264, -1, 266, -1, 268, -1,
270, 271, 272, -1, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, -1, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
310, 311, -1, 313, 314, 315, 316, 317, -1, 319,
320, 321, 322, 323, 324, 325, 326, -1, 328, 329,
330, 331, 332, 333, 334, 335, 336, 337, -1, -1,
340, 341, -1, 343, 344, 345, 346, 347, 348, -1,
350, 351, -1, -1, 354, -1, 356, -1, -1, 359,
360, 361, 362, 363, 364, 365, -1, -1, 368, 369,
370, 371, 372, -1, -1, 375, 376, 377, 378, 379,
-1, 381, -1, 383, 384, 385, 386, 387, -1, -1,
390, -1, -1, 393, 394, 395, 396, 397, -1, 3,
-1, -1, -1, -1, -1, -1, -1, 407, 408, 409,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, -1, -1, -1, -1, -1, -1, -1, 33,
34, -1, 36, 37, 38, 39, 40, 41, -1, 43,
44, 45, 46, -1, 48, 49, 50, 51, 52, -1,
-1, 55, 56, 57, 58, 59, -1, 61, 62, 63,
64, -1, -1, 67, -1, 69, 70, 71, 72, 73,
74, 75, -1, 77, 78, 79, 80, 81, 82, -1,
84, 85, 86, -1, -1, -1, 90, -1, -1, -1,
94, 95, 96, 97, 98, 99, 100, 101, 102, -1,
104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
114, -1, -1, 117, 118, 119, 120, 121, -1, 123,
124, 125, -1, 127, 128, -1, 130, 131, 132, 133,
-1, 135, 136, 137, -1, -1, 140, -1, 142, 143,
144, -1, 146, -1, 148, 149, -1, 151, 152, 153,
154, -1, 156, -1, -1, 159, -1, 161, 162, 163,
164, 165, 166, 167, 168, 169, -1, 171, 172, 173,
174, 175, 176, -1, 178, 179, -1, 181, 182, 183,
184, 185, 186, -1, 188, -1, 190, 191, 192, 193,
194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
-1, 205, 206, 207, -1, 209, 210, 211, -1, -1,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, -1, 233,
234, 235, 236, -1, -1, 239, 240, 241, 242, 243,
-1, 245, -1, -1, 248, 249, 250, -1, -1, -1,
254, 255, 256, -1, 258, 259, 260, 261, 262, 263,
264, -1, 266, -1, 268, -1, 270, 271, 272, -1,
274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
284, 285, -1, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, 300, 301, 302, -1,
304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
314, 315, 316, 317, -1, 319, 320, 321, 322, 323,
324, 325, 326, -1, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, -1, -1, 340, 341, -1, 343,
344, 345, 346, 347, 348, -1, 350, 351, -1, -1,
354, -1, 356, -1, -1, 359, 360, 361, 362, 363,
364, 365, -1, -1, 368, 369, 370, 371, 372, -1,
-1, 375, 376, 377, 378, 379, -1, 381, -1, 383,
384, 385, 386, 387, -1, -1, 390, -1, -1, 393,
394, 395, 396, 397, -1, 3, -1, -1, -1, -1,
-1, -1, -1, 407, 408, 409, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
-1, -1, -1, -1, -1, 33, 34, -1, 36, 37,
-1, 39, 40, 41, 42, 43, -1, 45, 46, -1,
48, 49, 50, 51, 52, -1, -1, 55, 56, 57,
58, 59, -1, 61, 62, 63, 64, 65, -1, -1,
-1, 69, 70, 71, 72, -1, 74, 75, -1, 77,
78, 79, 80, 81, 82, -1, -1, 85, 86, -1,
-1, -1, -1, -1, -1, -1, 94, 95, 96, 97,
98, 99, 100, 101, 102, -1, 104, -1, 106, 107,
108, 109, 110, -1, 112, 113, 114, -1, -1, 117,
118, 119, 120, 121, -1, 123, 124, 125, -1, 127,
128, -1, 130, 131, 132, 133, 134, 135, 136, 137,
138, -1, 140, -1, 142, 143, 144, -1, 146, -1,
148, -1, -1, -1, 152, 153, 154, -1, 156, 157,
-1, 159, -1, 161, 162, 163, 164, 165, -1, 167,
168, 169, -1, 171, 172, 173, 174, 175, 176, -1,
178, -1, 180, 181, 182, 183, 184, 185, 186, -1,
188, -1, 190, -1, -1, 193, -1, 195, 196, 197,
198, 199, 200, 201, -1, 203, 204, -1, 206, -1,
-1, 209, 210, 211, -1, -1, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, -1,
228, 229, 230, 231, -1, 233, 234, -1, 236, -1,
238, 239, 240, 241, 242, 243, -1, 245, -1, -1,
248, 249, 250, -1, -1, 253, -1, -1, -1, 257,
258, 259, 260, 261, -1, 263, 264, -1, 266, 267,
268, 269, 270, 271, 272, -1, 274, 275, 276, 277,
278, -1, 280, 281, 282, 283, 284, 285, -1, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, -1, 301, 302, 303, -1, 305, 306, 307,
308, 309, 310, 311, -1, 313, 314, 315, 316, 317,
-1, 319, 320, 321, 322, -1, 324, 325, 326, -1,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
338, -1, 340, 341, -1, 343, 344, 345, 346, 347,
348, -1, 350, 351, -1, -1, 354, 355, 356, 357,
-1, 359, 360, 361, 362, 363, 364, 365, -1, -1,
368, 369, 370, 371, 372, -1, -1, 375, 376, 377,
378, 379, 380, 381, -1, 383, -1, 385, 386, 387,
-1, -1, 390, -1, -1, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 3, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, -1, -1, -1, -1,
-1, -1, 33, 34, -1, 36, 37, 38, 39, 40,
41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
51, 52, -1, -1, 55, 56, 57, 58, 59, -1,
61, 62, 63, 64, -1, -1, 67, -1, 69, 70,
71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
81, 82, -1, 84, 85, 86, -1, -1, -1, 90,
-1, -1, -1, 94, 95, 96, 97, 98, 99, 100,
101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
-1, 112, 113, 114, -1, -1, 117, 118, 119, 120,
121, -1, 123, 124, 125, -1, 127, 128, -1, 130,
131, 132, 133, -1, 135, 136, 137, -1, -1, 140,
-1, 142, 143, 144, -1, 146, -1, 148, 149, -1,
151, 152, 153, 154, -1, 156, -1, -1, 159, -1,
161, 162, 163, 164, 165, 166, 167, 168, 169, -1,
171, 172, 173, 174, 175, 176, -1, 178, 179, -1,
181, 182, 183, 184, 185, 186, -1, 188, -1, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
201, -1, 203, -1, 205, 206, 207, -1, 209, 210,
211, -1, -1, 214, 215, 216, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
-1, -1, 233, 234, 235, 236, -1, -1, 239, 240,
241, 242, 243, -1, 245, -1, -1, 248, 249, 250,
-1, -1, -1, 254, 255, 256, -1, 258, 259, 260,
261, 262, 263, 264, -1, 266, -1, 268, -1, 270,
271, 272, -1, 274, 275, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, -1, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, 300,
301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
311, -1, 313, 314, 315, 316, 317, -1, 319, 320,
321, 322, 323, 324, 325, 326, -1, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, -1, -1, 340,
341, -1, 343, 344, 345, 346, 347, 348, -1, 350,
351, -1, -1, 354, -1, 356, -1, -1, 359, 360,
361, 362, 363, 364, 365, -1, -1, 368, 369, 370,
371, 372, -1, -1, 375, 376, 377, 378, 379, -1,
381, -1, 383, 384, 385, 386, 387, -1, -1, 390,
-1, -1, 393, 394, 395, 396, 397, -1, 3, -1,
-1, -1, -1, -1, -1, -1, 407, 408, 409, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, -1, -1, -1, -1, -1, -1, -1, 33, 34,
-1, 36, 37, 38, 39, 40, 41, -1, 43, 44,
45, 46, -1, 48, 49, 50, 51, 52, -1, -1,
55, 56, 57, 58, 59, -1, 61, 62, 63, 64,
-1, -1, 67, -1, 69, 70, 71, 72, 73, 74,
75, -1, 77, 78, 79, 80, 81, 82, -1, 84,
85, 86, -1, -1, -1, 90, -1, -1, -1, 94,
95, 96, 97, 98, 99, 100, 101, 102, -1, 104,
-1, 106, 107, 108, 109, 110, -1, 112, 113, 114,
-1, -1, 117, 118, 119, 120, 121, -1, 123, 124,
125, -1, 127, 128, -1, 130, 131, 132, 133, -1,
135, 136, 137, -1, -1, 140, -1, 142, 143, 144,
-1, 146, -1, 148, 149, -1, 151, 152, 153, 154,
-1, 156, -1, -1, 159, -1, 161, 162, 163, 164,
165, 166, 167, 168, 169, -1, 171, 172, 173, 174,
175, 176, -1, 178, 179, -1, 181, 182, 183, 184,
185, 186, -1, 188, -1, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, -1, 203, -1,
205, 206, 207, -1, 209, 210, 211, -1, -1, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 227, 228, 229, 230, -1, -1, 233, 234,
235, 236, -1, -1, 239, 240, 241, 242, 243, -1,
245, -1, -1, 248, 249, 250, -1, -1, -1, 254,
255, 256, -1, 258, 259, 260, 261, 262, 263, 264,
-1, 266, -1, 268, -1, 270, 271, 272, -1, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, -1, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, 302, -1, 304,
305, 306, 307, 308, 309, 310, 311, -1, 313, 314,
315, 316, 317, -1, 319, 320, 321, 322, 323, 324,
325, 326, -1, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, -1, -1, 340, 341, -1, 343, 344,
345, 346, 347, 348, -1, 350, 351, -1, -1, 354,
-1, 356, -1, -1, 359, 360, 361, 362, 363, 364,
365, -1, -1, 368, 369, 370, 371, 372, -1, -1,
375, 376, 377, 378, 379, -1, 381, -1, 383, 384,
385, 386, 387, -1, -1, 390, -1, -1, 393, 394,
395, 396, 397, -1, 3, -1, -1, -1, -1, -1,
-1, -1, 407, 408, 409, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, -1, -1, -1,
-1, -1, -1, -1, 33, 34, -1, 36, 37, 38,
39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
49, 50, 51, 52, -1, -1, 55, 56, 57, 58,
59, -1, 61, 62, 63, 64, -1, -1, 67, -1,
69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
79, 80, 81, 82, -1, 84, 85, 86, -1, -1,
-1, 90, -1, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, -1, 104, -1, 106, 107, 108,
109, 110, -1, 112, 113, 114, -1, -1, 117, 118,
119, 120, 121, -1, 123, 124, 125, -1, 127, 128,
-1, 130, 131, 132, 133, -1, 135, 136, 137, -1,
-1, 140, -1, 142, 143, 144, -1, 146, -1, 148,
149, -1, 151, 152, 153, 154, -1, 156, -1, -1,
159, -1, 161, 162, 163, 164, 165, 166, 167, 168,
169, -1, 171, 172, 173, 174, 175, 176, -1, 178,
179, -1, 181, 182, 183, 184, 185, 186, -1, 188,
-1, 190, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 201, -1, 203, -1, 205, 206, 207, -1,
209, 210, 211, -1, -1, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
229, 230, -1, -1, 233, 234, 235, 236, -1, -1,
239, 240, 241, 242, 243, -1, 245, -1, -1, 248,
249, 250, -1, -1, -1, 254, 255, 256, -1, 258,
259, 260, 261, 262, 263, 264, -1, 266, -1, 268,
-1, 270, 271, 272, -1, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, -1, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
299, 300, 301, 302, -1, 304, 305, 306, 307, 308,
309, 310, 311, -1, 313, 314, 315, 316, 317, -1,
319, -1, 321, 322, 323, 324, 325, 326, -1, 328,
329, 330, 331, 332, 333, 334, 335, 336, 337, -1,
-1, 340, 341, -1, 343, 344, 345, 346, 347, 348,
-1, 350, 351, -1, -1, 354, -1, 356, -1, -1,
359, 360, 361, 362, 363, 364, 365, -1, -1, 368,
369, 370, 371, 372, -1, -1, 375, 376, 377, 378,
379, -1, 381, -1, 383, 384, 385, 386, 387, -1,
-1, 390, -1, -1, 393, 394, 395, 396, 397, -1,
3, -1, -1, -1, -1, -1, -1, -1, 407, 408,
409, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, -1, -1, -1, -1, -1, -1, -1,
33, 34, -1, 36, 37, 38, 39, 40, 41, -1,
-1, 44, -1, -1, -1, 48, 49, 50, 51, 52,
-1, -1, 55, 56, -1, -1, 59, -1, 61, 62,
63, 64, -1, -1, 67, -1, 69, 70, 71, 72,
73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
-1, 84, 85, 86, -1, -1, -1, 90, -1, -1,
-1, 94, 95, 96, 97, 98, 99, -1, -1, 102,
-1, 104, -1, 106, 107, 108, 109, 110, -1, 112,
113, 114, -1, -1, 117, 118, 119, 120, 121, -1,
123, 124, 125, -1, 127, 128, -1, 130, 131, 132,
133, -1, 135, 136, 137, -1, -1, 140, -1, 142,
-1, 144, -1, 146, -1, 148, 149, -1, 151, 152,
153, 154, -1, 156, -1, -1, 159, -1, 161, 162,
163, 164, 165, 166, 167, 168, 169, -1, 171, 172,
173, 174, 175, 176, -1, 178, 179, -1, 181, 182,
183, 184, -1, -1, -1, -1, -1, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
203, -1, 205, 206, 207, -1, 209, 210, 211, -1,
-1, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, -1, 227, -1, 229, 230, -1, -1,
233, 234, 235, 236, -1, -1, 239, -1, 241, 242,
243, -1, 245, -1, -1, 248, 249, 250, -1, -1,
-1, 254, 255, 256, -1, 258, 259, 260, 261, 262,
263, 264, -1, 266, -1, 268, -1, 270, 271, 272,
-1, 274, 275, 276, 277, 278, 279, 280, -1, 282,
283, 284, 285, -1, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, 302,
-1, 304, 305, 306, 307, 308, 309, 310, 311, -1,
313, 314, 315, 316, 317, -1, 319, -1, 321, 322,
323, 324, -1, 326, -1, 328, 329, 330, 331, 332,
333, 334, 335, 336, 337, -1, -1, 340, 341, -1,
343, 344, 345, 346, 347, 348, -1, -1, -1, -1,
-1, 354, -1, 356, -1, -1, 359, 360, 361, 362,
363, 364, 365, -1, -1, 368, 369, 370, 371, 372,
-1, -1, 375, 376, 377, 378, 379, -1, -1, -1,
383, 384, 385, 386, 387, -1, -1, 390, -1, -1,
393, 394, 395, 396, 397, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 407, 408, 409
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
0, 14, 24, 26, 27, 41, 61, 63, 64, 69,
71, 81, 83, 99, 102, 114, 116, 120, 126, 133,
135, 141, 155, 209, 210, 215, 223, 234, 271, 282,
287, 289, 294, 299, 302, 306, 311, 312, 319, 322,
330, 342, 359, 369, 375, 380, 392, 426, 433, 434,
435, 436, 442, 443, 445, 446, 447, 448, 449, 450,
451, 453, 454, 458, 469, 472, 473, 476, 477, 478,
489, 492, 493, 508, 545, 548, 549, 556, 562, 564,
566, 567, 570, 573, 574, 578, 579, 588, 592, 593,
594, 598, 599, 601, 602, 603, 616, 617, 618, 619,
630, 631, 638, 639, 642, 643, 644, 645, 646, 651,
653, 656, 660, 664, 665, 675, 676, 679, 684, 695,
714, 717, 718, 719, 722, 725, 727, 729, 732, 735,
736, 737, 744, 745, 747, 748, 749, 754, 756, 757,
761, 762, 765, 766, 767, 769, 770, 771, 772, 774,
777, 778, 783, 789, 792, 794, 795, 800, 802, 806,
813, 817, 818, 819, 820, 821, 822, 825, 852, 354,
394, 750, 21, 67, 80, 97, 103, 118, 136, 147,
152, 158, 173, 198, 248, 276, 301, 307, 313, 316,
342, 344, 348, 356, 361, 373, 386, 563, 750, 3,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 33, 34, 36, 37, 39, 40, 41, 42,
43, 45, 46, 48, 49, 50, 51, 52, 55, 56,
57, 58, 59, 61, 62, 63, 64, 65, 69, 70,
71, 72, 74, 75, 77, 78, 79, 80, 81, 82,
85, 86, 94, 95, 96, 97, 98, 99, 100, 101,
102, 104, 106, 107, 108, 109, 110, 112, 113, 114,
117, 118, 119, 120, 121, 123, 124, 125, 127, 128,
130, 131, 132, 133, 134, 135, 136, 137, 138, 140,
142, 143, 144, 146, 148, 152, 153, 154, 156, 157,
159, 161, 162, 163, 164, 165, 167, 168, 169, 171,
172, 173, 174, 175, 176, 178, 180, 181, 182, 183,
184, 185, 186, 188, 190, 193, 195, 196, 197, 198,
199, 200, 201, 203, 204, 206, 209, 210, 211, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 228, 229, 230, 231, 233, 234, 236, 238,
239, 240, 241, 242, 243, 245, 248, 249, 250, 253,
257, 258, 259, 260, 261, 262, 263, 264, 266, 267,
268, 269, 270, 271, 272, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, 298, 299, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
313, 314, 315, 316, 317, 319, 320, 321, 322, 324,
325, 326, 328, 329, 330, 331, 332, 333, 334, 335,
336, 337, 338, 340, 341, 343, 344, 345, 346, 347,
348, 350, 351, 354, 355, 356, 357, 359, 360, 361,
362, 363, 364, 365, 368, 369, 370, 371, 372, 375,
376, 377, 378, 379, 380, 381, 383, 385, 386, 387,
390, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 814, 957,
969, 972, 973, 384, 779, 246, 272, 750, 44, 499,
818, 21, 33, 54, 67, 76, 97, 103, 118, 136,
147, 154, 158, 211, 248, 251, 301, 307, 316, 344,
345, 347, 348, 356, 361, 367, 370, 373, 509, 634,
685, 696, 22, 271, 957, 814, 22, 266, 345, 347,
5, 197, 723, 724, 966, 21, 33, 54, 67, 80,
97, 118, 136, 147, 152, 158, 173, 248, 258, 301,
305, 307, 313, 316, 342, 344, 348, 356, 361, 373,
386, 563, 647, 750, 957, 83, 384, 426, 545, 778,
784, 792, 795, 800, 806, 813, 817, 9, 15, 22,
39, 142, 148, 150, 170, 199, 229, 274, 288, 417,
418, 661, 662, 814, 965, 968, 22, 83, 286, 312,
666, 667, 668, 969, 969, 962, 966, 342, 828, 661,
969, 354, 957, 258, 97, 173, 341, 342, 730, 306,
969, 22, 317, 350, 354, 461, 969, 19, 155, 666,
667, 272, 750, 969, 196, 22, 115, 830, 55, 77,
211, 225, 301, 307, 317, 350, 354, 397, 459, 460,
461, 22, 317, 350, 354, 461, 354, 247, 861, 955,
969, 828, 419, 969, 151, 426, 780, 426, 951, 284,
823, 824, 957, 818, 819, 822, 0, 429, 779, 129,
187, 252, 366, 831, 832, 818, 820, 821, 108, 183,
372, 430, 3, 38, 44, 67, 73, 84, 90, 149,
151, 166, 179, 191, 192, 194, 205, 207, 227, 235,
254, 255, 256, 300, 323, 384, 963, 969, 970, 972,
974, 649, 969, 649, 958, 969, 275, 649, 649, 957,
969, 96, 342, 674, 963, 967, 969, 165, 955, 241,
8, 62, 140, 413, 414, 415, 417, 418, 419, 420,
421, 422, 721, 918, 919, 969, 967, 957, 165, 955,
957, 165, 861, 957, 309, 957, 649, 216, 967, 165,
955, 197, 105, 193, 232, 280, 751, 752, 753, 955,
961, 969, 21, 54, 67, 68, 76, 80, 97, 118,
136, 147, 152, 173, 198, 248, 301, 305, 307, 313,
316, 342, 344, 348, 356, 361, 386, 563, 654, 966,
955, 352, 963, 957, 426, 649, 356, 958, 649, 165,
957, 96, 342, 345, 347, 967, 345, 347, 62, 140,
721, 292, 967, 455, 969, 957, 957, 309, 957, 649,
216, 967, 313, 342, 386, 80, 173, 152, 305, 360,
557, 22, 957, 815, 468, 966, 969, 724, 165, 963,
957, 165, 728, 165, 958, 96, 342, 165, 963, 165,
956, 957, 73, 62, 140, 165, 721, 48, 165, 956,
165, 957, 165, 957, 165, 957, 309, 165, 957, 165,
216, 956, 197, 165, 648, 649, 426, 793, 509, 784,
380, 384, 778, 785, 786, 787, 969, 779, 968, 662,
663, 22, 663, 968, 663, 22, 663, 968, 663, 663,
663, 968, 965, 965, 814, 663, 275, 426, 426, 528,
528, 528, 246, 352, 430, 528, 861, 862, 430, 746,
966, 426, 790, 48, 957, 957, 955, 969, 38, 409,
193, 428, 249, 249, 246, 150, 966, 352, 145, 657,
246, 4, 6, 7, 8, 10, 30, 43, 45, 46,
53, 54, 57, 58, 65, 67, 87, 88, 89, 90,
91, 92, 93, 100, 101, 119, 134, 138, 139, 143,
157, 185, 186, 188, 204, 212, 213, 226, 228, 232,
237, 238, 240, 248, 257, 267, 281, 303, 318, 325,
338, 350, 351, 355, 357, 358, 367, 373, 381, 399,
400, 401, 402, 403, 404, 405, 406, 417, 418, 419,
426, 818, 873, 876, 879, 880, 881, 883, 884, 885,
886, 889, 890, 894, 896, 897, 916, 920, 939, 944,
952, 953, 963, 964, 965, 966, 969, 966, 22, 474,
954, 955, 317, 459, 103, 467, 966, 468, 966, 38,
59, 459, 409, 326, 752, 249, 150, 352, 413, 38,
409, 193, 753, 426, 955, 419, 424, 428, 945, 946,
862, 149, 151, 384, 775, 776, 778, 149, 781, 103,
894, 949, 950, 823, 430, 426, 782, 427, 427, 435,
955, 22, 115, 829, 829, 48, 829, 141, 145, 208,
244, 835, 837, 838, 847, 849, 850, 831, 832, 150,
189, 861, 863, 951, 426, 624, 946, 259, 290, 319,
428, 650, 259, 290, 319, 259, 290, 319, 392, 437,
469, 470, 680, 18, 120, 259, 290, 319, 377, 481,
319, 18, 120, 372, 452, 395, 165, 861, 50, 82,
137, 168, 203, 232, 259, 290, 298, 304, 311, 319,
328, 336, 387, 469, 471, 708, 715, 426, 697, 290,
452, 134, 18, 24, 64, 113, 120, 123, 175, 230,
232, 242, 250, 259, 290, 294, 319, 377, 479, 480,
582, 4, 418, 554, 968, 649, 649, 426, 720, 428,
170, 290, 437, 444, 259, 290, 134, 49, 95, 172,
218, 220, 230, 258, 290, 295, 319, 330, 479, 551,
552, 259, 290, 385, 582, 590, 134, 290, 319, 479,
259, 290, 294, 319, 74, 112, 260, 346, 246, 18,
24, 120, 259, 290, 319, 490, 491, 145, 290, 319,
437, 470, 134, 290, 319, 479, 957, 206, 105, 247,
396, 430, 751, 374, 773, 246, 963, 426, 957, 96,
342, 963, 241, 62, 140, 721, 957, 309, 957, 197,
649, 528, 333, 334, 495, 966, 426, 624, 625, 60,
3, 43, 45, 46, 57, 58, 100, 101, 143, 185,
186, 188, 226, 228, 240, 281, 320, 325, 350, 351,
381, 870, 872, 874, 876, 878, 880, 881, 882, 884,
885, 889, 890, 970, 972, 150, 426, 620, 957, 437,
31, 768, 232, 437, 395, 165, 955, 437, 649, 649,
620, 509, 437, 38, 456, 361, 589, 259, 565, 74,
112, 260, 346, 20, 40, 184, 604, 31, 620, 145,
437, 955, 165, 546, 955, 955, 649, 73, 686, 963,
957, 563, 44, 94, 182, 230, 308, 134, 624, 51,
296, 482, 134, 426, 134, 395, 134, 697, 134, 430,
165, 648, 165, 649, 165, 649, 134, 720, 956, 134,
134, 246, 134, 482, 134, 74, 112, 260, 346, 134,
246, 134, 145, 165, 165, 468, 134, 430, 482, 894,
923, 342, 427, 430, 139, 246, 358, 465, 468, 554,
788, 784, 663, 814, 663, 814, 663, 814, 663, 814,
663, 814, 814, 814, 663, 814, 426, 529, 530, 969,
529, 22, 97, 118, 147, 152, 197, 198, 307, 313,
342, 344, 361, 669, 954, 956, 668, 170, 430, 803,
966, 870, 926, 31, 956, 146, 731, 731, 731, 206,
969, 145, 145, 669, 956, 306, 969, 468, 246, 426,
947, 424, 818, 927, 383, 887, 894, 943, 426, 887,
887, 426, 145, 426, 426, 426, 875, 875, 269, 818,
426, 426, 877, 426, 426, 426, 426, 57, 58, 887,
894, 426, 875, 426, 426, 426, 426, 426, 393, 412,
426, 891, 426, 891, 426, 426, 818, 426, 426, 426,
426, 426, 426, 426, 426, 894, 894, 818, 894, 923,
946, 966, 58, 426, 888, 426, 966, 3, 8, 11,
28, 31, 36, 42, 66, 166, 170, 191, 192, 207,
232, 235, 248, 251, 323, 413, 414, 415, 417, 418,
419, 420, 421, 422, 918, 920, 922, 256, 894, 189,
430, 826, 426, 966, 946, 106, 167, 475, 430, 59,
103, 468, 31, 3, 103, 211, 466, 554, 890, 966,
966, 78, 117, 903, 86, 103, 462, 463, 465, 554,
103, 462, 206, 955, 894, 3, 22, 26, 27, 28,
29, 30, 31, 32, 35, 47, 53, 54, 60, 66,
68, 76, 83, 87, 88, 89, 91, 92, 93, 103,
105, 111, 115, 116, 122, 126, 129, 139, 141, 145,
147, 150, 155, 158, 160, 170, 177, 187, 189, 202,
208, 212, 213, 232, 237, 244, 246, 247, 251, 252,
265, 273, 286, 297, 312, 318, 327, 339, 342, 349,
352, 353, 358, 366, 367, 373, 374, 382, 388, 389,
391, 392, 419, 960, 971, 972, 973, 974, 975, 945,
79, 295, 652, 427, 430, 779, 427, 430, 824, 956,
31, 782, 820, 820, 833, 834, 894, 820, 142, 229,
844, 280, 321, 372, 22, 839, 894, 840, 842, 894,
896, 847, 848, 838, 837, 835, 836, 145, 850, 835,
847, 863, 955, 31, 969, 319, 419, 926, 259, 290,
319, 352, 352, 307, 960, 428, 352, 352, 307, 352,
352, 344, 459, 763, 145, 155, 170, 299, 681, 682,
60, 76, 130, 147, 273, 367, 525, 526, 76, 103,
232, 352, 76, 352, 103, 232, 307, 76, 307, 571,
21, 54, 67, 80, 118, 147, 152, 248, 307, 313,
316, 342, 348, 361, 386, 563, 957, 134, 290, 319,
479, 246, 554, 311, 203, 352, 352, 237, 554, 107,
190, 307, 317, 354, 460, 296, 319, 708, 716, 170,
180, 253, 320, 382, 427, 698, 701, 702, 703, 705,
870, 970, 352, 373, 955, 68, 130, 516, 525, 969,
68, 733, 246, 305, 356, 76, 733, 25, 293, 305,
356, 955, 175, 242, 649, 426, 352, 352, 426, 485,
344, 392, 393, 485, 76, 430, 4, 259, 374, 374,
231, 870, 259, 319, 721, 97, 352, 439, 470, 352,
352, 955, 554, 48, 553, 554, 554, 95, 218, 220,
48, 352, 437, 307, 437, 230, 552, 352, 352, 237,
966, 582, 861, 76, 352, 733, 307, 352, 352, 485,
485, 649, 649, 649, 649, 955, 37, 379, 37, 37,
352, 37, 352, 307, 430, 93, 373, 600, 967, 352,
439, 955, 352, 307, 259, 290, 280, 291, 315, 464,
751, 961, 969, 955, 624, 870, 246, 395, 697, 554,
649, 649, 720, 191, 246, 74, 112, 260, 346, 246,
649, 191, 392, 500, 437, 3, 626, 627, 620, 426,
872, 31, 30, 871, 98, 163, 219, 222, 310, 407,
426, 892, 893, 650, 875, 649, 621, 622, 971, 20,
758, 870, 134, 568, 957, 232, 426, 595, 438, 634,
374, 386, 438, 967, 83, 155, 457, 508, 548, 603,
664, 684, 754, 966, 590, 591, 957, 214, 649, 649,
649, 649, 242, 108, 183, 359, 372, 605, 606, 127,
279, 426, 600, 438, 550, 551, 232, 31, 242, 426,
528, 528, 145, 687, 961, 426, 699, 31, 197, 392,
393, 816, 308, 963, 482, 870, 958, 165, 957, 963,
482, 956, 957, 134, 482, 134, 374, 134, 374, 721,
482, 482, 956, 957, 649, 957, 957, 957, 649, 956,
600, 134, 134, 482, 648, 649, 427, 430, 955, 784,
786, 814, 814, 814, 814, 814, 814, 529, 427, 430,
427, 153, 314, 343, 956, 648, 96, 316, 673, 674,
956, 241, 956, 954, 954, 956, 648, 352, 392, 677,
16, 132, 303, 321, 804, 861, 236, 805, 427, 430,
791, 795, 800, 806, 817, 352, 667, 666, 667, 150,
156, 678, 969, 21, 68, 97, 118, 147, 152, 198,
301, 307, 313, 342, 344, 361, 386, 563, 658, 923,
945, 425, 923, 927, 928, 426, 388, 940, 941, 894,
923, 426, 965, 965, 923, 3, 98, 163, 219, 222,
310, 407, 929, 930, 966, 965, 923, 923, 965, 965,
887, 887, 894, 721, 894, 931, 417, 418, 895, 896,
916, 920, 933, 427, 923, 894, 923, 934, 350, 409,
965, 965, 894, 47, 150, 202, 353, 894, 923, 937,
923, 224, 896, 894, 901, 902, 903, 224, 894, 903,
427, 430, 319, 965, 965, 892, 870, 894, 971, 350,
35, 339, 948, 649, 894, 426, 818, 938, 115, 117,
139, 232, 237, 242, 358, 368, 894, 42, 166, 170,
207, 323, 426, 894, 352, 894, 894, 894, 894, 894,
894, 894, 894, 894, 894, 22, 29, 327, 917, 303,
426, 916, 154, 211, 342, 345, 347, 370, 827, 955,
953, 150, 853, 22, 115, 382, 419, 427, 703, 894,
924, 925, 970, 955, 354, 426, 966, 430, 427, 425,
431, 164, 164, 482, 955, 776, 777, 955, 949, 427,
426, 430, 32, 111, 374, 693, 426, 841, 968, 247,
242, 851, 851, 430, 303, 304, 843, 848, 836, 374,
801, 103, 426, 796, 817, 969, 426, 807, 808, 809,
810, 811, 969, 427, 427, 352, 352, 307, 967, 957,
957, 960, 967, 957, 957, 967, 958, 957, 75, 764,
301, 373, 666, 307, 155, 666, 426, 957, 374, 688,
195, 195, 374, 426, 544, 165, 957, 237, 967, 957,
957, 894, 237, 957, 957, 957, 352, 572, 963, 426,
649, 649, 649, 96, 342, 674, 62, 140, 721, 957,
649, 957, 649, 309, 649, 649, 197, 159, 230, 259,
290, 378, 575, 576, 577, 861, 352, 733, 307, 237,
107, 190, 967, 957, 246, 957, 253, 970, 427, 430,
703, 705, 702, 705, 970, 650, 967, 956, 290, 479,
516, 870, 969, 957, 957, 22, 373, 957, 165, 957,
165, 969, 305, 356, 305, 356, 957, 22, 373, 957,
955, 18, 120, 319, 583, 584, 585, 586, 971, 967,
957, 487, 488, 971, 957, 245, 64, 245, 957, 480,
352, 959, 969, 959, 430, 427, 430, 352, 307, 958,
967, 3, 75, 125, 175, 264, 365, 373, 376, 440,
967, 957, 290, 319, 479, 551, 554, 649, 957, 554,
957, 554, 967, 957, 290, 319, 479, 957, 957, 957,
957, 967, 957, 18, 24, 120, 259, 290, 319, 259,
290, 319, 620, 290, 319, 290, 319, 290, 869, 969,
966, 969, 165, 969, 967, 957, 957, 957, 18, 491,
316, 967, 290, 319, 479, 957, 957, 352, 352, 72,
364, 280, 191, 31, 649, 191, 191, 374, 374, 191,
237, 655, 966, 649, 649, 649, 649, 649, 649, 191,
655, 245, 150, 352, 494, 426, 496, 497, 413, 427,
430, 894, 30, 871, 870, 424, 424, 352, 352, 352,
426, 352, 965, 875, 427, 430, 413, 605, 75, 124,
200, 201, 214, 259, 344, 346, 759, 518, 957, 150,
307, 385, 569, 576, 577, 134, 427, 516, 596, 597,
316, 19, 170, 301, 340, 440, 441, 145, 959, 955,
456, 251, 509, 147, 966, 620, 620, 620, 620, 242,
246, 251, 426, 620, 867, 868, 869, 316, 134, 133,
817, 649, 207, 510, 512, 514, 516, 522, 525, 969,
392, 393, 540, 392, 486, 966, 246, 427, 700, 701,
706, 31, 197, 298, 391, 707, 708, 709, 246, 468,
162, 162, 145, 624, 31, 134, 482, 697, 648, 649,
959, 649, 959, 720, 246, 482, 482, 246, 482, 316,
145, 468, 482, 894, 427, 530, 170, 170, 170, 395,
956, 430, 554, 555, 158, 670, 671, 967, 19, 678,
132, 321, 132, 321, 303, 372, 221, 870, 957, 150,
246, 670, 48, 482, 963, 342, 963, 241, 197, 649,
427, 425, 425, 430, 923, 894, 122, 941, 942, 31,
427, 894, 427, 427, 427, 427, 150, 427, 427, 427,
427, 427, 430, 427, 265, 932, 427, 895, 895, 11,
170, 191, 248, 413, 414, 415, 417, 418, 419, 420,
421, 422, 920, 895, 427, 427, 145, 150, 935, 936,
427, 409, 427, 427, 31, 937, 923, 937, 937, 150,
427, 427, 971, 263, 905, 31, 427, 430, 894, 971,
430, 894, 947, 894, 969, 427, 427, 409, 895, 895,
128, 923, 150, 115, 117, 139, 237, 242, 358, 368,
426, 128, 339, 948, 894, 938, 894, 352, 721, 894,
426, 818, 345, 347, 345, 347, 955, 828, 828, 828,
426, 818, 854, 855, 856, 861, 864, 897, 963, 969,
389, 865, 924, 924, 925, 427, 255, 909, 13, 427,
430, 832, 752, 965, 892, 463, 894, 782, 791, 834,
248, 918, 921, 410, 411, 694, 894, 843, 954, 805,
805, 840, 854, 389, 866, 380, 797, 798, 969, 297,
799, 811, 812, 430, 853, 413, 947, 967, 957, 957,
208, 956, 956, 246, 956, 249, 246, 894, 526, 959,
426, 426, 426, 544, 173, 529, 614, 134, 482, 352,
468, 624, 870, 395, 649, 649, 649, 720, 74, 112,
260, 346, 957, 558, 957, 159, 378, 352, 352, 558,
575, 582, 290, 319, 479, 957, 957, 957, 181, 237,
650, 701, 705, 705, 421, 352, 250, 580, 120, 294,
319, 481, 582, 734, 134, 482, 134, 482, 957, 957,
957, 957, 585, 586, 585, 427, 430, 587, 966, 427,
430, 413, 428, 967, 259, 290, 319, 18, 120, 259,
290, 319, 870, 231, 870, 967, 957, 208, 264, 237,
966, 264, 956, 371, 352, 307, 352, 733, 307, 352,
352, 216, 216, 216, 352, 352, 307, 352, 352, 307,
352, 307, 352, 307, 352, 482, 870, 20, 40, 319,
734, 134, 482, 352, 957, 352, 307, 967, 957, 655,
870, 191, 655, 655, 959, 959, 655, 191, 191, 191,
191, 191, 191, 655, 495, 503, 504, 971, 44, 85,
109, 124, 128, 146, 161, 237, 245, 278, 498, 248,
417, 418, 554, 623, 705, 921, 966, 975, 3, 627,
427, 424, 427, 965, 425, 965, 163, 219, 893, 219,
893, 893, 965, 222, 427, 622, 623, 246, 208, 413,
760, 760, 760, 760, 760, 760, 760, 60, 66, 76,
103, 105, 177, 232, 237, 273, 286, 367, 519, 520,
521, 437, 468, 957, 468, 580, 955, 427, 430, 957,
956, 158, 301, 956, 965, 361, 528, 292, 342, 96,
529, 955, 606, 628, 629, 966, 427, 430, 957, 955,
957, 392, 547, 426, 511, 955, 427, 430, 245, 485,
245, 246, 541, 485, 31, 352, 955, 427, 430, 103,
413, 710, 966, 468, 342, 704, 705, 392, 709, 711,
108, 183, 312, 372, 742, 159, 817, 482, 870, 957,
482, 482, 374, 482, 374, 482, 482, 649, 649, 957,
600, 482, 307, 307, 307, 956, 674, 430, 967, 392,
430, 672, 249, 132, 132, 956, 669, 482, 967, 624,
697, 554, 649, 191, 927, 427, 349, 894, 126, 870,
427, 894, 894, 894, 935, 870, 895, 115, 117, 232,
242, 895, 895, 895, 895, 895, 895, 895, 895, 895,
895, 894, 894, 936, 935, 891, 891, 870, 427, 427,
427, 923, 427, 430, 48, 896, 427, 971, 902, 270,
337, 904, 427, 430, 385, 898, 31, 427, 888, 966,
894, 28, 28, 894, 427, 894, 150, 426, 926, 894,
895, 895, 128, 128, 894, 427, 128, 894, 828, 828,
828, 828, 955, 955, 955, 818, 855, 856, 31, 857,
969, 430, 84, 151, 179, 194, 205, 227, 300, 858,
857, 31, 857, 969, 426, 946, 894, 158, 845, 430,
831, 832, 831, 427, 909, 426, 910, 969, 894, 909,
966, 382, 925, 427, 427, 425, 427, 426, 694, 427,
247, 86, 894, 799, 427, 430, 947, 952, 427, 430,
808, 866, 949, 760, 153, 314, 343, 362, 683, 145,
683, 427, 426, 532, 533, 690, 897, 969, 529, 529,
614, 961, 427, 105, 177, 230, 232, 615, 957, 957,
31, 957, 374, 374, 649, 649, 649, 649, 650, 967,
957, 352, 733, 307, 352, 181, 421, 361, 957, 426,
518, 232, 485, 96, 232, 332, 335, 485, 361, 957,
969, 584, 488, 623, 971, 352, 352, 307, 152, 248,
335, 632, 633, 152, 248, 640, 641, 352, 352, 307,
427, 427, 427, 968, 966, 966, 966, 957, 957, 957,
957, 957, 957, 957, 145, 145, 292, 145, 165, 967,
957, 957, 967, 957, 957, 957, 957, 957, 957, 957,
66, 483, 966, 966, 361, 969, 957, 582, 957, 957,
427, 655, 191, 191, 655, 655, 655, 655, 655, 655,
374, 501, 502, 427, 430, 419, 426, 465, 505, 554,
768, 966, 768, 232, 278, 768, 768, 614, 965, 392,
393, 425, 425, 427, 892, 955, 760, 103, 965, 966,
103, 966, 103, 966, 103, 966, 103, 957, 103, 957,
103, 957, 426, 649, 957, 895, 106, 167, 105, 237,
195, 955, 711, 568, 595, 597, 580, 956, 956, 870,
486, 955, 395, 145, 607, 427, 430, 869, 580, 242,
426, 793, 96, 230, 513, 515, 517, 525, 969, 540,
523, 176, 539, 514, 71, 344, 542, 817, 966, 688,
706, 894, 894, 430, 426, 707, 620, 352, 558, 427,
482, 959, 959, 482, 482, 316, 956, 956, 956, 554,
155, 671, 678, 150, 191, 191, 191, 191, 237, 659,
966, 894, 427, 427, 936, 150, 115, 117, 242, 426,
427, 398, 900, 923, 285, 48, 390, 390, 427, 894,
230, 894, 430, 899, 872, 892, 895, 895, 894, 926,
427, 28, 28, 894, 894, 128, 894, 427, 955, 955,
955, 955, 427, 969, 426, 855, 194, 254, 859, 855,
859, 194, 858, 859, 194, 426, 969, 426, 924, 48,
160, 846, 427, 427, 909, 911, 969, 925, 909, 966,
721, 242, 817, 798, 413, 811, 799, 968, 352, 666,
150, 614, 894, 427, 430, 392, 66, 691, 691, 427,
427, 711, 106, 167, 175, 105, 376, 482, 870, 959,
959, 957, 957, 957, 957, 361, 581, 585, 237, 237,
968, 969, 870, 482, 482, 413, 967, 957, 957, 965,
965, 870, 430, 965, 965, 430, 967, 957, 957, 352,
956, 956, 649, 956, 134, 649, 870, 482, 482, 191,
655, 655, 437, 110, 504, 465, 506, 507, 966, 966,
237, 419, 529, 966, 966, 425, 152, 180, 152, 150,
613, 968, 894, 232, 520, 711, 528, 374, 543, 316,
374, 31, 426, 957, 121, 608, 388, 610, 966, 649,
510, 547, 96, 427, 430, 392, 541, 131, 171, 426,
540, 108, 120, 270, 957, 392, 755, 150, 426, 966,
703, 712, 713, 970, 711, 955, 178, 559, 482, 482,
482, 957, 249, 482, 670, 659, 659, 659, 659, 895,
150, 426, 926, 426, 427, 430, 427, 896, 285, 427,
379, 329, 427, 427, 427, 895, 895, 894, 857, 426,
956, 855, 246, 374, 860, 855, 194, 855, 868, 426,
868, 969, 427, 923, 894, 391, 906, 909, 909, 262,
912, 427, 892, 427, 814, 951, 670, 246, 670, 427,
711, 533, 248, 721, 649, 374, 649, 692, 692, 286,
711, 543, 427, 352, 427, 430, 483, 623, 426, 963,
721, 633, 426, 426, 641, 957, 392, 292, 392, 392,
145, 483, 655, 496, 966, 427, 430, 529, 674, 31,
726, 726, 955, 614, 427, 543, 217, 531, 173, 957,
959, 817, 580, 303, 331, 609, 426, 133, 511, 427,
515, 250, 542, 22, 70, 77, 104, 174, 335, 524,
524, 954, 541, 304, 304, 52, 60, 211, 649, 689,
690, 705, 427, 430, 865, 558, 230, 378, 560, 561,
482, 895, 926, 427, 901, 923, 48, 230, 408, 956,
427, 894, 426, 855, 860, 427, 868, 427, 907, 908,
969, 48, 831, 909, 672, 683, 482, 691, 543, 426,
649, 693, 693, 955, 543, 614, 957, 585, 374, 484,
926, 697, 145, 636, 720, 926, 926, 648, 649, 648,
649, 956, 482, 507, 726, 34, 169, 145, 230, 527,
151, 261, 324, 246, 535, 536, 537, 344, 580, 140,
635, 755, 894, 277, 540, 539, 518, 427, 542, 60,
249, 60, 427, 430, 707, 712, 116, 378, 558, 427,
427, 427, 285, 379, 427, 956, 427, 430, 31, 923,
279, 304, 913, 150, 692, 389, 534, 721, 694, 694,
528, 614, 894, 427, 252, 309, 283, 637, 636, 427,
427, 392, 121, 175, 108, 372, 246, 537, 246, 536,
957, 649, 31, 427, 963, 541, 540, 249, 249, 486,
690, 711, 23, 184, 743, 427, 908, 910, 42, 86,
363, 894, 914, 915, 914, 427, 670, 693, 426, 614,
427, 531, 963, 48, 637, 649, 303, 51, 230, 296,
319, 538, 538, 632, 426, 542, 541, 542, 233, 426,
738, 740, 745, 795, 800, 806, 817, 915, 303, 144,
268, 144, 268, 482, 694, 894, 535, 697, 649, 610,
17, 103, 237, 4, 611, 612, 965, 966, 971, 542,
865, 739, 740, 741, 818, 819, 28, 427, 614, 133,
427, 430, 427, 429, 915, 277, 612, 741, 963, 426,
611, 427
};
#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
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. However,
YYFAIL appears to be in use. Nevertheless, it is formally deprecated
in Bison 2.4.2's NEWS entry, where a plan to phase it out is
discussed. */
#define YYFAIL goto yyerrlab
#if defined YYFAIL
/* This is here to suppress warnings from the GCC cpp's
-Wunused-macros. Normally we don't worry about that warning, but
some users do, and we want to make it easy for users to remove
YYFAIL uses, which will produce warnings from Bison 2.5. */
#endif
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
#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). */
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (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 (YYID (0))
#endif
/* 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
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
(Loc).last_line, (Loc).last_column)
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval, &yylloc, yyscanner)
#endif
/* 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 (YYID (0))
# 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 (YYID (0))
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
YYLTYPE const * const yylocationp;
core_yyscan_t yyscanner;
#endif
{
if (!yyvaluep)
return;
YYUSE (yylocationp);
YYUSE (yyscanner);
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif
switch (yytype)
{
default:
break;
}
}
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
YYLTYPE const * const yylocationp;
core_yyscan_t yyscanner;
#endif
{
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
YY_LOCATION_PRINT (yyoutput, *yylocationp);
YYFPRINTF (yyoutput, ": ");
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner);
YYFPRINTF (yyoutput, ")");
}
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
yy_stack_print (yybottom, yytop)
yytype_int16 *yybottom;
yytype_int16 *yytop;
#endif
{
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 (YYID (0))
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner)
#else
static void
yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner)
YYSTYPE *yyvsp;
YYLTYPE *yylsp;
int yyrule;
core_yyscan_t yyscanner;
#endif
{
int yynrhs = yyr2[yyrule];
int yyi;
unsigned long int yylno = yyrline[yyrule];
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, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
, &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner);
YYFPRINTF (stderr, "\n");
}
}
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \
} while (YYID (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. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
const char *yystr;
#endif
{
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. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
#endif
{
char *yyd = yydest;
const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
return yyd - 1;
}
# endif
# endif
# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
quotes and backslashes, so that it's suitable for yyerror. The
heuristic is that double-quoting is unnecessary unless the string
contains an apostrophe, a comma, or backslash (other than
backslash-backslash). YYSTR is taken from yytname. If YYRES is
null, do not copy; instead, return the length of what the result
would have been. */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
YYSIZE_T yyn = 0;
char const *yyp = yystr;
for (;;)
switch (*++yyp)
{
case '\'':
case ',':
goto do_not_strip_quotes;
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
/* Fall through. */
default:
if (yyres)
yyres[yyn] = *yyp;
yyn++;
break;
case '"':
if (yyres)
yyres[yyn] = '\0';
return yyn;
}
do_not_strip_quotes: ;
}
if (! yyres)
return yystrlen (yystr);
return yystpcpy (yyres, yystr) - yyres;
}
# endif
/* Copy into YYRESULT an error message about the unexpected token
YYCHAR while in state YYSTATE. Return the number of bytes copied,
including the terminating null byte. If YYRESULT is null, do not
copy anything; just return the number of bytes that would be
copied. As a special case, return 0 if an ordinary "syntax error"
message will do. Return YYSIZE_MAXIMUM if overflow occurs during
size calculation. */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
int yyn = yypact[yystate];
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
return 0;
else
{
int yytype = YYTRANSLATE (yychar);
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
int yysize_overflow = 0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
int yyx;
# if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly. */
YY_("syntax error, unexpected %s");
YY_("syntax error, unexpected %s, expecting %s");
YY_("syntax error, unexpected %s, expecting %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
char *yyfmt;
char const *yyf;
static char const yyunexpected[] = "syntax error, unexpected %s";
static char const yyexpecting[] = ", expecting %s";
static char const yyor[] = " or %s";
char yyformat[sizeof yyunexpected
+ sizeof yyexpecting - 1
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
* (sizeof yyor - 1))];
char const *yyprefix = yyexpecting;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
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 yycount = 1;
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
yycount = 1;
yysize = yysize0;
yyformat[sizeof yyunexpected - 1] = '\0';
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
yyfmt = yystpcpy (yyfmt, yyprefix);
yyprefix = yyor;
}
yyf = YY_(yyformat);
yysize1 = yysize + yystrlen (yyf);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
if (yysize_overflow)
return YYSIZE_MAXIMUM;
if (yyresult)
{
/* 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 = yyresult;
int yyi = 0;
while ((*yyp = *yyf) != '\0')
{
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
{
yyp += yytnamerr (yyp, yyarg[yyi++]);
yyf += 2;
}
else
{
yyp++;
yyf++;
}
}
}
return yysize;
}
}
#endif /* YYERROR_VERBOSE */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
#else
static void
yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
YYLTYPE *yylocationp;
core_yyscan_t yyscanner;
#endif
{
YYUSE (yyvaluep);
YYUSE (yylocationp);
YYUSE (yyscanner);
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
break;
}
}
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (core_yyscan_t yyscanner);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */
/*-------------------------.
| yyparse or yypush_parse. |
`-------------------------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (core_yyscan_t yyscanner)
#else
int
yyparse (yyscanner)
core_yyscan_t yyscanner;
#endif
#endif
{
/* The lookahead symbol. */
int yychar;
/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
/* Location data for the lookahead symbol. */
YYLTYPE yylloc;
/* 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 thru 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;
/* 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;
yytoken = 0;
yyss = yyssa;
yyvs = yyvsa;
yyls = yylsa;
yystacksize = YYINITDEPTH;
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss;
yyvsp = yyvs;
yylsp = yyls;
#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
/* Initialize the default location before parsing starts. */
yylloc.first_line = yylloc.last_line = 1;
yylloc.first_column = yylloc.last_column = 1;
#endif
goto yysetstate;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
yysetstate:
*yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp)
{
/* Get the current used size of the three stacks, in elements. */
YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
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);
yyls = yyls1;
yyss = yyss1;
yyvs = yyvs1;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
goto yyexhaustedlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
YYSTACK_RELOCATE (yyls_alloc, yyls);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
yylsp = yyls + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
if (yystate == YYFINAL)
YYACCEPT;
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
yybackup:
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
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;
}
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 (yyn == 0 || yyn == YYTABLE_NINF)
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;
*++yyvsp = yylval;
*++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);
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 2:
/* Line 1464 of yacc.c */
#line 666 "gram.y"
{
pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list);
}
break;
case 3:
/* Line 1464 of yacc.c */
#line 673 "gram.y"
{
if ((yyvsp[(3) - (3)].node) != NULL)
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
else
(yyval.list) = (yyvsp[(1) - (3)].list);
}
break;
case 4:
/* Line 1464 of yacc.c */
#line 680 "gram.y"
{
if ((yyvsp[(1) - (1)].node) != NULL)
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
else
(yyval.list) = NIL;
}
break;
case 115:
/* Line 1464 of yacc.c */
#line 800 "gram.y"
{ (yyval.node) = NULL; }
break;
case 116:
/* Line 1464 of yacc.c */
#line 811 "gram.y"
{
CreateRoleStmt *n = makeNode(CreateRoleStmt);
n->stmt_type = ROLESTMT_ROLE;
n->role = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 117:
/* Line 1464 of yacc.c */
#line 821 "gram.y"
{}
break;
case 118:
/* Line 1464 of yacc.c */
#line 822 "gram.y"
{}
break;
case 119:
/* Line 1464 of yacc.c */
#line 831 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 120:
/* Line 1464 of yacc.c */
#line 832 "gram.y"
{ (yyval.list) = NIL; }
break;
case 121:
/* Line 1464 of yacc.c */
#line 836 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 122:
/* Line 1464 of yacc.c */
#line 837 "gram.y"
{ (yyval.list) = NIL; }
break;
case 123:
/* Line 1464 of yacc.c */
#line 842 "gram.y"
{
(yyval.defelt) = makeDefElem("password",
(Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 124:
/* Line 1464 of yacc.c */
#line 847 "gram.y"
{
(yyval.defelt) = makeDefElem("password", NULL);
}
break;
case 125:
/* Line 1464 of yacc.c */
#line 851 "gram.y"
{
(yyval.defelt) = makeDefElem("encryptedPassword",
(Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 126:
/* Line 1464 of yacc.c */
#line 856 "gram.y"
{
(yyval.defelt) = makeDefElem("unencryptedPassword",
(Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 127:
/* Line 1464 of yacc.c */
#line 861 "gram.y"
{
(yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(TRUE));
}
break;
case 128:
/* Line 1464 of yacc.c */
#line 865 "gram.y"
{
(yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(3) - (3)].ival)));
}
break;
case 129:
/* Line 1464 of yacc.c */
#line 869 "gram.y"
{
(yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 130:
/* Line 1464 of yacc.c */
#line 874 "gram.y"
{
(yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list));
}
break;
case 131:
/* Line 1464 of yacc.c */
#line 878 "gram.y"
{
/*
* 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[(1) - (1)].str), "superuser") == 0)
(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE));
else if (strcmp((yyvsp[(1) - (1)].str), "nosuperuser") == 0)
(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE));
else if (strcmp((yyvsp[(1) - (1)].str), "createuser") == 0)
{
/* For backwards compatibility, synonym for SUPERUSER */
(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE));
}
else if (strcmp((yyvsp[(1) - (1)].str), "nocreateuser") == 0)
{
/* For backwards compatibility, synonym for SUPERUSER */
(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE));
}
else if (strcmp((yyvsp[(1) - (1)].str), "createrole") == 0)
(yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(TRUE));
else if (strcmp((yyvsp[(1) - (1)].str), "nocreaterole") == 0)
(yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(FALSE));
else if (strcmp((yyvsp[(1) - (1)].str), "replication") == 0)
(yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(TRUE));
else if (strcmp((yyvsp[(1) - (1)].str), "noreplication") == 0)
(yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(FALSE));
else if (strcmp((yyvsp[(1) - (1)].str), "createdb") == 0)
(yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(TRUE));
else if (strcmp((yyvsp[(1) - (1)].str), "nocreatedb") == 0)
(yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(FALSE));
else if (strcmp((yyvsp[(1) - (1)].str), "login") == 0)
(yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(TRUE));
else if (strcmp((yyvsp[(1) - (1)].str), "nologin") == 0)
(yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(FALSE));
else if (strcmp((yyvsp[(1) - (1)].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));
}
else
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("unrecognized role option \"%s\"", (yyvsp[(1) - (1)].str)),
parser_errposition((yylsp[(1) - (1)]))));
}
break;
case 132:
/* Line 1464 of yacc.c */
#line 931 "gram.y"
{ (yyval.defelt) = (yyvsp[(1) - (1)].defelt); }
break;
case 133:
/* Line 1464 of yacc.c */
#line 934 "gram.y"
{
(yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[(2) - (2)].ival)));
}
break;
case 134:
/* Line 1464 of yacc.c */
#line 938 "gram.y"
{
(yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[(2) - (2)].list));
}
break;
case 135:
/* Line 1464 of yacc.c */
#line 942 "gram.y"
{
(yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list));
}
break;
case 136:
/* Line 1464 of yacc.c */
#line 946 "gram.y"
{
(yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 137:
/* Line 1464 of yacc.c */
#line 950 "gram.y"
{
(yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 138:
/* Line 1464 of yacc.c */
#line 964 "gram.y"
{
CreateRoleStmt *n = makeNode(CreateRoleStmt);
n->stmt_type = ROLESTMT_USER;
n->role = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 139:
/* Line 1464 of yacc.c */
#line 982 "gram.y"
{
AlterRoleStmt *n = makeNode(AlterRoleStmt);
n->role = (yyvsp[(3) - (5)].str);
n->action = +1; /* add, if there are members */
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 140:
/* Line 1464 of yacc.c */
#line 992 "gram.y"
{ (yyval.str) = NULL; }
break;
case 141:
/* Line 1464 of yacc.c */
#line 993 "gram.y"
{ (yyval.str) = (yyvsp[(3) - (3)].str); }
break;
case 142:
/* Line 1464 of yacc.c */
#line 998 "gram.y"
{
AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
n->role = (yyvsp[(3) - (5)].str);
n->database = (yyvsp[(4) - (5)].str);
n->setstmt = (yyvsp[(5) - (5)].vsetstmt);
(yyval.node) = (Node *)n;
}
break;
case 143:
/* Line 1464 of yacc.c */
#line 1016 "gram.y"
{
AlterRoleStmt *n = makeNode(AlterRoleStmt);
n->role = (yyvsp[(3) - (5)].str);
n->action = +1; /* add, if there are members */
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 144:
/* Line 1464 of yacc.c */
#line 1028 "gram.y"
{
AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
n->role = (yyvsp[(3) - (4)].str);
n->database = NULL;
n->setstmt = (yyvsp[(4) - (4)].vsetstmt);
(yyval.node) = (Node *)n;
}
break;
case 145:
/* Line 1464 of yacc.c */
#line 1049 "gram.y"
{
DropRoleStmt *n = makeNode(DropRoleStmt);
n->missing_ok = FALSE;
n->roles = (yyvsp[(3) - (3)].list);
(yyval.node) = (Node *)n;
}
break;
case 146:
/* Line 1464 of yacc.c */
#line 1056 "gram.y"
{
DropRoleStmt *n = makeNode(DropRoleStmt);
n->missing_ok = TRUE;
n->roles = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 147:
/* Line 1464 of yacc.c */
#line 1075 "gram.y"
{
DropRoleStmt *n = makeNode(DropRoleStmt);
n->missing_ok = FALSE;
n->roles = (yyvsp[(3) - (3)].list);
(yyval.node) = (Node *)n;
}
break;
case 148:
/* Line 1464 of yacc.c */
#line 1082 "gram.y"
{
DropRoleStmt *n = makeNode(DropRoleStmt);
n->roles = (yyvsp[(5) - (5)].list);
n->missing_ok = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 149:
/* Line 1464 of yacc.c */
#line 1099 "gram.y"
{
CreateRoleStmt *n = makeNode(CreateRoleStmt);
n->stmt_type = ROLESTMT_GROUP;
n->role = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 150:
/* Line 1464 of yacc.c */
#line 1117 "gram.y"
{
AlterRoleStmt *n = makeNode(AlterRoleStmt);
n->role = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->options = list_make1(makeDefElem("rolemembers",
(Node *)(yyvsp[(6) - (6)].list)));
(yyval.node) = (Node *)n;
}
break;
case 151:
/* Line 1464 of yacc.c */
#line 1127 "gram.y"
{ (yyval.ival) = +1; }
break;
case 152:
/* Line 1464 of yacc.c */
#line 1128 "gram.y"
{ (yyval.ival) = -1; }
break;
case 153:
/* Line 1464 of yacc.c */
#line 1141 "gram.y"
{
DropRoleStmt *n = makeNode(DropRoleStmt);
n->missing_ok = FALSE;
n->roles = (yyvsp[(3) - (3)].list);
(yyval.node) = (Node *)n;
}
break;
case 154:
/* Line 1464 of yacc.c */
#line 1148 "gram.y"
{
DropRoleStmt *n = makeNode(DropRoleStmt);
n->missing_ok = TRUE;
n->roles = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 155:
/* Line 1464 of yacc.c */
#line 1165 "gram.y"
{
CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
/* One can omit the schema name or the authorization id. */
if ((yyvsp[(3) - (6)].str) != NULL)
n->schemaname = (yyvsp[(3) - (6)].str);
else
n->schemaname = (yyvsp[(5) - (6)].str);
n->authid = (yyvsp[(5) - (6)].str);
n->schemaElts = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 156:
/* Line 1464 of yacc.c */
#line 1177 "gram.y"
{
CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
/* ...but not both */
n->schemaname = (yyvsp[(3) - (4)].str);
n->authid = NULL;
n->schemaElts = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 157:
/* Line 1464 of yacc.c */
#line 1188 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 158:
/* Line 1464 of yacc.c */
#line 1189 "gram.y"
{ (yyval.str) = NULL; }
break;
case 159:
/* Line 1464 of yacc.c */
#line 1193 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); }
break;
case 160:
/* Line 1464 of yacc.c */
#line 1194 "gram.y"
{ (yyval.list) = NIL; }
break;
case 167:
/* Line 1464 of yacc.c */
#line 1222 "gram.y"
{
VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt);
n->is_local = false;
(yyval.node) = (Node *) n;
}
break;
case 168:
/* Line 1464 of yacc.c */
#line 1228 "gram.y"
{
VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
n->is_local = true;
(yyval.node) = (Node *) n;
}
break;
case 169:
/* Line 1464 of yacc.c */
#line 1234 "gram.y"
{
VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
n->is_local = false;
(yyval.node) = (Node *) n;
}
break;
case 170:
/* Line 1464 of yacc.c */
#line 1243 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_MULTI;
n->name = "TRANSACTION";
n->args = (yyvsp[(2) - (2)].list);
(yyval.vsetstmt) = n;
}
break;
case 171:
/* Line 1464 of yacc.c */
#line 1251 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_MULTI;
n->name = "SESSION CHARACTERISTICS";
n->args = (yyvsp[(5) - (5)].list);
(yyval.vsetstmt) = n;
}
break;
case 173:
/* Line 1464 of yacc.c */
#line 1263 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = (yyvsp[(1) - (3)].str);
n->args = (yyvsp[(3) - (3)].list);
(yyval.vsetstmt) = n;
}
break;
case 174:
/* Line 1464 of yacc.c */
#line 1271 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = (yyvsp[(1) - (3)].str);
n->args = (yyvsp[(3) - (3)].list);
(yyval.vsetstmt) = n;
}
break;
case 175:
/* Line 1464 of yacc.c */
#line 1279 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_DEFAULT;
n->name = (yyvsp[(1) - (3)].str);
(yyval.vsetstmt) = n;
}
break;
case 176:
/* Line 1464 of yacc.c */
#line 1286 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_DEFAULT;
n->name = (yyvsp[(1) - (3)].str);
(yyval.vsetstmt) = n;
}
break;
case 177:
/* Line 1464 of yacc.c */
#line 1293 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_CURRENT;
n->name = (yyvsp[(1) - (3)].str);
(yyval.vsetstmt) = n;
}
break;
case 178:
/* Line 1464 of yacc.c */
#line 1301 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = "timezone";
if ((yyvsp[(3) - (3)].node) != NULL)
n->args = list_make1((yyvsp[(3) - (3)].node));
else
n->kind = VAR_SET_DEFAULT;
(yyval.vsetstmt) = n;
}
break;
case 179:
/* Line 1464 of yacc.c */
#line 1312 "gram.y"
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("current database cannot be changed"),
parser_errposition((yylsp[(2) - (2)]))));
(yyval.vsetstmt) = NULL; /*not reached*/
}
break;
case 180:
/* Line 1464 of yacc.c */
#line 1320 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = "search_path";
n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
(yyval.vsetstmt) = n;
}
break;
case 181:
/* Line 1464 of yacc.c */
#line 1328 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = "client_encoding";
if ((yyvsp[(2) - (2)].str) != NULL)
n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
else
n->kind = VAR_SET_DEFAULT;
(yyval.vsetstmt) = n;
}
break;
case 182:
/* Line 1464 of yacc.c */
#line 1339 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = "role";
n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
(yyval.vsetstmt) = n;
}
break;
case 183:
/* Line 1464 of yacc.c */
#line 1347 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = "session_authorization";
n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])));
(yyval.vsetstmt) = n;
}
break;
case 184:
/* Line 1464 of yacc.c */
#line 1355 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_DEFAULT;
n->name = "session_authorization";
(yyval.vsetstmt) = n;
}
break;
case 185:
/* Line 1464 of yacc.c */
#line 1362 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_VALUE;
n->name = "xmloption";
n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[(3) - (3)])));
(yyval.vsetstmt) = n;
}
break;
case 186:
/* Line 1464 of yacc.c */
#line 1371 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_SET_MULTI;
n->name = "TRANSACTION SNAPSHOT";
n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])));
(yyval.vsetstmt) = n;
}
break;
case 187:
/* Line 1464 of yacc.c */
#line 1380 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 188:
/* Line 1464 of yacc.c */
#line 1382 "gram.y"
{
(yyval.str) = palloc(strlen((yyvsp[(1) - (3)].str)) + strlen((yyvsp[(3) - (3)].str)) + 2);
sprintf((yyval.str), "%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
}
break;
case 189:
/* Line 1464 of yacc.c */
#line 1388 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 190:
/* Line 1464 of yacc.c */
#line 1389 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 191:
/* Line 1464 of yacc.c */
#line 1393 "gram.y"
{ (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); }
break;
case 192:
/* Line 1464 of yacc.c */
#line 1395 "gram.y"
{ (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); }
break;
case 193:
/* Line 1464 of yacc.c */
#line 1398 "gram.y"
{ (yyval.str) = "read uncommitted"; }
break;
case 194:
/* Line 1464 of yacc.c */
#line 1399 "gram.y"
{ (yyval.str) = "read committed"; }
break;
case 195:
/* Line 1464 of yacc.c */
#line 1400 "gram.y"
{ (yyval.str) = "repeatable read"; }
break;
case 196:
/* Line 1464 of yacc.c */
#line 1401 "gram.y"
{ (yyval.str) = "serializable"; }
break;
case 197:
/* Line 1464 of yacc.c */
#line 1405 "gram.y"
{ (yyval.str) = "true"; }
break;
case 198:
/* Line 1464 of yacc.c */
#line 1406 "gram.y"
{ (yyval.str) = "false"; }
break;
case 199:
/* Line 1464 of yacc.c */
#line 1407 "gram.y"
{ (yyval.str) = "on"; }
break;
case 200:
/* Line 1464 of yacc.c */
#line 1413 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 201:
/* Line 1464 of yacc.c */
#line 1426 "gram.y"
{
(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 202:
/* Line 1464 of yacc.c */
#line 1430 "gram.y"
{
(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 203:
/* Line 1464 of yacc.c */
#line 1434 "gram.y"
{
TypeName *t = (yyvsp[(1) - (3)].typnam);
if ((yyvsp[(3) - (3)].list) != NIL)
{
A_Const *n = (A_Const *) linitial((yyvsp[(3) - (3)].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[(3) - (3)]))));
}
t->typmods = (yyvsp[(3) - (3)].list);
(yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
}
break;
case 204:
/* Line 1464 of yacc.c */
#line 1449 "gram.y"
{
TypeName *t = (yyvsp[(1) - (6)].typnam);
if ((yyvsp[(6) - (6)].list) != NIL)
{
A_Const *n = (A_Const *) linitial((yyvsp[(6) - (6)].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[(6) - (6)]))));
if (list_length((yyvsp[(6) - (6)].list)) != 1)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("interval precision specified twice"),
parser_errposition((yylsp[(1) - (6)]))));
t->typmods = lappend((yyvsp[(6) - (6)].list), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
}
else
t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
(yyval.node) = makeStringConstCast((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]), t);
}
break;
case 205:
/* Line 1464 of yacc.c */
#line 1471 "gram.y"
{ (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); }
break;
case 206:
/* Line 1464 of yacc.c */
#line 1472 "gram.y"
{ (yyval.node) = NULL; }
break;
case 207:
/* Line 1464 of yacc.c */
#line 1473 "gram.y"
{ (yyval.node) = NULL; }
break;
case 208:
/* Line 1464 of yacc.c */
#line 1477 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 209:
/* Line 1464 of yacc.c */
#line 1478 "gram.y"
{ (yyval.str) = NULL; }
break;
case 210:
/* Line 1464 of yacc.c */
#line 1479 "gram.y"
{ (yyval.str) = NULL; }
break;
case 211:
/* Line 1464 of yacc.c */
#line 1483 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 212:
/* Line 1464 of yacc.c */
#line 1484 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 213:
/* Line 1464 of yacc.c */
#line 1489 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_RESET;
n->name = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *) n;
}
break;
case 214:
/* Line 1464 of yacc.c */
#line 1496 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_RESET;
n->name = "timezone";
(yyval.node) = (Node *) n;
}
break;
case 215:
/* Line 1464 of yacc.c */
#line 1503 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_RESET;
n->name = "transaction_isolation";
(yyval.node) = (Node *) n;
}
break;
case 216:
/* Line 1464 of yacc.c */
#line 1510 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_RESET;
n->name = "session_authorization";
(yyval.node) = (Node *) n;
}
break;
case 217:
/* Line 1464 of yacc.c */
#line 1517 "gram.y"
{
VariableSetStmt *n = makeNode(VariableSetStmt);
n->kind = VAR_RESET_ALL;
(yyval.node) = (Node *) n;
}
break;
case 218:
/* Line 1464 of yacc.c */
#line 1526 "gram.y"
{ (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); }
break;
case 219:
/* Line 1464 of yacc.c */
#line 1527 "gram.y"
{ (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); }
break;
case 220:
/* Line 1464 of yacc.c */
#line 1532 "gram.y"
{ (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); }
break;
case 221:
/* Line 1464 of yacc.c */
#line 1533 "gram.y"
{ (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); }
break;
case 222:
/* Line 1464 of yacc.c */
#line 1539 "gram.y"
{
VariableShowStmt *n = makeNode(VariableShowStmt);
n->name = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *) n;
}
break;
case 223:
/* Line 1464 of yacc.c */
#line 1545 "gram.y"
{
VariableShowStmt *n = makeNode(VariableShowStmt);
n->name = "timezone";
(yyval.node) = (Node *) n;
}
break;
case 224:
/* Line 1464 of yacc.c */
#line 1551 "gram.y"
{
VariableShowStmt *n = makeNode(VariableShowStmt);
n->name = "transaction_isolation";
(yyval.node) = (Node *) n;
}
break;
case 225:
/* Line 1464 of yacc.c */
#line 1557 "gram.y"
{
VariableShowStmt *n = makeNode(VariableShowStmt);
n->name = "session_authorization";
(yyval.node) = (Node *) n;
}
break;
case 226:
/* Line 1464 of yacc.c */
#line 1563 "gram.y"
{
VariableShowStmt *n = makeNode(VariableShowStmt);
n->name = "all";
(yyval.node) = (Node *) n;
}
break;
case 227:
/* Line 1464 of yacc.c */
#line 1573 "gram.y"
{
ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
n->constraints = (yyvsp[(3) - (4)].list);
n->deferred = (yyvsp[(4) - (4)].boolean);
(yyval.node) = (Node *) n;
}
break;
case 228:
/* Line 1464 of yacc.c */
#line 1582 "gram.y"
{ (yyval.list) = NIL; }
break;
case 229:
/* Line 1464 of yacc.c */
#line 1583 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 230:
/* Line 1464 of yacc.c */
#line 1587 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 231:
/* Line 1464 of yacc.c */
#line 1588 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 232:
/* Line 1464 of yacc.c */
#line 1597 "gram.y"
{
CheckPointStmt *n = makeNode(CheckPointStmt);
(yyval.node) = (Node *)n;
}
break;
case 233:
/* Line 1464 of yacc.c */
#line 1612 "gram.y"
{
DiscardStmt *n = makeNode(DiscardStmt);
n->target = DISCARD_ALL;
(yyval.node) = (Node *) n;
}
break;
case 234:
/* Line 1464 of yacc.c */
#line 1618 "gram.y"
{
DiscardStmt *n = makeNode(DiscardStmt);
n->target = DISCARD_TEMP;
(yyval.node) = (Node *) n;
}
break;
case 235:
/* Line 1464 of yacc.c */
#line 1624 "gram.y"
{
DiscardStmt *n = makeNode(DiscardStmt);
n->target = DISCARD_TEMP;
(yyval.node) = (Node *) n;
}
break;
case 236:
/* Line 1464 of yacc.c */
#line 1630 "gram.y"
{
DiscardStmt *n = makeNode(DiscardStmt);
n->target = DISCARD_PLANS;
(yyval.node) = (Node *) n;
}
break;
case 237:
/* Line 1464 of yacc.c */
#line 1648 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(3) - (4)].range);
n->cmds = (yyvsp[(4) - (4)].list);
n->relkind = OBJECT_TABLE;
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 238:
/* Line 1464 of yacc.c */
#line 1657 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(5) - (6)].range);
n->cmds = (yyvsp[(6) - (6)].list);
n->relkind = OBJECT_TABLE;
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 239:
/* Line 1464 of yacc.c */
#line 1666 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(3) - (4)].range);
n->cmds = (yyvsp[(4) - (4)].list);
n->relkind = OBJECT_INDEX;
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 240:
/* Line 1464 of yacc.c */
#line 1675 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(5) - (6)].range);
n->cmds = (yyvsp[(6) - (6)].list);
n->relkind = OBJECT_INDEX;
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 241:
/* Line 1464 of yacc.c */
#line 1684 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(3) - (4)].range);
n->cmds = (yyvsp[(4) - (4)].list);
n->relkind = OBJECT_SEQUENCE;
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 242:
/* Line 1464 of yacc.c */
#line 1693 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(5) - (6)].range);
n->cmds = (yyvsp[(6) - (6)].list);
n->relkind = OBJECT_SEQUENCE;
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 243:
/* Line 1464 of yacc.c */
#line 1702 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(3) - (4)].range);
n->cmds = (yyvsp[(4) - (4)].list);
n->relkind = OBJECT_VIEW;
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 244:
/* Line 1464 of yacc.c */
#line 1711 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(5) - (6)].range);
n->cmds = (yyvsp[(6) - (6)].list);
n->relkind = OBJECT_VIEW;
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 245:
/* Line 1464 of yacc.c */
#line 1722 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 246:
/* Line 1464 of yacc.c */
#line 1723 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 247:
/* Line 1464 of yacc.c */
#line 1729 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AddColumn;
n->def = (yyvsp[(2) - (2)].node);
(yyval.node) = (Node *)n;
}
break;
case 248:
/* Line 1464 of yacc.c */
#line 1737 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AddColumn;
n->def = (yyvsp[(3) - (3)].node);
(yyval.node) = (Node *)n;
}
break;
case 249:
/* Line 1464 of yacc.c */
#line 1745 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_ColumnDefault;
n->name = (yyvsp[(3) - (4)].str);
n->def = (yyvsp[(4) - (4)].node);
(yyval.node) = (Node *)n;
}
break;
case 250:
/* Line 1464 of yacc.c */
#line 1754 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropNotNull;
n->name = (yyvsp[(3) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 251:
/* Line 1464 of yacc.c */
#line 1762 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_SetNotNull;
n->name = (yyvsp[(3) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 252:
/* Line 1464 of yacc.c */
#line 1770 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_SetStatistics;
n->name = (yyvsp[(3) - (6)].str);
n->def = (Node *) makeInteger((yyvsp[(6) - (6)].ival));
(yyval.node) = (Node *)n;
}
break;
case 253:
/* Line 1464 of yacc.c */
#line 1779 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_SetOptions;
n->name = (yyvsp[(3) - (5)].str);
n->def = (Node *) (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 254:
/* Line 1464 of yacc.c */
#line 1788 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_ResetOptions;
n->name = (yyvsp[(3) - (5)].str);
n->def = (Node *) (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 255:
/* Line 1464 of yacc.c */
#line 1797 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_SetStorage;
n->name = (yyvsp[(3) - (6)].str);
n->def = (Node *) makeString((yyvsp[(6) - (6)].str));
(yyval.node) = (Node *)n;
}
break;
case 256:
/* Line 1464 of yacc.c */
#line 1806 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropColumn;
n->name = (yyvsp[(5) - (6)].str);
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->missing_ok = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 257:
/* Line 1464 of yacc.c */
#line 1816 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropColumn;
n->name = (yyvsp[(3) - (4)].str);
n->behavior = (yyvsp[(4) - (4)].dbehavior);
n->missing_ok = FALSE;
(yyval.node) = (Node *)n;
}
break;
case 258:
/* Line 1464 of yacc.c */
#line 1829 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
ColumnDef *def = makeNode(ColumnDef);
n->subtype = AT_AlterColumnType;
n->name = (yyvsp[(3) - (8)].str);
n->def = (Node *) def;
/* We only use these three fields of the ColumnDef node */
def->typeName = (yyvsp[(6) - (8)].typnam);
def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node);
def->raw_default = (yyvsp[(8) - (8)].node);
(yyval.node) = (Node *)n;
}
break;
case 259:
/* Line 1464 of yacc.c */
#line 1843 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AlterColumnGenericOptions;
n->name = (yyvsp[(3) - (4)].str);
n->def = (Node *) (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 260:
/* Line 1464 of yacc.c */
#line 1852 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AddConstraint;
n->def = (yyvsp[(2) - (2)].node);
(yyval.node) = (Node *)n;
}
break;
case 261:
/* Line 1464 of yacc.c */
#line 1860 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_ValidateConstraint;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 262:
/* Line 1464 of yacc.c */
#line 1868 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropConstraint;
n->name = (yyvsp[(5) - (6)].str);
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->missing_ok = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 263:
/* Line 1464 of yacc.c */
#line 1878 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropConstraint;
n->name = (yyvsp[(3) - (4)].str);
n->behavior = (yyvsp[(4) - (4)].dbehavior);
n->missing_ok = FALSE;
(yyval.node) = (Node *)n;
}
break;
case 264:
/* Line 1464 of yacc.c */
#line 1888 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AddOids;
(yyval.node) = (Node *)n;
}
break;
case 265:
/* Line 1464 of yacc.c */
#line 1895 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropOids;
(yyval.node) = (Node *)n;
}
break;
case 266:
/* Line 1464 of yacc.c */
#line 1902 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_ClusterOn;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 267:
/* Line 1464 of yacc.c */
#line 1910 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropCluster;
n->name = NULL;
(yyval.node) = (Node *)n;
}
break;
case 268:
/* Line 1464 of yacc.c */
#line 1918 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableTrig;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 269:
/* Line 1464 of yacc.c */
#line 1926 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableAlwaysTrig;
n->name = (yyvsp[(4) - (4)].str);
(yyval.node) = (Node *)n;
}
break;
case 270:
/* Line 1464 of yacc.c */
#line 1934 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableReplicaTrig;
n->name = (yyvsp[(4) - (4)].str);
(yyval.node) = (Node *)n;
}
break;
case 271:
/* Line 1464 of yacc.c */
#line 1942 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableTrigAll;
(yyval.node) = (Node *)n;
}
break;
case 272:
/* Line 1464 of yacc.c */
#line 1949 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableTrigUser;
(yyval.node) = (Node *)n;
}
break;
case 273:
/* Line 1464 of yacc.c */
#line 1956 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DisableTrig;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 274:
/* Line 1464 of yacc.c */
#line 1964 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DisableTrigAll;
(yyval.node) = (Node *)n;
}
break;
case 275:
/* Line 1464 of yacc.c */
#line 1971 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DisableTrigUser;
(yyval.node) = (Node *)n;
}
break;
case 276:
/* Line 1464 of yacc.c */
#line 1978 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableRule;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 277:
/* Line 1464 of yacc.c */
#line 1986 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableAlwaysRule;
n->name = (yyvsp[(4) - (4)].str);
(yyval.node) = (Node *)n;
}
break;
case 278:
/* Line 1464 of yacc.c */
#line 1994 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_EnableReplicaRule;
n->name = (yyvsp[(4) - (4)].str);
(yyval.node) = (Node *)n;
}
break;
case 279:
/* Line 1464 of yacc.c */
#line 2002 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DisableRule;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 280:
/* Line 1464 of yacc.c */
#line 2010 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AddInherit;
n->def = (Node *) (yyvsp[(2) - (2)].range);
(yyval.node) = (Node *)n;
}
break;
case 281:
/* Line 1464 of yacc.c */
#line 2018 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropInherit;
n->def = (Node *) (yyvsp[(3) - (3)].range);
(yyval.node) = (Node *)n;
}
break;
case 282:
/* Line 1464 of yacc.c */
#line 2026 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
TypeName *def = makeTypeNameFromNameList((yyvsp[(2) - (2)].list));
def->location = (yylsp[(2) - (2)]);
n->subtype = AT_AddOf;
n->def = (Node *) def;
(yyval.node) = (Node *)n;
}
break;
case 283:
/* Line 1464 of yacc.c */
#line 2036 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropOf;
(yyval.node) = (Node *)n;
}
break;
case 284:
/* Line 1464 of yacc.c */
#line 2043 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_ChangeOwner;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 285:
/* Line 1464 of yacc.c */
#line 2051 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_SetTableSpace;
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 286:
/* Line 1464 of yacc.c */
#line 2059 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_SetRelOptions;
n->def = (Node *)(yyvsp[(2) - (2)].list);
(yyval.node) = (Node *)n;
}
break;
case 287:
/* Line 1464 of yacc.c */
#line 2067 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_ResetRelOptions;
n->def = (Node *)(yyvsp[(2) - (2)].list);
(yyval.node) = (Node *)n;
}
break;
case 288:
/* Line 1464 of yacc.c */
#line 2074 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_GenericOptions;
n->def = (Node *)(yyvsp[(1) - (1)].list);
(yyval.node) = (Node *) n;
}
break;
case 289:
/* Line 1464 of yacc.c */
#line 2083 "gram.y"
{ (yyval.node) = (yyvsp[(3) - (3)].node); }
break;
case 290:
/* Line 1464 of yacc.c */
#line 2084 "gram.y"
{ (yyval.node) = NULL; }
break;
case 291:
/* Line 1464 of yacc.c */
#line 2088 "gram.y"
{ (yyval.dbehavior) = DROP_CASCADE; }
break;
case 292:
/* Line 1464 of yacc.c */
#line 2089 "gram.y"
{ (yyval.dbehavior) = DROP_RESTRICT; }
break;
case 293:
/* Line 1464 of yacc.c */
#line 2090 "gram.y"
{ (yyval.dbehavior) = DROP_RESTRICT; /* default */ }
break;
case 294:
/* Line 1464 of yacc.c */
#line 2095 "gram.y"
{
CollateClause *n = makeNode(CollateClause);
n->arg = NULL;
n->collname = (yyvsp[(2) - (2)].list);
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *) n;
}
break;
case 295:
/* Line 1464 of yacc.c */
#line 2102 "gram.y"
{ (yyval.node) = NULL; }
break;
case 296:
/* Line 1464 of yacc.c */
#line 2106 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 297:
/* Line 1464 of yacc.c */
#line 2107 "gram.y"
{ (yyval.node) = NULL; }
break;
case 298:
/* Line 1464 of yacc.c */
#line 2111 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 299:
/* Line 1464 of yacc.c */
#line 2114 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 300:
/* Line 1464 of yacc.c */
#line 2115 "gram.y"
{ (yyval.list) = NIL; }
break;
case 301:
/* Line 1464 of yacc.c */
#line 2119 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 302:
/* Line 1464 of yacc.c */
#line 2120 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); }
break;
case 303:
/* Line 1464 of yacc.c */
#line 2126 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node));
}
break;
case 304:
/* Line 1464 of yacc.c */
#line 2130 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL);
}
break;
case 305:
/* Line 1464 of yacc.c */
#line 2134 "gram.y"
{
(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (Node *) (yyvsp[(5) - (5)].node),
DEFELEM_UNSPEC);
}
break;
case 306:
/* Line 1464 of yacc.c */
#line 2139 "gram.y"
{
(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC);
}
break;
case 307:
/* Line 1464 of yacc.c */
#line 2154 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
/* can't use qualified_name, sigh */
n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (4)].list), (yylsp[(3) - (4)]), yyscanner);
n->cmds = (yyvsp[(4) - (4)].list);
n->relkind = OBJECT_TYPE;
(yyval.node) = (Node *)n;
}
break;
case 308:
/* Line 1464 of yacc.c */
#line 2166 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 309:
/* Line 1464 of yacc.c */
#line 2167 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 310:
/* Line 1464 of yacc.c */
#line 2173 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_AddColumn;
n->def = (yyvsp[(3) - (4)].node);
n->behavior = (yyvsp[(4) - (4)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 311:
/* Line 1464 of yacc.c */
#line 2182 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropColumn;
n->name = (yyvsp[(5) - (6)].str);
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->missing_ok = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 312:
/* Line 1464 of yacc.c */
#line 2192 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
n->subtype = AT_DropColumn;
n->name = (yyvsp[(3) - (4)].str);
n->behavior = (yyvsp[(4) - (4)].dbehavior);
n->missing_ok = FALSE;
(yyval.node) = (Node *)n;
}
break;
case 313:
/* Line 1464 of yacc.c */
#line 2202 "gram.y"
{
AlterTableCmd *n = makeNode(AlterTableCmd);
ColumnDef *def = makeNode(ColumnDef);
n->subtype = AT_AlterColumnType;
n->name = (yyvsp[(3) - (8)].str);
n->def = (Node *) def;
n->behavior = (yyvsp[(8) - (8)].dbehavior);
/* We only use these three fields of the ColumnDef node */
def->typeName = (yyvsp[(6) - (8)].typnam);
def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node);
def->raw_default = NULL;
(yyval.node) = (Node *)n;
}
break;
case 314:
/* Line 1464 of yacc.c */
#line 2227 "gram.y"
{
ClosePortalStmt *n = makeNode(ClosePortalStmt);
n->portalname = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *)n;
}
break;
case 315:
/* Line 1464 of yacc.c */
#line 2233 "gram.y"
{
ClosePortalStmt *n = makeNode(ClosePortalStmt);
n->portalname = NULL;
(yyval.node) = (Node *)n;
}
break;
case 316:
/* Line 1464 of yacc.c */
#line 2261 "gram.y"
{
CopyStmt *n = makeNode(CopyStmt);
n->relation = (yyvsp[(3) - (10)].range);
n->query = NULL;
n->attlist = (yyvsp[(4) - (10)].list);
n->is_from = (yyvsp[(6) - (10)].boolean);
n->filename = (yyvsp[(7) - (10)].str);
n->options = NIL;
/* Concatenate user-supplied flags */
if ((yyvsp[(2) - (10)].defelt))
n->options = lappend(n->options, (yyvsp[(2) - (10)].defelt));
if ((yyvsp[(5) - (10)].defelt))
n->options = lappend(n->options, (yyvsp[(5) - (10)].defelt));
if ((yyvsp[(8) - (10)].defelt))
n->options = lappend(n->options, (yyvsp[(8) - (10)].defelt));
if ((yyvsp[(10) - (10)].list))
n->options = list_concat(n->options, (yyvsp[(10) - (10)].list));
(yyval.node) = (Node *)n;
}
break;
case 317:
/* Line 1464 of yacc.c */
#line 2282 "gram.y"
{
CopyStmt *n = makeNode(CopyStmt);
n->relation = NULL;
n->query = (yyvsp[(2) - (6)].node);
n->attlist = NIL;
n->is_from = false;
n->filename = (yyvsp[(4) - (6)].str);
n->options = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 318:
/* Line 1464 of yacc.c */
#line 2295 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 319:
/* Line 1464 of yacc.c */
#line 2296 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 320:
/* Line 1464 of yacc.c */
#line 2305 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 321:
/* Line 1464 of yacc.c */
#line 2306 "gram.y"
{ (yyval.str) = NULL; }
break;
case 322:
/* Line 1464 of yacc.c */
#line 2307 "gram.y"
{ (yyval.str) = NULL; }
break;
case 323:
/* Line 1464 of yacc.c */
#line 2310 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 324:
/* Line 1464 of yacc.c */
#line 2311 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 325:
/* Line 1464 of yacc.c */
#line 2316 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 326:
/* Line 1464 of yacc.c */
#line 2317 "gram.y"
{ (yyval.list) = NIL; }
break;
case 327:
/* Line 1464 of yacc.c */
#line 2322 "gram.y"
{
(yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"));
}
break;
case 328:
/* Line 1464 of yacc.c */
#line 2326 "gram.y"
{
(yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE));
}
break;
case 329:
/* Line 1464 of yacc.c */
#line 2330 "gram.y"
{
(yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 330:
/* Line 1464 of yacc.c */
#line 2334 "gram.y"
{
(yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 331:
/* Line 1464 of yacc.c */
#line 2338 "gram.y"
{
(yyval.defelt) = makeDefElem("format", (Node *)makeString("csv"));
}
break;
case 332:
/* Line 1464 of yacc.c */
#line 2342 "gram.y"
{
(yyval.defelt) = makeDefElem("header", (Node *)makeInteger(TRUE));
}
break;
case 333:
/* Line 1464 of yacc.c */
#line 2346 "gram.y"
{
(yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 334:
/* Line 1464 of yacc.c */
#line 2350 "gram.y"
{
(yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 335:
/* Line 1464 of yacc.c */
#line 2354 "gram.y"
{
(yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 336:
/* Line 1464 of yacc.c */
#line 2358 "gram.y"
{
(yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star));
}
break;
case 337:
/* Line 1464 of yacc.c */
#line 2362 "gram.y"
{
(yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[(4) - (4)].list));
}
break;
case 338:
/* Line 1464 of yacc.c */
#line 2366 "gram.y"
{
(yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 339:
/* Line 1464 of yacc.c */
#line 2375 "gram.y"
{
(yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"));
}
break;
case 340:
/* Line 1464 of yacc.c */
#line 2378 "gram.y"
{ (yyval.defelt) = NULL; }
break;
case 341:
/* Line 1464 of yacc.c */
#line 2383 "gram.y"
{
(yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE));
}
break;
case 342:
/* Line 1464 of yacc.c */
#line 2386 "gram.y"
{ (yyval.defelt) = NULL; }
break;
case 343:
/* Line 1464 of yacc.c */
#line 2391 "gram.y"
{
(yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 344:
/* Line 1464 of yacc.c */
#line 2394 "gram.y"
{ (yyval.defelt) = NULL; }
break;
case 345:
/* Line 1464 of yacc.c */
#line 2398 "gram.y"
{}
break;
case 346:
/* Line 1464 of yacc.c */
#line 2399 "gram.y"
{}
break;
case 347:
/* Line 1464 of yacc.c */
#line 2405 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
}
break;
case 348:
/* Line 1464 of yacc.c */
#line 2409 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
}
break;
case 349:
/* Line 1464 of yacc.c */
#line 2416 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node));
}
break;
case 350:
/* Line 1464 of yacc.c */
#line 2422 "gram.y"
{ (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); }
break;
case 351:
/* Line 1464 of yacc.c */
#line 2423 "gram.y"
{ (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); }
break;
case 352:
/* Line 1464 of yacc.c */
#line 2424 "gram.y"
{ (yyval.node) = (Node *) makeNode(A_Star); }
break;
case 353:
/* Line 1464 of yacc.c */
#line 2425 "gram.y"
{ (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); }
break;
case 354:
/* Line 1464 of yacc.c */
#line 2426 "gram.y"
{ (yyval.node) = NULL; }
break;
case 355:
/* Line 1464 of yacc.c */
#line 2431 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 356:
/* Line 1464 of yacc.c */
#line 2435 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 357:
/* Line 1464 of yacc.c */
#line 2442 "gram.y"
{ (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); }
break;
case 358:
/* Line 1464 of yacc.c */
#line 2455 "gram.y"
{
CreateStmt *n = makeNode(CreateStmt);
(yyvsp[(4) - (11)].range)->relpersistence = (yyvsp[(2) - (11)].ival);
n->relation = (yyvsp[(4) - (11)].range);
n->tableElts = (yyvsp[(6) - (11)].list);
n->inhRelations = (yyvsp[(8) - (11)].list);
n->constraints = NIL;
n->options = (yyvsp[(9) - (11)].list);
n->oncommit = (yyvsp[(10) - (11)].oncommit);
n->tablespacename = (yyvsp[(11) - (11)].str);
n->if_not_exists = false;
(yyval.node) = (Node *)n;
}
break;
case 359:
/* Line 1464 of yacc.c */
#line 2471 "gram.y"
{
CreateStmt *n = makeNode(CreateStmt);
(yyvsp[(7) - (14)].range)->relpersistence = (yyvsp[(2) - (14)].ival);
n->relation = (yyvsp[(7) - (14)].range);
n->tableElts = (yyvsp[(9) - (14)].list);
n->inhRelations = (yyvsp[(11) - (14)].list);
n->constraints = NIL;
n->options = (yyvsp[(12) - (14)].list);
n->oncommit = (yyvsp[(13) - (14)].oncommit);
n->tablespacename = (yyvsp[(14) - (14)].str);
n->if_not_exists = true;
(yyval.node) = (Node *)n;
}
break;
case 360:
/* Line 1464 of yacc.c */
#line 2486 "gram.y"
{
CreateStmt *n = makeNode(CreateStmt);
(yyvsp[(4) - (10)].range)->relpersistence = (yyvsp[(2) - (10)].ival);
n->relation = (yyvsp[(4) - (10)].range);
n->tableElts = (yyvsp[(7) - (10)].list);
n->ofTypename = makeTypeNameFromNameList((yyvsp[(6) - (10)].list));
n->ofTypename->location = (yylsp[(6) - (10)]);
n->constraints = NIL;
n->options = (yyvsp[(8) - (10)].list);
n->oncommit = (yyvsp[(9) - (10)].oncommit);
n->tablespacename = (yyvsp[(10) - (10)].str);
n->if_not_exists = false;
(yyval.node) = (Node *)n;
}
break;
case 361:
/* Line 1464 of yacc.c */
#line 2502 "gram.y"
{
CreateStmt *n = makeNode(CreateStmt);
(yyvsp[(7) - (13)].range)->relpersistence = (yyvsp[(2) - (13)].ival);
n->relation = (yyvsp[(7) - (13)].range);
n->tableElts = (yyvsp[(10) - (13)].list);
n->ofTypename = makeTypeNameFromNameList((yyvsp[(9) - (13)].list));
n->ofTypename->location = (yylsp[(9) - (13)]);
n->constraints = NIL;
n->options = (yyvsp[(11) - (13)].list);
n->oncommit = (yyvsp[(12) - (13)].oncommit);
n->tablespacename = (yyvsp[(13) - (13)].str);
n->if_not_exists = true;
(yyval.node) = (Node *)n;
}
break;
case 362:
/* Line 1464 of yacc.c */
#line 2529 "gram.y"
{ (yyval.ival) = RELPERSISTENCE_TEMP; }
break;
case 363:
/* Line 1464 of yacc.c */
#line 2530 "gram.y"
{ (yyval.ival) = RELPERSISTENCE_TEMP; }
break;
case 364:
/* Line 1464 of yacc.c */
#line 2531 "gram.y"
{ (yyval.ival) = RELPERSISTENCE_TEMP; }
break;
case 365:
/* Line 1464 of yacc.c */
#line 2532 "gram.y"
{ (yyval.ival) = RELPERSISTENCE_TEMP; }
break;
case 366:
/* Line 1464 of yacc.c */
#line 2534 "gram.y"
{
ereport(WARNING,
(errmsg("GLOBAL is deprecated in temporary table creation"),
parser_errposition((yylsp[(1) - (2)]))));
(yyval.ival) = RELPERSISTENCE_TEMP;
}
break;
case 367:
/* Line 1464 of yacc.c */
#line 2541 "gram.y"
{
ereport(WARNING,
(errmsg("GLOBAL is deprecated in temporary table creation"),
parser_errposition((yylsp[(1) - (2)]))));
(yyval.ival) = RELPERSISTENCE_TEMP;
}
break;
case 368:
/* Line 1464 of yacc.c */
#line 2547 "gram.y"
{ (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
break;
case 369:
/* Line 1464 of yacc.c */
#line 2548 "gram.y"
{ (yyval.ival) = RELPERSISTENCE_PERMANENT; }
break;
case 370:
/* Line 1464 of yacc.c */
#line 2552 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 371:
/* Line 1464 of yacc.c */
#line 2553 "gram.y"
{ (yyval.list) = NIL; }
break;
case 372:
/* Line 1464 of yacc.c */
#line 2557 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 373:
/* Line 1464 of yacc.c */
#line 2558 "gram.y"
{ (yyval.list) = NIL; }
break;
case 374:
/* Line 1464 of yacc.c */
#line 2563 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 375:
/* Line 1464 of yacc.c */
#line 2567 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 376:
/* Line 1464 of yacc.c */
#line 2574 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 377:
/* Line 1464 of yacc.c */
#line 2578 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 378:
/* Line 1464 of yacc.c */
#line 2584 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 379:
/* Line 1464 of yacc.c */
#line 2585 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 380:
/* Line 1464 of yacc.c */
#line 2586 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 381:
/* Line 1464 of yacc.c */
#line 2590 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 382:
/* Line 1464 of yacc.c */
#line 2591 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 383:
/* Line 1464 of yacc.c */
#line 2595 "gram.y"
{
ColumnDef *n = makeNode(ColumnDef);
n->colname = (yyvsp[(1) - (4)].str);
n->typeName = (yyvsp[(2) - (4)].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[(3) - (4)].list);
SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause,
yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 384:
/* Line 1464 of yacc.c */
#line 2615 "gram.y"
{
ColumnDef *n = makeNode(ColumnDef);
n->colname = (yyvsp[(1) - (4)].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[(4) - (4)].list), &n->constraints, &n->collClause,
yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 385:
/* Line 1464 of yacc.c */
#line 2634 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); }
break;
case 386:
/* Line 1464 of yacc.c */
#line 2635 "gram.y"
{ (yyval.list) = NIL; }
break;
case 387:
/* Line 1464 of yacc.c */
#line 2640 "gram.y"
{
Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node);
Assert(IsA(n, Constraint));
n->conname = (yyvsp[(2) - (3)].str);
n->location = (yylsp[(1) - (3)]);
(yyval.node) = (Node *) n;
}
break;
case 388:
/* Line 1464 of yacc.c */
#line 2647 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 389:
/* Line 1464 of yacc.c */
#line 2648 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 390:
/* Line 1464 of yacc.c */
#line 2650 "gram.y"
{
/*
* 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[(2) - (2)].list);
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *) n;
}
break;
case 391:
/* Line 1464 of yacc.c */
#line 2681 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_NOTNULL;
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 392:
/* Line 1464 of yacc.c */
#line 2688 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 393:
/* Line 1464 of yacc.c */
#line 2695 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_UNIQUE;
n->location = (yylsp[(1) - (3)]);
n->keys = NULL;
n->options = (yyvsp[(2) - (3)].list);
n->indexname = NULL;
n->indexspace = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 394:
/* Line 1464 of yacc.c */
#line 2706 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_PRIMARY;
n->location = (yylsp[(1) - (4)]);
n->keys = NULL;
n->options = (yyvsp[(3) - (4)].list);
n->indexname = NULL;
n->indexspace = (yyvsp[(4) - (4)].str);
(yyval.node) = (Node *)n;
}
break;
case 395:
/* Line 1464 of yacc.c */
#line 2717 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_CHECK;
n->location = (yylsp[(1) - (5)]);
n->is_no_inherit = (yyvsp[(5) - (5)].boolean);
n->raw_expr = (yyvsp[(3) - (5)].node);
n->cooked_expr = NULL;
(yyval.node) = (Node *)n;
}
break;
case 396:
/* Line 1464 of yacc.c */
#line 2727 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_DEFAULT;
n->location = (yylsp[(1) - (2)]);
n->raw_expr = (yyvsp[(2) - (2)].node);
n->cooked_expr = NULL;
(yyval.node) = (Node *)n;
}
break;
case 397:
/* Line 1464 of yacc.c */
#line 2736 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_FOREIGN;
n->location = (yylsp[(1) - (5)]);
n->pktable = (yyvsp[(2) - (5)].range);
n->fk_attrs = NIL;
n->pk_attrs = (yyvsp[(3) - (5)].list);
n->fk_matchtype = (yyvsp[(4) - (5)].ival);
n->fk_upd_action = (char) ((yyvsp[(5) - (5)].ival) >> 8);
n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF);
n->skip_validation = false;
n->initially_valid = true;
(yyval.node) = (Node *)n;
}
break;
case 398:
/* Line 1464 of yacc.c */
#line 2769 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_ATTR_DEFERRABLE;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 399:
/* Line 1464 of yacc.c */
#line 2776 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 400:
/* Line 1464 of yacc.c */
#line 2783 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_ATTR_DEFERRED;
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 401:
/* Line 1464 of yacc.c */
#line 2790 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_ATTR_IMMEDIATE;
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 402:
/* Line 1464 of yacc.c */
#line 2801 "gram.y"
{
TableLikeClause *n = makeNode(TableLikeClause);
n->relation = (yyvsp[(2) - (3)].range);
n->options = (yyvsp[(3) - (3)].ival);
(yyval.node) = (Node *)n;
}
break;
case 403:
/* Line 1464 of yacc.c */
#line 2810 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); }
break;
case 404:
/* Line 1464 of yacc.c */
#line 2811 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); }
break;
case 405:
/* Line 1464 of yacc.c */
#line 2812 "gram.y"
{ (yyval.ival) = 0; }
break;
case 406:
/* Line 1464 of yacc.c */
#line 2816 "gram.y"
{ (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; }
break;
case 407:
/* Line 1464 of yacc.c */
#line 2817 "gram.y"
{ (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; }
break;
case 408:
/* Line 1464 of yacc.c */
#line 2818 "gram.y"
{ (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; }
break;
case 409:
/* Line 1464 of yacc.c */
#line 2819 "gram.y"
{ (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; }
break;
case 410:
/* Line 1464 of yacc.c */
#line 2820 "gram.y"
{ (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; }
break;
case 411:
/* Line 1464 of yacc.c */
#line 2821 "gram.y"
{ (yyval.ival) = CREATE_TABLE_LIKE_ALL; }
break;
case 412:
/* Line 1464 of yacc.c */
#line 2831 "gram.y"
{
Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node);
Assert(IsA(n, Constraint));
n->conname = (yyvsp[(2) - (3)].str);
n->location = (yylsp[(1) - (3)]);
(yyval.node) = (Node *) n;
}
break;
case 413:
/* Line 1464 of yacc.c */
#line 2838 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 414:
/* Line 1464 of yacc.c */
#line 2843 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_CHECK;
n->location = (yylsp[(1) - (5)]);
n->raw_expr = (yyvsp[(3) - (5)].node);
n->cooked_expr = NULL;
processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK",
NULL, NULL, &n->skip_validation,
&n->is_no_inherit, yyscanner);
n->initially_valid = !n->skip_validation;
(yyval.node) = (Node *)n;
}
break;
case 415:
/* Line 1464 of yacc.c */
#line 2857 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_UNIQUE;
n->location = (yylsp[(1) - (7)]);
n->keys = (yyvsp[(3) - (7)].list);
n->options = (yyvsp[(5) - (7)].list);
n->indexname = NULL;
n->indexspace = (yyvsp[(6) - (7)].str);
processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "UNIQUE",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 416:
/* Line 1464 of yacc.c */
#line 2871 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_UNIQUE;
n->location = (yylsp[(1) - (3)]);
n->keys = NIL;
n->options = NIL;
n->indexname = (yyvsp[(2) - (3)].str);
n->indexspace = NULL;
processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 417:
/* Line 1464 of yacc.c */
#line 2886 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_PRIMARY;
n->location = (yylsp[(1) - (8)]);
n->keys = (yyvsp[(4) - (8)].list);
n->options = (yyvsp[(6) - (8)].list);
n->indexname = NULL;
n->indexspace = (yyvsp[(7) - (8)].str);
processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "PRIMARY KEY",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 418:
/* Line 1464 of yacc.c */
#line 2900 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_PRIMARY;
n->location = (yylsp[(1) - (4)]);
n->keys = NIL;
n->options = NIL;
n->indexname = (yyvsp[(3) - (4)].str);
n->indexspace = NULL;
processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 419:
/* Line 1464 of yacc.c */
#line 2916 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_EXCLUSION;
n->location = (yylsp[(1) - (9)]);
n->access_method = (yyvsp[(2) - (9)].str);
n->exclusions = (yyvsp[(4) - (9)].list);
n->options = (yyvsp[(6) - (9)].list);
n->indexname = NULL;
n->indexspace = (yyvsp[(7) - (9)].str);
n->where_clause = (yyvsp[(8) - (9)].node);
processCASbits((yyvsp[(9) - (9)].ival), (yylsp[(9) - (9)]), "EXCLUDE",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 420:
/* Line 1464 of yacc.c */
#line 2933 "gram.y"
{
Constraint *n = makeNode(Constraint);
n->contype = CONSTR_FOREIGN;
n->location = (yylsp[(1) - (11)]);
n->pktable = (yyvsp[(7) - (11)].range);
n->fk_attrs = (yyvsp[(4) - (11)].list);
n->pk_attrs = (yyvsp[(8) - (11)].list);
n->fk_matchtype = (yyvsp[(9) - (11)].ival);
n->fk_upd_action = (char) ((yyvsp[(10) - (11)].ival) >> 8);
n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF);
processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY",
&n->deferrable, &n->initdeferred,
&n->skip_validation, NULL,
yyscanner);
n->initially_valid = !n->skip_validation;
(yyval.node) = (Node *)n;
}
break;
case 421:
/* Line 1464 of yacc.c */
#line 2952 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 422:
/* Line 1464 of yacc.c */
#line 2953 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 423:
/* Line 1464 of yacc.c */
#line 2957 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 424:
/* Line 1464 of yacc.c */
#line 2958 "gram.y"
{ (yyval.list) = NIL; }
break;
case 425:
/* Line 1464 of yacc.c */
#line 2962 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 426:
/* Line 1464 of yacc.c */
#line 2963 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 427:
/* Line 1464 of yacc.c */
#line 2967 "gram.y"
{
(yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str));
}
break;
case 428:
/* Line 1464 of yacc.c */
#line 2973 "gram.y"
{
(yyval.ival) = FKCONSTR_MATCH_FULL;
}
break;
case 429:
/* Line 1464 of yacc.c */
#line 2977 "gram.y"
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("MATCH PARTIAL not yet implemented"),
parser_errposition((yylsp[(1) - (2)]))));
(yyval.ival) = FKCONSTR_MATCH_PARTIAL;
}
break;
case 430:
/* Line 1464 of yacc.c */
#line 2985 "gram.y"
{
(yyval.ival) = FKCONSTR_MATCH_UNSPECIFIED;
}
break;
case 431:
/* Line 1464 of yacc.c */
#line 2989 "gram.y"
{
(yyval.ival) = FKCONSTR_MATCH_UNSPECIFIED;
}
break;
case 432:
/* Line 1464 of yacc.c */
#line 2995 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); }
break;
case 433:
/* Line 1464 of yacc.c */
#line 2997 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); }
break;
case 434:
/* Line 1464 of yacc.c */
#line 3001 "gram.y"
{
(yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list));
}
break;
case 435:
/* Line 1464 of yacc.c */
#line 3006 "gram.y"
{
(yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list));
}
break;
case 436:
/* Line 1464 of yacc.c */
#line 3012 "gram.y"
{ (yyval.node) = (yyvsp[(3) - (4)].node); }
break;
case 437:
/* Line 1464 of yacc.c */
#line 3013 "gram.y"
{ (yyval.node) = NULL; }
break;
case 438:
/* Line 1464 of yacc.c */
#line 3024 "gram.y"
{ (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); }
break;
case 439:
/* Line 1464 of yacc.c */
#line 3026 "gram.y"
{ (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); }
break;
case 440:
/* Line 1464 of yacc.c */
#line 3028 "gram.y"
{ (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); }
break;
case 441:
/* Line 1464 of yacc.c */
#line 3030 "gram.y"
{ (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); }
break;
case 442:
/* Line 1464 of yacc.c */
#line 3032 "gram.y"
{ (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); }
break;
case 443:
/* Line 1464 of yacc.c */
#line 3035 "gram.y"
{ (yyval.ival) = (yyvsp[(3) - (3)].ival); }
break;
case 444:
/* Line 1464 of yacc.c */
#line 3038 "gram.y"
{ (yyval.ival) = (yyvsp[(3) - (3)].ival); }
break;
case 445:
/* Line 1464 of yacc.c */
#line 3042 "gram.y"
{ (yyval.ival) = FKCONSTR_ACTION_NOACTION; }
break;
case 446:
/* Line 1464 of yacc.c */
#line 3043 "gram.y"
{ (yyval.ival) = FKCONSTR_ACTION_RESTRICT; }
break;
case 447:
/* Line 1464 of yacc.c */
#line 3044 "gram.y"
{ (yyval.ival) = FKCONSTR_ACTION_CASCADE; }
break;
case 448:
/* Line 1464 of yacc.c */
#line 3045 "gram.y"
{ (yyval.ival) = FKCONSTR_ACTION_SETNULL; }
break;
case 449:
/* Line 1464 of yacc.c */
#line 3046 "gram.y"
{ (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; }
break;
case 450:
/* Line 1464 of yacc.c */
#line 3049 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 451:
/* Line 1464 of yacc.c */
#line 3050 "gram.y"
{ (yyval.list) = NIL; }
break;
case 452:
/* Line 1464 of yacc.c */
#line 3055 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 453:
/* Line 1464 of yacc.c */
#line 3056 "gram.y"
{ (yyval.list) = list_make1(defWithOids(true)); }
break;
case 454:
/* Line 1464 of yacc.c */
#line 3057 "gram.y"
{ (yyval.list) = list_make1(defWithOids(false)); }
break;
case 455:
/* Line 1464 of yacc.c */
#line 3058 "gram.y"
{ (yyval.list) = NIL; }
break;
case 456:
/* Line 1464 of yacc.c */
#line 3061 "gram.y"
{ (yyval.oncommit) = ONCOMMIT_DROP; }
break;
case 457:
/* Line 1464 of yacc.c */
#line 3062 "gram.y"
{ (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; }
break;
case 458:
/* Line 1464 of yacc.c */
#line 3063 "gram.y"
{ (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; }
break;
case 459:
/* Line 1464 of yacc.c */
#line 3064 "gram.y"
{ (yyval.oncommit) = ONCOMMIT_NOOP; }
break;
case 460:
/* Line 1464 of yacc.c */
#line 3067 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 461:
/* Line 1464 of yacc.c */
#line 3068 "gram.y"
{ (yyval.str) = NULL; }
break;
case 462:
/* Line 1464 of yacc.c */
#line 3071 "gram.y"
{ (yyval.str) = (yyvsp[(4) - (4)].str); }
break;
case 463:
/* Line 1464 of yacc.c */
#line 3072 "gram.y"
{ (yyval.str) = NULL; }
break;
case 464:
/* Line 1464 of yacc.c */
#line 3075 "gram.y"
{ (yyval.str) = (yyvsp[(3) - (3)].str); }
break;
case 465:
/* Line 1464 of yacc.c */
#line 3091 "gram.y"
{
CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
ctas->query = (yyvsp[(6) - (7)].node);
ctas->into = (yyvsp[(4) - (7)].into);
ctas->is_select_into = false;
/* cram additional flags into the IntoClause */
(yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival);
(yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean));
(yyval.node) = (Node *) ctas;
}
break;
case 466:
/* Line 1464 of yacc.c */
#line 3105 "gram.y"
{
(yyval.into) = makeNode(IntoClause);
(yyval.into)->rel = (yyvsp[(1) - (5)].range);
(yyval.into)->colNames = (yyvsp[(2) - (5)].list);
(yyval.into)->options = (yyvsp[(3) - (5)].list);
(yyval.into)->onCommit = (yyvsp[(4) - (5)].oncommit);
(yyval.into)->tableSpaceName = (yyvsp[(5) - (5)].str);
(yyval.into)->skipData = false; /* might get changed later */
}
break;
case 467:
/* Line 1464 of yacc.c */
#line 3117 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 468:
/* Line 1464 of yacc.c */
#line 3118 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 469:
/* Line 1464 of yacc.c */
#line 3119 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 470:
/* Line 1464 of yacc.c */
#line 3133 "gram.y"
{
CreateSeqStmt *n = makeNode(CreateSeqStmt);
(yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
n->sequence = (yyvsp[(4) - (5)].range);
n->options = (yyvsp[(5) - (5)].list);
n->ownerId = InvalidOid;
(yyval.node) = (Node *)n;
}
break;
case 471:
/* Line 1464 of yacc.c */
#line 3145 "gram.y"
{
AlterSeqStmt *n = makeNode(AlterSeqStmt);
n->sequence = (yyvsp[(3) - (4)].range);
n->options = (yyvsp[(4) - (4)].list);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 472:
/* Line 1464 of yacc.c */
#line 3153 "gram.y"
{
AlterSeqStmt *n = makeNode(AlterSeqStmt);
n->sequence = (yyvsp[(5) - (6)].range);
n->options = (yyvsp[(6) - (6)].list);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 473:
/* Line 1464 of yacc.c */
#line 3163 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 474:
/* Line 1464 of yacc.c */
#line 3164 "gram.y"
{ (yyval.list) = NIL; }
break;
case 475:
/* Line 1464 of yacc.c */
#line 3167 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 476:
/* Line 1464 of yacc.c */
#line 3168 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 477:
/* Line 1464 of yacc.c */
#line 3172 "gram.y"
{
(yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[(2) - (2)].value));
}
break;
case 478:
/* Line 1464 of yacc.c */
#line 3176 "gram.y"
{
(yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(TRUE));
}
break;
case 479:
/* Line 1464 of yacc.c */
#line 3180 "gram.y"
{
(yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(FALSE));
}
break;
case 480:
/* Line 1464 of yacc.c */
#line 3184 "gram.y"
{
(yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[(3) - (3)].value));
}
break;
case 481:
/* Line 1464 of yacc.c */
#line 3188 "gram.y"
{
(yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[(2) - (2)].value));
}
break;
case 482:
/* Line 1464 of yacc.c */
#line 3192 "gram.y"
{
(yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[(2) - (2)].value));
}
break;
case 483:
/* Line 1464 of yacc.c */
#line 3196 "gram.y"
{
(yyval.defelt) = makeDefElem("maxvalue", NULL);
}
break;
case 484:
/* Line 1464 of yacc.c */
#line 3200 "gram.y"
{
(yyval.defelt) = makeDefElem("minvalue", NULL);
}
break;
case 485:
/* Line 1464 of yacc.c */
#line 3204 "gram.y"
{
(yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 486:
/* Line 1464 of yacc.c */
#line 3208 "gram.y"
{
(yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[(3) - (3)].value));
}
break;
case 487:
/* Line 1464 of yacc.c */
#line 3212 "gram.y"
{
(yyval.defelt) = makeDefElem("restart", NULL);
}
break;
case 488:
/* Line 1464 of yacc.c */
#line 3216 "gram.y"
{
(yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[(3) - (3)].value));
}
break;
case 489:
/* Line 1464 of yacc.c */
#line 3221 "gram.y"
{}
break;
case 490:
/* Line 1464 of yacc.c */
#line 3222 "gram.y"
{}
break;
case 491:
/* Line 1464 of yacc.c */
#line 3226 "gram.y"
{ (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); }
break;
case 492:
/* Line 1464 of yacc.c */
#line 3228 "gram.y"
{
(yyval.value) = makeFloat((yyvsp[(2) - (2)].str));
doNegateFloat((yyval.value));
}
break;
case 493:
/* Line 1464 of yacc.c */
#line 3232 "gram.y"
{ (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); }
break;
case 494:
/* Line 1464 of yacc.c */
#line 3235 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); }
break;
case 495:
/* Line 1464 of yacc.c */
#line 3236 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); }
break;
case 496:
/* Line 1464 of yacc.c */
#line 3249 "gram.y"
{
CreatePLangStmt *n = makeNode(CreatePLangStmt);
n->replace = (yyvsp[(2) - (6)].boolean);
n->plname = (yyvsp[(6) - (6)].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;
}
break;
case 497:
/* Line 1464 of yacc.c */
#line 3262 "gram.y"
{
CreatePLangStmt *n = makeNode(CreatePLangStmt);
n->replace = (yyvsp[(2) - (10)].boolean);
n->plname = (yyvsp[(6) - (10)].str);
n->plhandler = (yyvsp[(8) - (10)].list);
n->plinline = (yyvsp[(9) - (10)].list);
n->plvalidator = (yyvsp[(10) - (10)].list);
n->pltrusted = (yyvsp[(3) - (10)].boolean);
(yyval.node) = (Node *)n;
}
break;
case 498:
/* Line 1464 of yacc.c */
#line 3275 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 499:
/* Line 1464 of yacc.c */
#line 3276 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 500:
/* Line 1464 of yacc.c */
#line 3284 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 501:
/* Line 1464 of yacc.c */
#line 3285 "gram.y"
{ (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); }
break;
case 502:
/* Line 1464 of yacc.c */
#line 3289 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 503:
/* Line 1464 of yacc.c */
#line 3290 "gram.y"
{ (yyval.list) = NIL; }
break;
case 504:
/* Line 1464 of yacc.c */
#line 3294 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 505:
/* Line 1464 of yacc.c */
#line 3295 "gram.y"
{ (yyval.list) = NIL; }
break;
case 506:
/* Line 1464 of yacc.c */
#line 3299 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 507:
/* Line 1464 of yacc.c */
#line 3300 "gram.y"
{ (yyval.list) = NIL; }
break;
case 508:
/* Line 1464 of yacc.c */
#line 3305 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_LANGUAGE;
n->objects = list_make1(list_make1(makeString((yyvsp[(4) - (5)].str))));
n->arguments = NIL;
n->behavior = (yyvsp[(5) - (5)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 509:
/* Line 1464 of yacc.c */
#line 3316 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_LANGUAGE;
n->objects = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str))));
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 510:
/* Line 1464 of yacc.c */
#line 3328 "gram.y"
{}
break;
case 511:
/* Line 1464 of yacc.c */
#line 3329 "gram.y"
{}
break;
case 512:
/* Line 1464 of yacc.c */
#line 3340 "gram.y"
{
CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt);
n->tablespacename = (yyvsp[(3) - (6)].str);
n->owner = (yyvsp[(4) - (6)].str);
n->location = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *) n;
}
break;
case 513:
/* Line 1464 of yacc.c */
#line 3349 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 514:
/* Line 1464 of yacc.c */
#line 3350 "gram.y"
{ (yyval.str) = NULL; }
break;
case 515:
/* Line 1464 of yacc.c */
#line 3364 "gram.y"
{
DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
n->tablespacename = (yyvsp[(3) - (3)].str);
n->missing_ok = false;
(yyval.node) = (Node *) n;
}
break;
case 516:
/* Line 1464 of yacc.c */
#line 3371 "gram.y"
{
DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
n->tablespacename = (yyvsp[(5) - (5)].str);
n->missing_ok = true;
(yyval.node) = (Node *) n;
}
break;
case 517:
/* Line 1464 of yacc.c */
#line 3388 "gram.y"
{
CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
n->extname = (yyvsp[(3) - (5)].str);
n->if_not_exists = false;
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 518:
/* Line 1464 of yacc.c */
#line 3396 "gram.y"
{
CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
n->extname = (yyvsp[(6) - (8)].str);
n->if_not_exists = true;
n->options = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *) n;
}
break;
case 519:
/* Line 1464 of yacc.c */
#line 3407 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 520:
/* Line 1464 of yacc.c */
#line 3409 "gram.y"
{ (yyval.list) = NIL; }
break;
case 521:
/* Line 1464 of yacc.c */
#line 3414 "gram.y"
{
(yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 522:
/* Line 1464 of yacc.c */
#line 3418 "gram.y"
{
(yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 523:
/* Line 1464 of yacc.c */
#line 3422 "gram.y"
{
(yyval.defelt) = makeDefElem("old_version", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 524:
/* Line 1464 of yacc.c */
#line 3434 "gram.y"
{
AlterExtensionStmt *n = makeNode(AlterExtensionStmt);
n->extname = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 525:
/* Line 1464 of yacc.c */
#line 3444 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 526:
/* Line 1464 of yacc.c */
#line 3446 "gram.y"
{ (yyval.list) = NIL; }
break;
case 527:
/* Line 1464 of yacc.c */
#line 3451 "gram.y"
{
(yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 528:
/* Line 1464 of yacc.c */
#line 3464 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (7)].str);
n->action = (yyvsp[(4) - (7)].ival);
n->objtype = OBJECT_AGGREGATE;
n->objname = (yyvsp[(6) - (7)].list);
n->objargs = (yyvsp[(7) - (7)].list);
(yyval.node) = (Node *)n;
}
break;
case 529:
/* Line 1464 of yacc.c */
#line 3474 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (10)].str);
n->action = (yyvsp[(4) - (10)].ival);
n->objtype = OBJECT_CAST;
n->objname = list_make1((yyvsp[(7) - (10)].typnam));
n->objargs = list_make1((yyvsp[(9) - (10)].typnam));
(yyval.node) = (Node *) n;
}
break;
case 530:
/* Line 1464 of yacc.c */
#line 3484 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_COLLATION;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 531:
/* Line 1464 of yacc.c */
#line 3493 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_CONVERSION;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 532:
/* Line 1464 of yacc.c */
#line 3502 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_DOMAIN;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 533:
/* Line 1464 of yacc.c */
#line 3511 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_FUNCTION;
n->objname = (yyvsp[(6) - (6)].funwithargs)->funcname;
n->objargs = (yyvsp[(6) - (6)].funwithargs)->funcargs;
(yyval.node) = (Node *)n;
}
break;
case 534:
/* Line 1464 of yacc.c */
#line 3521 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (7)].str);
n->action = (yyvsp[(4) - (7)].ival);
n->objtype = OBJECT_LANGUAGE;
n->objname = list_make1(makeString((yyvsp[(7) - (7)].str)));
(yyval.node) = (Node *)n;
}
break;
case 535:
/* Line 1464 of yacc.c */
#line 3530 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (7)].str);
n->action = (yyvsp[(4) - (7)].ival);
n->objtype = OBJECT_OPERATOR;
n->objname = (yyvsp[(6) - (7)].list);
n->objargs = (yyvsp[(7) - (7)].list);
(yyval.node) = (Node *)n;
}
break;
case 536:
/* Line 1464 of yacc.c */
#line 3540 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (9)].str);
n->action = (yyvsp[(4) - (9)].ival);
n->objtype = OBJECT_OPCLASS;
n->objname = (yyvsp[(7) - (9)].list);
n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str)));
(yyval.node) = (Node *)n;
}
break;
case 537:
/* Line 1464 of yacc.c */
#line 3550 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (9)].str);
n->action = (yyvsp[(4) - (9)].ival);
n->objtype = OBJECT_OPFAMILY;
n->objname = (yyvsp[(7) - (9)].list);
n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str)));
(yyval.node) = (Node *)n;
}
break;
case 538:
/* Line 1464 of yacc.c */
#line 3560 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_SCHEMA;
n->objname = list_make1(makeString((yyvsp[(6) - (6)].str)));
(yyval.node) = (Node *)n;
}
break;
case 539:
/* Line 1464 of yacc.c */
#line 3569 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_TABLE;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 540:
/* Line 1464 of yacc.c */
#line 3578 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (8)].str);
n->action = (yyvsp[(4) - (8)].ival);
n->objtype = OBJECT_TSPARSER;
n->objname = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *)n;
}
break;
case 541:
/* Line 1464 of yacc.c */
#line 3587 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (8)].str);
n->action = (yyvsp[(4) - (8)].ival);
n->objtype = OBJECT_TSDICTIONARY;
n->objname = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *)n;
}
break;
case 542:
/* Line 1464 of yacc.c */
#line 3596 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (8)].str);
n->action = (yyvsp[(4) - (8)].ival);
n->objtype = OBJECT_TSTEMPLATE;
n->objname = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *)n;
}
break;
case 543:
/* Line 1464 of yacc.c */
#line 3605 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (8)].str);
n->action = (yyvsp[(4) - (8)].ival);
n->objtype = OBJECT_TSCONFIGURATION;
n->objname = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *)n;
}
break;
case 544:
/* Line 1464 of yacc.c */
#line 3614 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_SEQUENCE;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 545:
/* Line 1464 of yacc.c */
#line 3623 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_VIEW;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 546:
/* Line 1464 of yacc.c */
#line 3632 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (7)].str);
n->action = (yyvsp[(4) - (7)].ival);
n->objtype = OBJECT_FOREIGN_TABLE;
n->objname = (yyvsp[(7) - (7)].list);
(yyval.node) = (Node *)n;
}
break;
case 547:
/* Line 1464 of yacc.c */
#line 3641 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (8)].str);
n->action = (yyvsp[(4) - (8)].ival);
n->objtype = OBJECT_FDW;
n->objname = list_make1(makeString((yyvsp[(8) - (8)].str)));
(yyval.node) = (Node *)n;
}
break;
case 548:
/* Line 1464 of yacc.c */
#line 3650 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_FOREIGN_SERVER;
n->objname = list_make1(makeString((yyvsp[(6) - (6)].str)));
(yyval.node) = (Node *)n;
}
break;
case 549:
/* Line 1464 of yacc.c */
#line 3659 "gram.y"
{
AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = (yyvsp[(3) - (6)].str);
n->action = (yyvsp[(4) - (6)].ival);
n->objtype = OBJECT_TYPE;
n->objname = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 550:
/* Line 1464 of yacc.c */
#line 3677 "gram.y"
{
CreateFdwStmt *n = makeNode(CreateFdwStmt);
n->fdwname = (yyvsp[(5) - (7)].str);
n->func_options = (yyvsp[(6) - (7)].list);
n->options = (yyvsp[(7) - (7)].list);
(yyval.node) = (Node *) n;
}
break;
case 551:
/* Line 1464 of yacc.c */
#line 3687 "gram.y"
{ (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[(2) - (2)].list)); }
break;
case 552:
/* Line 1464 of yacc.c */
#line 3688 "gram.y"
{ (yyval.defelt) = makeDefElem("handler", NULL); }
break;
case 553:
/* Line 1464 of yacc.c */
#line 3689 "gram.y"
{ (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[(2) - (2)].list)); }
break;
case 554:
/* Line 1464 of yacc.c */
#line 3690 "gram.y"
{ (yyval.defelt) = makeDefElem("validator", NULL); }
break;
case 555:
/* Line 1464 of yacc.c */
#line 3694 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 556:
/* Line 1464 of yacc.c */
#line 3695 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 557:
/* Line 1464 of yacc.c */
#line 3699 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 558:
/* Line 1464 of yacc.c */
#line 3700 "gram.y"
{ (yyval.list) = NIL; }
break;
case 559:
/* Line 1464 of yacc.c */
#line 3711 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_FDW;
n->objects = list_make1(list_make1(makeString((yyvsp[(5) - (6)].str))));
n->arguments = NIL;
n->missing_ok = false;
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 560:
/* Line 1464 of yacc.c */
#line 3722 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_FDW;
n->objects = list_make1(list_make1(makeString((yyvsp[(7) - (8)].str))));
n->arguments = NIL;
n->missing_ok = true;
n->behavior = (yyvsp[(8) - (8)].dbehavior);
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 561:
/* Line 1464 of yacc.c */
#line 3742 "gram.y"
{
AlterFdwStmt *n = makeNode(AlterFdwStmt);
n->fdwname = (yyvsp[(5) - (7)].str);
n->func_options = (yyvsp[(6) - (7)].list);
n->options = (yyvsp[(7) - (7)].list);
(yyval.node) = (Node *) n;
}
break;
case 562:
/* Line 1464 of yacc.c */
#line 3750 "gram.y"
{
AlterFdwStmt *n = makeNode(AlterFdwStmt);
n->fdwname = (yyvsp[(5) - (6)].str);
n->func_options = (yyvsp[(6) - (6)].list);
n->options = NIL;
(yyval.node) = (Node *) n;
}
break;
case 563:
/* Line 1464 of yacc.c */
#line 3761 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 564:
/* Line 1464 of yacc.c */
#line 3762 "gram.y"
{ (yyval.list) = NIL; }
break;
case 565:
/* Line 1464 of yacc.c */
#line 3767 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
}
break;
case 566:
/* Line 1464 of yacc.c */
#line 3771 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
}
break;
case 567:
/* Line 1464 of yacc.c */
#line 3778 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 568:
/* Line 1464 of yacc.c */
#line 3783 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
}
break;
case 569:
/* Line 1464 of yacc.c */
#line 3787 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
}
break;
case 570:
/* Line 1464 of yacc.c */
#line 3794 "gram.y"
{
(yyval.defelt) = (yyvsp[(1) - (1)].defelt);
}
break;
case 571:
/* Line 1464 of yacc.c */
#line 3798 "gram.y"
{
(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
(yyval.defelt)->defaction = DEFELEM_SET;
}
break;
case 572:
/* Line 1464 of yacc.c */
#line 3803 "gram.y"
{
(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
(yyval.defelt)->defaction = DEFELEM_ADD;
}
break;
case 573:
/* Line 1464 of yacc.c */
#line 3808 "gram.y"
{
(yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP);
}
break;
case 574:
/* Line 1464 of yacc.c */
#line 3815 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node));
}
break;
case 575:
/* Line 1464 of yacc.c */
#line 3821 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 576:
/* Line 1464 of yacc.c */
#line 3826 "gram.y"
{ (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); }
break;
case 577:
/* Line 1464 of yacc.c */
#line 3838 "gram.y"
{
CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt);
n->servername = (yyvsp[(3) - (10)].str);
n->servertype = (yyvsp[(4) - (10)].str);
n->version = (yyvsp[(5) - (10)].str);
n->fdwname = (yyvsp[(9) - (10)].str);
n->options = (yyvsp[(10) - (10)].list);
(yyval.node) = (Node *) n;
}
break;
case 578:
/* Line 1464 of yacc.c */
#line 3850 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 579:
/* Line 1464 of yacc.c */
#line 3851 "gram.y"
{ (yyval.str) = NULL; }
break;
case 580:
/* Line 1464 of yacc.c */
#line 3856 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 581:
/* Line 1464 of yacc.c */
#line 3857 "gram.y"
{ (yyval.str) = NULL; }
break;
case 582:
/* Line 1464 of yacc.c */
#line 3861 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 583:
/* Line 1464 of yacc.c */
#line 3862 "gram.y"
{ (yyval.str) = NULL; }
break;
case 584:
/* Line 1464 of yacc.c */
#line 3873 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_FOREIGN_SERVER;
n->objects = list_make1(list_make1(makeString((yyvsp[(3) - (4)].str))));
n->arguments = NIL;
n->missing_ok = false;
n->behavior = (yyvsp[(4) - (4)].dbehavior);
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 585:
/* Line 1464 of yacc.c */
#line 3884 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_FOREIGN_SERVER;
n->objects = list_make1(list_make1(makeString((yyvsp[(5) - (6)].str))));
n->arguments = NIL;
n->missing_ok = true;
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 586:
/* Line 1464 of yacc.c */
#line 3904 "gram.y"
{
AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
n->servername = (yyvsp[(3) - (5)].str);
n->version = (yyvsp[(4) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
n->has_version = true;
(yyval.node) = (Node *) n;
}
break;
case 587:
/* Line 1464 of yacc.c */
#line 3913 "gram.y"
{
AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
n->servername = (yyvsp[(3) - (4)].str);
n->version = (yyvsp[(4) - (4)].str);
n->has_version = true;
(yyval.node) = (Node *) n;
}
break;
case 588:
/* Line 1464 of yacc.c */
#line 3921 "gram.y"
{
AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
n->servername = (yyvsp[(3) - (4)].str);
n->options = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *) n;
}
break;
case 589:
/* Line 1464 of yacc.c */
#line 3940 "gram.y"
{
CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
(yyvsp[(4) - (8)].range)->relpersistence = RELPERSISTENCE_PERMANENT;
n->base.relation = (yyvsp[(4) - (8)].range);
n->base.tableElts = (yyvsp[(5) - (8)].list);
n->base.inhRelations = NIL;
n->base.if_not_exists = false;
/* FDW-specific data */
n->servername = (yyvsp[(7) - (8)].str);
n->options = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *) n;
}
break;
case 590:
/* Line 1464 of yacc.c */
#line 3955 "gram.y"
{
CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
(yyvsp[(7) - (11)].range)->relpersistence = RELPERSISTENCE_PERMANENT;
n->base.relation = (yyvsp[(7) - (11)].range);
n->base.tableElts = (yyvsp[(8) - (11)].list);
n->base.inhRelations = NIL;
n->base.if_not_exists = true;
/* FDW-specific data */
n->servername = (yyvsp[(10) - (11)].str);
n->options = (yyvsp[(11) - (11)].list);
(yyval.node) = (Node *) n;
}
break;
case 591:
/* Line 1464 of yacc.c */
#line 3970 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 592:
/* Line 1464 of yacc.c */
#line 3971 "gram.y"
{ (yyval.list) = NIL; }
break;
case 593:
/* Line 1464 of yacc.c */
#line 3976 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 594:
/* Line 1464 of yacc.c */
#line 3980 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 595:
/* Line 1464 of yacc.c */
#line 3986 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 596:
/* Line 1464 of yacc.c */
#line 3998 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(4) - (5)].range);
n->cmds = (yyvsp[(5) - (5)].list);
n->relkind = OBJECT_FOREIGN_TABLE;
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 597:
/* Line 1464 of yacc.c */
#line 4007 "gram.y"
{
AlterTableStmt *n = makeNode(AlterTableStmt);
n->relation = (yyvsp[(6) - (7)].range);
n->cmds = (yyvsp[(7) - (7)].list);
n->relkind = OBJECT_FOREIGN_TABLE;
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 598:
/* Line 1464 of yacc.c */
#line 4025 "gram.y"
{
CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt);
n->username = (yyvsp[(5) - (8)].str);
n->servername = (yyvsp[(7) - (8)].str);
n->options = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *) n;
}
break;
case 599:
/* Line 1464 of yacc.c */
#line 4036 "gram.y"
{ (yyval.str) = "current_user"; }
break;
case 600:
/* Line 1464 of yacc.c */
#line 4037 "gram.y"
{ (yyval.str) = "current_user"; }
break;
case 601:
/* Line 1464 of yacc.c */
#line 4038 "gram.y"
{ (yyval.str) = (strcmp((yyvsp[(1) - (1)].str), "public") == 0) ? NULL : (yyvsp[(1) - (1)].str); }
break;
case 602:
/* Line 1464 of yacc.c */
#line 4049 "gram.y"
{
DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
n->username = (yyvsp[(5) - (7)].str);
n->servername = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *) n;
}
break;
case 603:
/* Line 1464 of yacc.c */
#line 4057 "gram.y"
{
DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
n->username = (yyvsp[(7) - (9)].str);
n->servername = (yyvsp[(9) - (9)].str);
n->missing_ok = true;
(yyval.node) = (Node *) n;
}
break;
case 604:
/* Line 1464 of yacc.c */
#line 4074 "gram.y"
{
AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt);
n->username = (yyvsp[(5) - (8)].str);
n->servername = (yyvsp[(7) - (8)].str);
n->options = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *) n;
}
break;
case 605:
/* Line 1464 of yacc.c */
#line 4095 "gram.y"
{
CreateTrigStmt *n = makeNode(CreateTrigStmt);
n->trigname = (yyvsp[(3) - (15)].str);
n->relation = (yyvsp[(7) - (15)].range);
n->funcname = (yyvsp[(12) - (15)].list);
n->args = (yyvsp[(14) - (15)].list);
n->row = (yyvsp[(8) - (15)].boolean);
n->timing = (yyvsp[(4) - (15)].ival);
n->events = intVal(linitial((yyvsp[(5) - (15)].list)));
n->columns = (List *) lsecond((yyvsp[(5) - (15)].list));
n->whenClause = (yyvsp[(9) - (15)].node);
n->isconstraint = FALSE;
n->deferrable = FALSE;
n->initdeferred = FALSE;
n->constrrel = NULL;
(yyval.node) = (Node *)n;
}
break;
case 606:
/* Line 1464 of yacc.c */
#line 4116 "gram.y"
{
CreateTrigStmt *n = makeNode(CreateTrigStmt);
n->trigname = (yyvsp[(4) - (20)].str);
n->relation = (yyvsp[(8) - (20)].range);
n->funcname = (yyvsp[(17) - (20)].list);
n->args = (yyvsp[(19) - (20)].list);
n->row = TRUE;
n->timing = TRIGGER_TYPE_AFTER;
n->events = intVal(linitial((yyvsp[(6) - (20)].list)));
n->columns = (List *) lsecond((yyvsp[(6) - (20)].list));
n->whenClause = (yyvsp[(14) - (20)].node);
n->isconstraint = TRUE;
processCASbits((yyvsp[(10) - (20)].ival), (yylsp[(10) - (20)]), "TRIGGER",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
n->constrrel = (yyvsp[(9) - (20)].range);
(yyval.node) = (Node *)n;
}
break;
case 607:
/* Line 1464 of yacc.c */
#line 4137 "gram.y"
{ (yyval.ival) = TRIGGER_TYPE_BEFORE; }
break;
case 608:
/* Line 1464 of yacc.c */
#line 4138 "gram.y"
{ (yyval.ival) = TRIGGER_TYPE_AFTER; }
break;
case 609:
/* Line 1464 of yacc.c */
#line 4139 "gram.y"
{ (yyval.ival) = TRIGGER_TYPE_INSTEAD; }
break;
case 610:
/* Line 1464 of yacc.c */
#line 4144 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 611:
/* Line 1464 of yacc.c */
#line 4146 "gram.y"
{
int events1 = intVal(linitial((yyvsp[(1) - (3)].list)));
int events2 = intVal(linitial((yyvsp[(3) - (3)].list)));
List *columns1 = (List *) lsecond((yyvsp[(1) - (3)].list));
List *columns2 = (List *) lsecond((yyvsp[(3) - (3)].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));
}
break;
case 612:
/* Line 1464 of yacc.c */
#line 4168 "gram.y"
{ (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); }
break;
case 613:
/* Line 1464 of yacc.c */
#line 4170 "gram.y"
{ (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); }
break;
case 614:
/* Line 1464 of yacc.c */
#line 4172 "gram.y"
{ (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); }
break;
case 615:
/* Line 1464 of yacc.c */
#line 4174 "gram.y"
{ (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); }
break;
case 616:
/* Line 1464 of yacc.c */
#line 4176 "gram.y"
{ (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); }
break;
case 617:
/* Line 1464 of yacc.c */
#line 4181 "gram.y"
{
(yyval.boolean) = (yyvsp[(3) - (3)].boolean);
}
break;
case 618:
/* Line 1464 of yacc.c */
#line 4185 "gram.y"
{
/*
* If ROW/STATEMENT not specified, default to
* STATEMENT, per SQL
*/
(yyval.boolean) = FALSE;
}
break;
case 619:
/* Line 1464 of yacc.c */
#line 4195 "gram.y"
{}
break;
case 620:
/* Line 1464 of yacc.c */
#line 4196 "gram.y"
{}
break;
case 621:
/* Line 1464 of yacc.c */
#line 4200 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 622:
/* Line 1464 of yacc.c */
#line 4201 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 623:
/* Line 1464 of yacc.c */
#line 4205 "gram.y"
{ (yyval.node) = (yyvsp[(3) - (4)].node); }
break;
case 624:
/* Line 1464 of yacc.c */
#line 4206 "gram.y"
{ (yyval.node) = NULL; }
break;
case 625:
/* Line 1464 of yacc.c */
#line 4210 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); }
break;
case 626:
/* Line 1464 of yacc.c */
#line 4211 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); }
break;
case 627:
/* Line 1464 of yacc.c */
#line 4212 "gram.y"
{ (yyval.list) = NIL; }
break;
case 628:
/* Line 1464 of yacc.c */
#line 4217 "gram.y"
{
char buf[64];
snprintf(buf, sizeof(buf), "%d", (yyvsp[(1) - (1)].ival));
(yyval.value) = makeString(pstrdup(buf));
}
break;
case 629:
/* Line 1464 of yacc.c */
#line 4222 "gram.y"
{ (yyval.value) = makeString((yyvsp[(1) - (1)].str)); }
break;
case 630:
/* Line 1464 of yacc.c */
#line 4223 "gram.y"
{ (yyval.value) = makeString((yyvsp[(1) - (1)].str)); }
break;
case 631:
/* Line 1464 of yacc.c */
#line 4224 "gram.y"
{ (yyval.value) = makeString((yyvsp[(1) - (1)].str)); }
break;
case 632:
/* Line 1464 of yacc.c */
#line 4228 "gram.y"
{ (yyval.range) = (yyvsp[(2) - (2)].range); }
break;
case 633:
/* Line 1464 of yacc.c */
#line 4229 "gram.y"
{ (yyval.range) = NULL; }
break;
case 634:
/* Line 1464 of yacc.c */
#line 4234 "gram.y"
{ (yyval.ival) = 0; }
break;
case 635:
/* Line 1464 of yacc.c */
#line 4236 "gram.y"
{
/*
* 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) - (2)].ival) | (yyvsp[(2) - (2)].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[(2) - (2)]))));
/* 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[(2) - (2)]))));
(yyval.ival) = newspec;
}
break;
case 636:
/* Line 1464 of yacc.c */
#line 4262 "gram.y"
{ (yyval.ival) = CAS_NOT_DEFERRABLE; }
break;
case 637:
/* Line 1464 of yacc.c */
#line 4263 "gram.y"
{ (yyval.ival) = CAS_DEFERRABLE; }
break;
case 638:
/* Line 1464 of yacc.c */
#line 4264 "gram.y"
{ (yyval.ival) = CAS_INITIALLY_IMMEDIATE; }
break;
case 639:
/* Line 1464 of yacc.c */
#line 4265 "gram.y"
{ (yyval.ival) = CAS_INITIALLY_DEFERRED; }
break;
case 640:
/* Line 1464 of yacc.c */
#line 4266 "gram.y"
{ (yyval.ival) = CAS_NOT_VALID; }
break;
case 641:
/* Line 1464 of yacc.c */
#line 4267 "gram.y"
{ (yyval.ival) = CAS_NO_INHERIT; }
break;
case 642:
/* Line 1464 of yacc.c */
#line 4273 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_TRIGGER;
n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str))));
n->arguments = NIL;
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 643:
/* Line 1464 of yacc.c */
#line 4284 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_TRIGGER;
n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str))));
n->arguments = NIL;
n->behavior = (yyvsp[(8) - (8)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 644:
/* Line 1464 of yacc.c */
#line 4308 "gram.y"
{
CreateTrigStmt *n = makeNode(CreateTrigStmt);
n->trigname = (yyvsp[(3) - (8)].str);
n->args = list_make1((yyvsp[(6) - (8)].node));
n->isconstraint = TRUE;
processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "ASSERTION",
&n->deferrable, &n->initdeferred, NULL,
NULL, yyscanner);
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("CREATE ASSERTION is not yet implemented")));
(yyval.node) = (Node *)n;
}
break;
case 645:
/* Line 1464 of yacc.c */
#line 4327 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->objects = NIL;
n->arguments = NIL;
n->behavior = (yyvsp[(4) - (4)].dbehavior);
n->removeType = OBJECT_TRIGGER; /* XXX */
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("DROP ASSERTION is not yet implemented")));
(yyval.node) = (Node *) n;
}
break;
case 646:
/* Line 1464 of yacc.c */
#line 4350 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_AGGREGATE;
n->oldstyle = false;
n->defnames = (yyvsp[(3) - (5)].list);
n->args = (yyvsp[(4) - (5)].list);
n->definition = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 647:
/* Line 1464 of yacc.c */
#line 4360 "gram.y"
{
/* old-style (pre-8.2) syntax for CREATE AGGREGATE */
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_AGGREGATE;
n->oldstyle = true;
n->defnames = (yyvsp[(3) - (4)].list);
n->args = NIL;
n->definition = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 648:
/* Line 1464 of yacc.c */
#line 4371 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_OPERATOR;
n->oldstyle = false;
n->defnames = (yyvsp[(3) - (4)].list);
n->args = NIL;
n->definition = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 649:
/* Line 1464 of yacc.c */
#line 4381 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_TYPE;
n->oldstyle = false;
n->defnames = (yyvsp[(3) - (4)].list);
n->args = NIL;
n->definition = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 650:
/* Line 1464 of yacc.c */
#line 4391 "gram.y"
{
/* Shell type (identified by lack of definition) */
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_TYPE;
n->oldstyle = false;
n->defnames = (yyvsp[(3) - (3)].list);
n->args = NIL;
n->definition = NIL;
(yyval.node) = (Node *)n;
}
break;
case 651:
/* Line 1464 of yacc.c */
#line 4402 "gram.y"
{
CompositeTypeStmt *n = makeNode(CompositeTypeStmt);
/* can't use qualified_name, sigh */
n->typevar = makeRangeVarFromAnyName((yyvsp[(3) - (7)].list), (yylsp[(3) - (7)]), yyscanner);
n->coldeflist = (yyvsp[(6) - (7)].list);
(yyval.node) = (Node *)n;
}
break;
case 652:
/* Line 1464 of yacc.c */
#line 4411 "gram.y"
{
CreateEnumStmt *n = makeNode(CreateEnumStmt);
n->typeName = (yyvsp[(3) - (8)].list);
n->vals = (yyvsp[(7) - (8)].list);
(yyval.node) = (Node *)n;
}
break;
case 653:
/* Line 1464 of yacc.c */
#line 4418 "gram.y"
{
CreateRangeStmt *n = makeNode(CreateRangeStmt);
n->typeName = (yyvsp[(3) - (6)].list);
n->params = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 654:
/* Line 1464 of yacc.c */
#line 4425 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_TSPARSER;
n->args = NIL;
n->defnames = (yyvsp[(5) - (6)].list);
n->definition = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 655:
/* Line 1464 of yacc.c */
#line 4434 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_TSDICTIONARY;
n->args = NIL;
n->defnames = (yyvsp[(5) - (6)].list);
n->definition = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 656:
/* Line 1464 of yacc.c */
#line 4443 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_TSTEMPLATE;
n->args = NIL;
n->defnames = (yyvsp[(5) - (6)].list);
n->definition = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 657:
/* Line 1464 of yacc.c */
#line 4452 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_TSCONFIGURATION;
n->args = NIL;
n->defnames = (yyvsp[(5) - (6)].list);
n->definition = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 658:
/* Line 1464 of yacc.c */
#line 4461 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_COLLATION;
n->args = NIL;
n->defnames = (yyvsp[(3) - (4)].list);
n->definition = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 659:
/* Line 1464 of yacc.c */
#line 4470 "gram.y"
{
DefineStmt *n = makeNode(DefineStmt);
n->kind = OBJECT_COLLATION;
n->args = NIL;
n->defnames = (yyvsp[(3) - (5)].list);
n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(5) - (5)].list)));
(yyval.node) = (Node *)n;
}
break;
case 660:
/* Line 1464 of yacc.c */
#line 4480 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 661:
/* Line 1464 of yacc.c */
#line 4483 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 662:
/* Line 1464 of yacc.c */
#line 4484 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); }
break;
case 663:
/* Line 1464 of yacc.c */
#line 4488 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node));
}
break;
case 664:
/* Line 1464 of yacc.c */
#line 4492 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL);
}
break;
case 665:
/* Line 1464 of yacc.c */
#line 4498 "gram.y"
{ (yyval.node) = (Node *)(yyvsp[(1) - (1)].typnam); }
break;
case 666:
/* Line 1464 of yacc.c */
#line 4499 "gram.y"
{ (yyval.node) = (Node *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); }
break;
case 667:
/* Line 1464 of yacc.c */
#line 4500 "gram.y"
{ (yyval.node) = (Node *)(yyvsp[(1) - (1)].list); }
break;
case 668:
/* Line 1464 of yacc.c */
#line 4501 "gram.y"
{ (yyval.node) = (Node *)(yyvsp[(1) - (1)].value); }
break;
case 669:
/* Line 1464 of yacc.c */
#line 4502 "gram.y"
{ (yyval.node) = (Node *)makeString((yyvsp[(1) - (1)].str)); }
break;
case 670:
/* Line 1464 of yacc.c */
#line 4505 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 671:
/* Line 1464 of yacc.c */
#line 4506 "gram.y"
{ (yyval.list) = NIL; }
break;
case 672:
/* Line 1464 of yacc.c */
#line 4509 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 673:
/* Line 1464 of yacc.c */
#line 4512 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 674:
/* Line 1464 of yacc.c */
#line 4513 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); }
break;
case 675:
/* Line 1464 of yacc.c */
#line 4522 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *)(yyvsp[(3) - (3)].node));
}
break;
case 676:
/* Line 1464 of yacc.c */
#line 4528 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 677:
/* Line 1464 of yacc.c */
#line 4529 "gram.y"
{ (yyval.list) = NIL; }
break;
case 678:
/* Line 1464 of yacc.c */
#line 4533 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 679:
/* Line 1464 of yacc.c */
#line 4535 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); }
break;
case 680:
/* Line 1464 of yacc.c */
#line 4546 "gram.y"
{
AlterEnumStmt *n = makeNode(AlterEnumStmt);
n->typeName = (yyvsp[(3) - (6)].list);
n->newVal = (yyvsp[(6) - (6)].str);
n->newValNeighbor = NULL;
n->newValIsAfter = true;
(yyval.node) = (Node *) n;
}
break;
case 681:
/* Line 1464 of yacc.c */
#line 4555 "gram.y"
{
AlterEnumStmt *n = makeNode(AlterEnumStmt);
n->typeName = (yyvsp[(3) - (8)].list);
n->newVal = (yyvsp[(6) - (8)].str);
n->newValNeighbor = (yyvsp[(8) - (8)].str);
n->newValIsAfter = false;
(yyval.node) = (Node *) n;
}
break;
case 682:
/* Line 1464 of yacc.c */
#line 4564 "gram.y"
{
AlterEnumStmt *n = makeNode(AlterEnumStmt);
n->typeName = (yyvsp[(3) - (8)].list);
n->newVal = (yyvsp[(6) - (8)].str);
n->newValNeighbor = (yyvsp[(8) - (8)].str);
n->newValIsAfter = true;
(yyval.node) = (Node *) n;
}
break;
case 683:
/* Line 1464 of yacc.c */
#line 4589 "gram.y"
{
CreateOpClassStmt *n = makeNode(CreateOpClassStmt);
n->opclassname = (yyvsp[(4) - (13)].list);
n->isDefault = (yyvsp[(5) - (13)].boolean);
n->datatype = (yyvsp[(8) - (13)].typnam);
n->amname = (yyvsp[(10) - (13)].str);
n->opfamilyname = (yyvsp[(11) - (13)].list);
n->items = (yyvsp[(13) - (13)].list);
(yyval.node) = (Node *) n;
}
break;
case 684:
/* Line 1464 of yacc.c */
#line 4602 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 685:
/* Line 1464 of yacc.c */
#line 4603 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 686:
/* Line 1464 of yacc.c */
#line 4608 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_OPERATOR;
n->name = (yyvsp[(3) - (5)].list);
n->args = NIL;
n->number = (yyvsp[(2) - (5)].ival);
n->order_family = (yyvsp[(4) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 687:
/* Line 1464 of yacc.c */
#line 4619 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_OPERATOR;
n->name = (yyvsp[(3) - (6)].list);
n->args = (yyvsp[(4) - (6)].list);
n->number = (yyvsp[(2) - (6)].ival);
n->order_family = (yyvsp[(5) - (6)].list);
(yyval.node) = (Node *) n;
}
break;
case 688:
/* Line 1464 of yacc.c */
#line 4629 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_FUNCTION;
n->name = (yyvsp[(3) - (4)].list);
n->args = extractArgTypes((yyvsp[(4) - (4)].list));
n->number = (yyvsp[(2) - (4)].ival);
(yyval.node) = (Node *) n;
}
break;
case 689:
/* Line 1464 of yacc.c */
#line 4638 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_FUNCTION;
n->name = (yyvsp[(6) - (7)].list);
n->args = extractArgTypes((yyvsp[(7) - (7)].list));
n->number = (yyvsp[(2) - (7)].ival);
n->class_args = (yyvsp[(4) - (7)].list);
(yyval.node) = (Node *) n;
}
break;
case 690:
/* Line 1464 of yacc.c */
#line 4648 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_STORAGETYPE;
n->storedtype = (yyvsp[(2) - (2)].typnam);
(yyval.node) = (Node *) n;
}
break;
case 691:
/* Line 1464 of yacc.c */
#line 4656 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 692:
/* Line 1464 of yacc.c */
#line 4657 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 693:
/* Line 1464 of yacc.c */
#line 4660 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 694:
/* Line 1464 of yacc.c */
#line 4661 "gram.y"
{ (yyval.list) = NIL; }
break;
case 695:
/* Line 1464 of yacc.c */
#line 4664 "gram.y"
{ (yyval.list) = NIL; }
break;
case 696:
/* Line 1464 of yacc.c */
#line 4665 "gram.y"
{ (yyval.list) = (yyvsp[(4) - (4)].list); }
break;
case 697:
/* Line 1464 of yacc.c */
#line 4666 "gram.y"
{ (yyval.list) = NIL; }
break;
case 698:
/* Line 1464 of yacc.c */
#line 4670 "gram.y"
{
/*
* 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[(1) - (1)]))));
(yyval.boolean) = TRUE;
}
break;
case 699:
/* Line 1464 of yacc.c */
#line 4683 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 700:
/* Line 1464 of yacc.c */
#line 4689 "gram.y"
{
CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt);
n->opfamilyname = (yyvsp[(4) - (6)].list);
n->amname = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *) n;
}
break;
case 701:
/* Line 1464 of yacc.c */
#line 4699 "gram.y"
{
AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
n->opfamilyname = (yyvsp[(4) - (8)].list);
n->amname = (yyvsp[(6) - (8)].str);
n->isDrop = false;
n->items = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *) n;
}
break;
case 702:
/* Line 1464 of yacc.c */
#line 4708 "gram.y"
{
AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
n->opfamilyname = (yyvsp[(4) - (8)].list);
n->amname = (yyvsp[(6) - (8)].str);
n->isDrop = true;
n->items = (yyvsp[(8) - (8)].list);
(yyval.node) = (Node *) n;
}
break;
case 703:
/* Line 1464 of yacc.c */
#line 4719 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 704:
/* Line 1464 of yacc.c */
#line 4720 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 705:
/* Line 1464 of yacc.c */
#line 4725 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_OPERATOR;
n->number = (yyvsp[(2) - (5)].ival);
n->args = (yyvsp[(4) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 706:
/* Line 1464 of yacc.c */
#line 4733 "gram.y"
{
CreateOpClassItem *n = makeNode(CreateOpClassItem);
n->itemtype = OPCLASS_ITEM_FUNCTION;
n->number = (yyvsp[(2) - (5)].ival);
n->args = (yyvsp[(4) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 707:
/* Line 1464 of yacc.c */
#line 4745 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->objects = list_make1((yyvsp[(4) - (7)].list));
n->arguments = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str))));
n->removeType = OBJECT_OPCLASS;
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 708:
/* Line 1464 of yacc.c */
#line 4756 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->objects = list_make1((yyvsp[(6) - (9)].list));
n->arguments = list_make1(list_make1(makeString((yyvsp[(8) - (9)].str))));
n->removeType = OBJECT_OPCLASS;
n->behavior = (yyvsp[(9) - (9)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 709:
/* Line 1464 of yacc.c */
#line 4770 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->objects = list_make1((yyvsp[(4) - (7)].list));
n->arguments = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str))));
n->removeType = OBJECT_OPFAMILY;
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 710:
/* Line 1464 of yacc.c */
#line 4781 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->objects = list_make1((yyvsp[(6) - (9)].list));
n->arguments = list_make1(list_make1(makeString((yyvsp[(8) - (9)].str))));
n->removeType = OBJECT_OPFAMILY;
n->behavior = (yyvsp[(9) - (9)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 711:
/* Line 1464 of yacc.c */
#line 4804 "gram.y"
{
DropOwnedStmt *n = makeNode(DropOwnedStmt);
n->roles = (yyvsp[(4) - (5)].list);
n->behavior = (yyvsp[(5) - (5)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 712:
/* Line 1464 of yacc.c */
#line 4814 "gram.y"
{
ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt);
n->roles = (yyvsp[(4) - (6)].list);
n->newrole = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 713:
/* Line 1464 of yacc.c */
#line 4832 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = (yyvsp[(2) - (6)].objtype);
n->missing_ok = TRUE;
n->objects = (yyvsp[(5) - (6)].list);
n->arguments = NIL;
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 714:
/* Line 1464 of yacc.c */
#line 4843 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = (yyvsp[(2) - (4)].objtype);
n->missing_ok = FALSE;
n->objects = (yyvsp[(3) - (4)].list);
n->arguments = NIL;
n->behavior = (yyvsp[(4) - (4)].dbehavior);
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 715:
/* Line 1464 of yacc.c */
#line 4854 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_INDEX;
n->missing_ok = FALSE;
n->objects = (yyvsp[(4) - (5)].list);
n->arguments = NIL;
n->behavior = (yyvsp[(5) - (5)].dbehavior);
n->concurrent = true;
(yyval.node) = (Node *)n;
}
break;
case 716:
/* Line 1464 of yacc.c */
#line 4865 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_INDEX;
n->missing_ok = TRUE;
n->objects = (yyvsp[(6) - (7)].list);
n->arguments = NIL;
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->concurrent = true;
(yyval.node) = (Node *)n;
}
break;
case 717:
/* Line 1464 of yacc.c */
#line 4878 "gram.y"
{ (yyval.objtype) = OBJECT_TABLE; }
break;
case 718:
/* Line 1464 of yacc.c */
#line 4879 "gram.y"
{ (yyval.objtype) = OBJECT_SEQUENCE; }
break;
case 719:
/* Line 1464 of yacc.c */
#line 4880 "gram.y"
{ (yyval.objtype) = OBJECT_VIEW; }
break;
case 720:
/* Line 1464 of yacc.c */
#line 4881 "gram.y"
{ (yyval.objtype) = OBJECT_INDEX; }
break;
case 721:
/* Line 1464 of yacc.c */
#line 4882 "gram.y"
{ (yyval.objtype) = OBJECT_FOREIGN_TABLE; }
break;
case 722:
/* Line 1464 of yacc.c */
#line 4883 "gram.y"
{ (yyval.objtype) = OBJECT_TYPE; }
break;
case 723:
/* Line 1464 of yacc.c */
#line 4884 "gram.y"
{ (yyval.objtype) = OBJECT_DOMAIN; }
break;
case 724:
/* Line 1464 of yacc.c */
#line 4885 "gram.y"
{ (yyval.objtype) = OBJECT_COLLATION; }
break;
case 725:
/* Line 1464 of yacc.c */
#line 4886 "gram.y"
{ (yyval.objtype) = OBJECT_CONVERSION; }
break;
case 726:
/* Line 1464 of yacc.c */
#line 4887 "gram.y"
{ (yyval.objtype) = OBJECT_SCHEMA; }
break;
case 727:
/* Line 1464 of yacc.c */
#line 4888 "gram.y"
{ (yyval.objtype) = OBJECT_EXTENSION; }
break;
case 728:
/* Line 1464 of yacc.c */
#line 4889 "gram.y"
{ (yyval.objtype) = OBJECT_TSPARSER; }
break;
case 729:
/* Line 1464 of yacc.c */
#line 4890 "gram.y"
{ (yyval.objtype) = OBJECT_TSDICTIONARY; }
break;
case 730:
/* Line 1464 of yacc.c */
#line 4891 "gram.y"
{ (yyval.objtype) = OBJECT_TSTEMPLATE; }
break;
case 731:
/* Line 1464 of yacc.c */
#line 4892 "gram.y"
{ (yyval.objtype) = OBJECT_TSCONFIGURATION; }
break;
case 732:
/* Line 1464 of yacc.c */
#line 4896 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); }
break;
case 733:
/* Line 1464 of yacc.c */
#line 4897 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); }
break;
case 734:
/* Line 1464 of yacc.c */
#line 4900 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 735:
/* Line 1464 of yacc.c */
#line 4901 "gram.y"
{ (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); }
break;
case 736:
/* Line 1464 of yacc.c */
#line 4905 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); }
break;
case 737:
/* Line 1464 of yacc.c */
#line 4907 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); }
break;
case 738:
/* Line 1464 of yacc.c */
#line 4920 "gram.y"
{
TruncateStmt *n = makeNode(TruncateStmt);
n->relations = (yyvsp[(3) - (5)].list);
n->restart_seqs = (yyvsp[(4) - (5)].boolean);
n->behavior = (yyvsp[(5) - (5)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 739:
/* Line 1464 of yacc.c */
#line 4930 "gram.y"
{ (yyval.boolean) = false; }
break;
case 740:
/* Line 1464 of yacc.c */
#line 4931 "gram.y"
{ (yyval.boolean) = true; }
break;
case 741:
/* Line 1464 of yacc.c */
#line 4932 "gram.y"
{ (yyval.boolean) = false; }
break;
case 742:
/* Line 1464 of yacc.c */
#line 4959 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = (yyvsp[(3) - (6)].objtype);
n->objname = (yyvsp[(4) - (6)].list);
n->objargs = NIL;
n->comment = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *) n;
}
break;
case 743:
/* Line 1464 of yacc.c */
#line 4968 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_AGGREGATE;
n->objname = (yyvsp[(4) - (7)].list);
n->objargs = (yyvsp[(5) - (7)].list);
n->comment = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *) n;
}
break;
case 744:
/* Line 1464 of yacc.c */
#line 4977 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_FUNCTION;
n->objname = (yyvsp[(4) - (7)].list);
n->objargs = extractArgTypes((yyvsp[(5) - (7)].list));
n->comment = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *) n;
}
break;
case 745:
/* Line 1464 of yacc.c */
#line 4986 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_OPERATOR;
n->objname = (yyvsp[(4) - (7)].list);
n->objargs = (yyvsp[(5) - (7)].list);
n->comment = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *) n;
}
break;
case 746:
/* Line 1464 of yacc.c */
#line 4995 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_CONSTRAINT;
n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str)));
n->objargs = NIL;
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 747:
/* Line 1464 of yacc.c */
#line 5004 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_RULE;
n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str)));
n->objargs = NIL;
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 748:
/* Line 1464 of yacc.c */
#line 5013 "gram.y"
{
/* Obsolete syntax supported for awhile for compatibility */
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_RULE;
n->objname = list_make1(makeString((yyvsp[(4) - (6)].str)));
n->objargs = NIL;
n->comment = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *) n;
}
break;
case 749:
/* Line 1464 of yacc.c */
#line 5023 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_TRIGGER;
n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str)));
n->objargs = NIL;
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 750:
/* Line 1464 of yacc.c */
#line 5032 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_OPCLASS;
n->objname = (yyvsp[(5) - (9)].list);
n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str)));
n->comment = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *) n;
}
break;
case 751:
/* Line 1464 of yacc.c */
#line 5041 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_OPFAMILY;
n->objname = (yyvsp[(5) - (9)].list);
n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str)));
n->comment = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *) n;
}
break;
case 752:
/* Line 1464 of yacc.c */
#line 5050 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_LARGEOBJECT;
n->objname = list_make1((yyvsp[(5) - (7)].value));
n->objargs = NIL;
n->comment = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *) n;
}
break;
case 753:
/* Line 1464 of yacc.c */
#line 5059 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_CAST;
n->objname = list_make1((yyvsp[(5) - (10)].typnam));
n->objargs = list_make1((yyvsp[(7) - (10)].typnam));
n->comment = (yyvsp[(10) - (10)].str);
(yyval.node) = (Node *) n;
}
break;
case 754:
/* Line 1464 of yacc.c */
#line 5068 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_LANGUAGE;
n->objname = (yyvsp[(5) - (7)].list);
n->objargs = NIL;
n->comment = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *) n;
}
break;
case 755:
/* Line 1464 of yacc.c */
#line 5077 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_TSPARSER;
n->objname = (yyvsp[(6) - (8)].list);
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 756:
/* Line 1464 of yacc.c */
#line 5085 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_TSDICTIONARY;
n->objname = (yyvsp[(6) - (8)].list);
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 757:
/* Line 1464 of yacc.c */
#line 5093 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_TSTEMPLATE;
n->objname = (yyvsp[(6) - (8)].list);
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 758:
/* Line 1464 of yacc.c */
#line 5101 "gram.y"
{
CommentStmt *n = makeNode(CommentStmt);
n->objtype = OBJECT_TSCONFIGURATION;
n->objname = (yyvsp[(6) - (8)].list);
n->comment = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 759:
/* Line 1464 of yacc.c */
#line 5111 "gram.y"
{ (yyval.objtype) = OBJECT_COLUMN; }
break;
case 760:
/* Line 1464 of yacc.c */
#line 5112 "gram.y"
{ (yyval.objtype) = OBJECT_DATABASE; }
break;
case 761:
/* Line 1464 of yacc.c */
#line 5113 "gram.y"
{ (yyval.objtype) = OBJECT_SCHEMA; }
break;
case 762:
/* Line 1464 of yacc.c */
#line 5114 "gram.y"
{ (yyval.objtype) = OBJECT_INDEX; }
break;
case 763:
/* Line 1464 of yacc.c */
#line 5115 "gram.y"
{ (yyval.objtype) = OBJECT_SEQUENCE; }
break;
case 764:
/* Line 1464 of yacc.c */
#line 5116 "gram.y"
{ (yyval.objtype) = OBJECT_TABLE; }
break;
case 765:
/* Line 1464 of yacc.c */
#line 5117 "gram.y"
{ (yyval.objtype) = OBJECT_DOMAIN; }
break;
case 766:
/* Line 1464 of yacc.c */
#line 5118 "gram.y"
{ (yyval.objtype) = OBJECT_TYPE; }
break;
case 767:
/* Line 1464 of yacc.c */
#line 5119 "gram.y"
{ (yyval.objtype) = OBJECT_VIEW; }
break;
case 768:
/* Line 1464 of yacc.c */
#line 5120 "gram.y"
{ (yyval.objtype) = OBJECT_COLLATION; }
break;
case 769:
/* Line 1464 of yacc.c */
#line 5121 "gram.y"
{ (yyval.objtype) = OBJECT_CONVERSION; }
break;
case 770:
/* Line 1464 of yacc.c */
#line 5122 "gram.y"
{ (yyval.objtype) = OBJECT_TABLESPACE; }
break;
case 771:
/* Line 1464 of yacc.c */
#line 5123 "gram.y"
{ (yyval.objtype) = OBJECT_EXTENSION; }
break;
case 772:
/* Line 1464 of yacc.c */
#line 5124 "gram.y"
{ (yyval.objtype) = OBJECT_ROLE; }
break;
case 773:
/* Line 1464 of yacc.c */
#line 5125 "gram.y"
{ (yyval.objtype) = OBJECT_FOREIGN_TABLE; }
break;
case 774:
/* Line 1464 of yacc.c */
#line 5126 "gram.y"
{ (yyval.objtype) = OBJECT_FOREIGN_SERVER; }
break;
case 775:
/* Line 1464 of yacc.c */
#line 5127 "gram.y"
{ (yyval.objtype) = OBJECT_FDW; }
break;
case 776:
/* Line 1464 of yacc.c */
#line 5131 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 777:
/* Line 1464 of yacc.c */
#line 5132 "gram.y"
{ (yyval.str) = NULL; }
break;
case 778:
/* Line 1464 of yacc.c */
#line 5148 "gram.y"
{
SecLabelStmt *n = makeNode(SecLabelStmt);
n->provider = (yyvsp[(3) - (8)].str);
n->objtype = (yyvsp[(5) - (8)].objtype);
n->objname = (yyvsp[(6) - (8)].list);
n->objargs = NIL;
n->label = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *) n;
}
break;
case 779:
/* Line 1464 of yacc.c */
#line 5159 "gram.y"
{
SecLabelStmt *n = makeNode(SecLabelStmt);
n->provider = (yyvsp[(3) - (9)].str);
n->objtype = OBJECT_AGGREGATE;
n->objname = (yyvsp[(6) - (9)].list);
n->objargs = (yyvsp[(7) - (9)].list);
n->label = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *) n;
}
break;
case 780:
/* Line 1464 of yacc.c */
#line 5170 "gram.y"
{
SecLabelStmt *n = makeNode(SecLabelStmt);
n->provider = (yyvsp[(3) - (9)].str);
n->objtype = OBJECT_FUNCTION;
n->objname = (yyvsp[(6) - (9)].list);
n->objargs = extractArgTypes((yyvsp[(7) - (9)].list));
n->label = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *) n;
}
break;
case 781:
/* Line 1464 of yacc.c */
#line 5181 "gram.y"
{
SecLabelStmt *n = makeNode(SecLabelStmt);
n->provider = (yyvsp[(3) - (9)].str);
n->objtype = OBJECT_LARGEOBJECT;
n->objname = list_make1((yyvsp[(7) - (9)].value));
n->objargs = NIL;
n->label = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *) n;
}
break;
case 782:
/* Line 1464 of yacc.c */
#line 5192 "gram.y"
{
SecLabelStmt *n = makeNode(SecLabelStmt);
n->provider = (yyvsp[(3) - (9)].str);
n->objtype = OBJECT_LANGUAGE;
n->objname = (yyvsp[(7) - (9)].list);
n->objargs = NIL;
n->label = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *) n;
}
break;
case 783:
/* Line 1464 of yacc.c */
#line 5203 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 784:
/* Line 1464 of yacc.c */
#line 5204 "gram.y"
{ (yyval.str) = NULL; }
break;
case 785:
/* Line 1464 of yacc.c */
#line 5208 "gram.y"
{ (yyval.objtype) = OBJECT_COLUMN; }
break;
case 786:
/* Line 1464 of yacc.c */
#line 5209 "gram.y"
{ (yyval.objtype) = OBJECT_DATABASE; }
break;
case 787:
/* Line 1464 of yacc.c */
#line 5210 "gram.y"
{ (yyval.objtype) = OBJECT_FOREIGN_TABLE; }
break;
case 788:
/* Line 1464 of yacc.c */
#line 5211 "gram.y"
{ (yyval.objtype) = OBJECT_SCHEMA; }
break;
case 789:
/* Line 1464 of yacc.c */
#line 5212 "gram.y"
{ (yyval.objtype) = OBJECT_SEQUENCE; }
break;
case 790:
/* Line 1464 of yacc.c */
#line 5213 "gram.y"
{ (yyval.objtype) = OBJECT_TABLE; }
break;
case 791:
/* Line 1464 of yacc.c */
#line 5214 "gram.y"
{ (yyval.objtype) = OBJECT_TYPE; }
break;
case 792:
/* Line 1464 of yacc.c */
#line 5215 "gram.y"
{ (yyval.objtype) = OBJECT_ROLE; }
break;
case 793:
/* Line 1464 of yacc.c */
#line 5216 "gram.y"
{ (yyval.objtype) = OBJECT_TABLESPACE; }
break;
case 794:
/* Line 1464 of yacc.c */
#line 5217 "gram.y"
{ (yyval.objtype) = OBJECT_TYPE; }
break;
case 795:
/* Line 1464 of yacc.c */
#line 5218 "gram.y"
{ (yyval.objtype) = OBJECT_VIEW; }
break;
case 796:
/* Line 1464 of yacc.c */
#line 5221 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 797:
/* Line 1464 of yacc.c */
#line 5222 "gram.y"
{ (yyval.str) = NULL; }
break;
case 798:
/* Line 1464 of yacc.c */
#line 5233 "gram.y"
{
FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node);
n->ismove = FALSE;
(yyval.node) = (Node *)n;
}
break;
case 799:
/* Line 1464 of yacc.c */
#line 5239 "gram.y"
{
FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node);
n->ismove = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 800:
/* Line 1464 of yacc.c */
#line 5247 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(1) - (1)].str);
n->direction = FETCH_FORWARD;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 801:
/* Line 1464 of yacc.c */
#line 5255 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(2) - (2)].str);
n->direction = FETCH_FORWARD;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 802:
/* Line 1464 of yacc.c */
#line 5263 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_FORWARD;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 803:
/* Line 1464 of yacc.c */
#line 5271 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_BACKWARD;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 804:
/* Line 1464 of yacc.c */
#line 5279 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_ABSOLUTE;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 805:
/* Line 1464 of yacc.c */
#line 5287 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_ABSOLUTE;
n->howMany = -1;
(yyval.node) = (Node *)n;
}
break;
case 806:
/* Line 1464 of yacc.c */
#line 5295 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(4) - (4)].str);
n->direction = FETCH_ABSOLUTE;
n->howMany = (yyvsp[(2) - (4)].ival);
(yyval.node) = (Node *)n;
}
break;
case 807:
/* Line 1464 of yacc.c */
#line 5303 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(4) - (4)].str);
n->direction = FETCH_RELATIVE;
n->howMany = (yyvsp[(2) - (4)].ival);
(yyval.node) = (Node *)n;
}
break;
case 808:
/* Line 1464 of yacc.c */
#line 5311 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_FORWARD;
n->howMany = (yyvsp[(1) - (3)].ival);
(yyval.node) = (Node *)n;
}
break;
case 809:
/* Line 1464 of yacc.c */
#line 5319 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_FORWARD;
n->howMany = FETCH_ALL;
(yyval.node) = (Node *)n;
}
break;
case 810:
/* Line 1464 of yacc.c */
#line 5327 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_FORWARD;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 811:
/* Line 1464 of yacc.c */
#line 5335 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(4) - (4)].str);
n->direction = FETCH_FORWARD;
n->howMany = (yyvsp[(2) - (4)].ival);
(yyval.node) = (Node *)n;
}
break;
case 812:
/* Line 1464 of yacc.c */
#line 5343 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(4) - (4)].str);
n->direction = FETCH_FORWARD;
n->howMany = FETCH_ALL;
(yyval.node) = (Node *)n;
}
break;
case 813:
/* Line 1464 of yacc.c */
#line 5351 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(3) - (3)].str);
n->direction = FETCH_BACKWARD;
n->howMany = 1;
(yyval.node) = (Node *)n;
}
break;
case 814:
/* Line 1464 of yacc.c */
#line 5359 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(4) - (4)].str);
n->direction = FETCH_BACKWARD;
n->howMany = (yyvsp[(2) - (4)].ival);
(yyval.node) = (Node *)n;
}
break;
case 815:
/* Line 1464 of yacc.c */
#line 5367 "gram.y"
{
FetchStmt *n = makeNode(FetchStmt);
n->portalname = (yyvsp[(4) - (4)].str);
n->direction = FETCH_BACKWARD;
n->howMany = FETCH_ALL;
(yyval.node) = (Node *)n;
}
break;
case 816:
/* Line 1464 of yacc.c */
#line 5376 "gram.y"
{}
break;
case 817:
/* Line 1464 of yacc.c */
#line 5377 "gram.y"
{}
break;
case 818:
/* Line 1464 of yacc.c */
#line 5380 "gram.y"
{}
break;
case 819:
/* Line 1464 of yacc.c */
#line 5381 "gram.y"
{}
break;
case 820:
/* Line 1464 of yacc.c */
#line 5393 "gram.y"
{
GrantStmt *n = makeNode(GrantStmt);
n->is_grant = true;
n->privileges = (yyvsp[(2) - (7)].list);
n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype;
n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype;
n->objects = ((yyvsp[(4) - (7)].privtarget))->objs;
n->grantees = (yyvsp[(6) - (7)].list);
n->grant_option = (yyvsp[(7) - (7)].boolean);
(yyval.node) = (Node*)n;
}
break;
case 821:
/* Line 1464 of yacc.c */
#line 5409 "gram.y"
{
GrantStmt *n = makeNode(GrantStmt);
n->is_grant = false;
n->grant_option = false;
n->privileges = (yyvsp[(2) - (7)].list);
n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype;
n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype;
n->objects = ((yyvsp[(4) - (7)].privtarget))->objs;
n->grantees = (yyvsp[(6) - (7)].list);
n->behavior = (yyvsp[(7) - (7)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 822:
/* Line 1464 of yacc.c */
#line 5423 "gram.y"
{
GrantStmt *n = makeNode(GrantStmt);
n->is_grant = false;
n->grant_option = true;
n->privileges = (yyvsp[(5) - (10)].list);
n->targtype = ((yyvsp[(7) - (10)].privtarget))->targtype;
n->objtype = ((yyvsp[(7) - (10)].privtarget))->objtype;
n->objects = ((yyvsp[(7) - (10)].privtarget))->objs;
n->grantees = (yyvsp[(9) - (10)].list);
n->behavior = (yyvsp[(10) - (10)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 823:
/* Line 1464 of yacc.c */
#line 5448 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 824:
/* Line 1464 of yacc.c */
#line 5450 "gram.y"
{ (yyval.list) = NIL; }
break;
case 825:
/* Line 1464 of yacc.c */
#line 5452 "gram.y"
{ (yyval.list) = NIL; }
break;
case 826:
/* Line 1464 of yacc.c */
#line 5454 "gram.y"
{
AccessPriv *n = makeNode(AccessPriv);
n->priv_name = NULL;
n->cols = (yyvsp[(3) - (4)].list);
(yyval.list) = list_make1(n);
}
break;
case 827:
/* Line 1464 of yacc.c */
#line 5461 "gram.y"
{
AccessPriv *n = makeNode(AccessPriv);
n->priv_name = NULL;
n->cols = (yyvsp[(4) - (5)].list);
(yyval.list) = list_make1(n);
}
break;
case 828:
/* Line 1464 of yacc.c */
#line 5469 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); }
break;
case 829:
/* Line 1464 of yacc.c */
#line 5470 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); }
break;
case 830:
/* Line 1464 of yacc.c */
#line 5474 "gram.y"
{
AccessPriv *n = makeNode(AccessPriv);
n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword));
n->cols = (yyvsp[(2) - (2)].list);
(yyval.accesspriv) = n;
}
break;
case 831:
/* Line 1464 of yacc.c */
#line 5481 "gram.y"
{
AccessPriv *n = makeNode(AccessPriv);
n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword));
n->cols = (yyvsp[(2) - (2)].list);
(yyval.accesspriv) = n;
}
break;
case 832:
/* Line 1464 of yacc.c */
#line 5488 "gram.y"
{
AccessPriv *n = makeNode(AccessPriv);
n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword));
n->cols = (yyvsp[(2) - (2)].list);
(yyval.accesspriv) = n;
}
break;
case 833:
/* Line 1464 of yacc.c */
#line 5495 "gram.y"
{
AccessPriv *n = makeNode(AccessPriv);
n->priv_name = (yyvsp[(1) - (2)].str);
n->cols = (yyvsp[(2) - (2)].list);
(yyval.accesspriv) = n;
}
break;
case 834:
/* Line 1464 of yacc.c */
#line 5509 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_RELATION;
n->objs = (yyvsp[(1) - (1)].list);
(yyval.privtarget) = n;
}
break;
case 835:
/* Line 1464 of yacc.c */
#line 5517 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_RELATION;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 836:
/* Line 1464 of yacc.c */
#line 5525 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_SEQUENCE;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 837:
/* Line 1464 of yacc.c */
#line 5533 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_FDW;
n->objs = (yyvsp[(4) - (4)].list);
(yyval.privtarget) = n;
}
break;
case 838:
/* Line 1464 of yacc.c */
#line 5541 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_FOREIGN_SERVER;
n->objs = (yyvsp[(3) - (3)].list);
(yyval.privtarget) = n;
}
break;
case 839:
/* Line 1464 of yacc.c */
#line 5549 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_FUNCTION;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 840:
/* Line 1464 of yacc.c */
#line 5557 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_DATABASE;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 841:
/* Line 1464 of yacc.c */
#line 5565 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_DOMAIN;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 842:
/* Line 1464 of yacc.c */
#line 5573 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_LANGUAGE;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 843:
/* Line 1464 of yacc.c */
#line 5581 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_LARGEOBJECT;
n->objs = (yyvsp[(3) - (3)].list);
(yyval.privtarget) = n;
}
break;
case 844:
/* Line 1464 of yacc.c */
#line 5589 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_NAMESPACE;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 845:
/* Line 1464 of yacc.c */
#line 5597 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_TABLESPACE;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 846:
/* Line 1464 of yacc.c */
#line 5605 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_OBJECT;
n->objtype = ACL_OBJECT_TYPE;
n->objs = (yyvsp[(2) - (2)].list);
(yyval.privtarget) = n;
}
break;
case 847:
/* Line 1464 of yacc.c */
#line 5613 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
n->objtype = ACL_OBJECT_RELATION;
n->objs = (yyvsp[(5) - (5)].list);
(yyval.privtarget) = n;
}
break;
case 848:
/* Line 1464 of yacc.c */
#line 5621 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
n->objtype = ACL_OBJECT_SEQUENCE;
n->objs = (yyvsp[(5) - (5)].list);
(yyval.privtarget) = n;
}
break;
case 849:
/* Line 1464 of yacc.c */
#line 5629 "gram.y"
{
PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
n->objtype = ACL_OBJECT_FUNCTION;
n->objs = (yyvsp[(5) - (5)].list);
(yyval.privtarget) = n;
}
break;
case 850:
/* Line 1464 of yacc.c */
#line 5640 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 851:
/* Line 1464 of yacc.c */
#line 5641 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 852:
/* Line 1464 of yacc.c */
#line 5645 "gram.y"
{
PrivGrantee *n = makeNode(PrivGrantee);
/* This hack lets us avoid reserving PUBLIC as a keyword*/
if (strcmp((yyvsp[(1) - (1)].str), "public") == 0)
n->rolname = NULL;
else
n->rolname = (yyvsp[(1) - (1)].str);
(yyval.node) = (Node *)n;
}
break;
case 853:
/* Line 1464 of yacc.c */
#line 5655 "gram.y"
{
PrivGrantee *n = makeNode(PrivGrantee);
/* Treat GROUP PUBLIC as a synonym for PUBLIC */
if (strcmp((yyvsp[(2) - (2)].str), "public") == 0)
n->rolname = NULL;
else
n->rolname = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *)n;
}
break;
case 854:
/* Line 1464 of yacc.c */
#line 5668 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 855:
/* Line 1464 of yacc.c */
#line 5669 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 856:
/* Line 1464 of yacc.c */
#line 5673 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].funwithargs)); }
break;
case 857:
/* Line 1464 of yacc.c */
#line 5675 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].funwithargs)); }
break;
case 858:
/* Line 1464 of yacc.c */
#line 5680 "gram.y"
{
FuncWithArgs *n = makeNode(FuncWithArgs);
n->funcname = (yyvsp[(1) - (2)].list);
n->funcargs = extractArgTypes((yyvsp[(2) - (2)].list));
(yyval.funwithargs) = n;
}
break;
case 859:
/* Line 1464 of yacc.c */
#line 5696 "gram.y"
{
GrantRoleStmt *n = makeNode(GrantRoleStmt);
n->is_grant = true;
n->granted_roles = (yyvsp[(2) - (6)].list);
n->grantee_roles = (yyvsp[(4) - (6)].list);
n->admin_opt = (yyvsp[(5) - (6)].boolean);
n->grantor = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node*)n;
}
break;
case 860:
/* Line 1464 of yacc.c */
#line 5709 "gram.y"
{
GrantRoleStmt *n = makeNode(GrantRoleStmt);
n->is_grant = false;
n->admin_opt = false;
n->granted_roles = (yyvsp[(2) - (6)].list);
n->grantee_roles = (yyvsp[(4) - (6)].list);
n->behavior = (yyvsp[(6) - (6)].dbehavior);
(yyval.node) = (Node*)n;
}
break;
case 861:
/* Line 1464 of yacc.c */
#line 5719 "gram.y"
{
GrantRoleStmt *n = makeNode(GrantRoleStmt);
n->is_grant = false;
n->admin_opt = true;
n->granted_roles = (yyvsp[(5) - (9)].list);
n->grantee_roles = (yyvsp[(7) - (9)].list);
n->behavior = (yyvsp[(9) - (9)].dbehavior);
(yyval.node) = (Node*)n;
}
break;
case 862:
/* Line 1464 of yacc.c */
#line 5730 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 863:
/* Line 1464 of yacc.c */
#line 5731 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 864:
/* Line 1464 of yacc.c */
#line 5734 "gram.y"
{ (yyval.str) = (yyvsp[(3) - (3)].str); }
break;
case 865:
/* Line 1464 of yacc.c */
#line 5735 "gram.y"
{ (yyval.str) = NULL; }
break;
case 866:
/* Line 1464 of yacc.c */
#line 5746 "gram.y"
{
AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt);
n->options = (yyvsp[(4) - (5)].list);
n->action = (GrantStmt *) (yyvsp[(5) - (5)].node);
(yyval.node) = (Node*)n;
}
break;
case 867:
/* Line 1464 of yacc.c */
#line 5755 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 868:
/* Line 1464 of yacc.c */
#line 5756 "gram.y"
{ (yyval.list) = NIL; }
break;
case 869:
/* Line 1464 of yacc.c */
#line 5761 "gram.y"
{
(yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 870:
/* Line 1464 of yacc.c */
#line 5765 "gram.y"
{
(yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 871:
/* Line 1464 of yacc.c */
#line 5769 "gram.y"
{
(yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list));
}
break;
case 872:
/* Line 1464 of yacc.c */
#line 5781 "gram.y"
{
GrantStmt *n = makeNode(GrantStmt);
n->is_grant = true;
n->privileges = (yyvsp[(2) - (7)].list);
n->targtype = ACL_TARGET_DEFAULTS;
n->objtype = (yyvsp[(4) - (7)].ival);
n->objects = NIL;
n->grantees = (yyvsp[(6) - (7)].list);
n->grant_option = (yyvsp[(7) - (7)].boolean);
(yyval.node) = (Node*)n;
}
break;
case 873:
/* Line 1464 of yacc.c */
#line 5794 "gram.y"
{
GrantStmt *n = makeNode(GrantStmt);
n->is_grant = false;
n->grant_option = false;
n->privileges = (yyvsp[(2) - (7)].list);
n->targtype = ACL_TARGET_DEFAULTS;
n->objtype = (yyvsp[(4) - (7)].ival);
n->objects = NIL;
n->grantees = (yyvsp[(6) - (7)].list);
n->behavior = (yyvsp[(7) - (7)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 874:
/* Line 1464 of yacc.c */
#line 5808 "gram.y"
{
GrantStmt *n = makeNode(GrantStmt);
n->is_grant = false;
n->grant_option = true;
n->privileges = (yyvsp[(5) - (10)].list);
n->targtype = ACL_TARGET_DEFAULTS;
n->objtype = (yyvsp[(7) - (10)].ival);
n->objects = NIL;
n->grantees = (yyvsp[(9) - (10)].list);
n->behavior = (yyvsp[(10) - (10)].dbehavior);
(yyval.node) = (Node *)n;
}
break;
case 875:
/* Line 1464 of yacc.c */
#line 5823 "gram.y"
{ (yyval.ival) = ACL_OBJECT_RELATION; }
break;
case 876:
/* Line 1464 of yacc.c */
#line 5824 "gram.y"
{ (yyval.ival) = ACL_OBJECT_FUNCTION; }
break;
case 877:
/* Line 1464 of yacc.c */
#line 5825 "gram.y"
{ (yyval.ival) = ACL_OBJECT_SEQUENCE; }
break;
case 878:
/* Line 1464 of yacc.c */
#line 5826 "gram.y"
{ (yyval.ival) = ACL_OBJECT_TYPE; }
break;
case 879:
/* Line 1464 of yacc.c */
#line 5841 "gram.y"
{
IndexStmt *n = makeNode(IndexStmt);
n->unique = (yyvsp[(2) - (14)].boolean);
n->concurrent = (yyvsp[(4) - (14)].boolean);
n->idxname = (yyvsp[(5) - (14)].str);
n->relation = (yyvsp[(7) - (14)].range);
n->accessMethod = (yyvsp[(8) - (14)].str);
n->indexParams = (yyvsp[(10) - (14)].list);
n->options = (yyvsp[(12) - (14)].list);
n->tableSpace = (yyvsp[(13) - (14)].str);
n->whereClause = (yyvsp[(14) - (14)].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;
(yyval.node) = (Node *)n;
}
break;
case 880:
/* Line 1464 of yacc.c */
#line 5865 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 881:
/* Line 1464 of yacc.c */
#line 5866 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 882:
/* Line 1464 of yacc.c */
#line 5870 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 883:
/* Line 1464 of yacc.c */
#line 5871 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 884:
/* Line 1464 of yacc.c */
#line 5875 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 885:
/* Line 1464 of yacc.c */
#line 5876 "gram.y"
{ (yyval.str) = NULL; }
break;
case 886:
/* Line 1464 of yacc.c */
#line 5880 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 887:
/* Line 1464 of yacc.c */
#line 5881 "gram.y"
{ (yyval.str) = DEFAULT_INDEX_TYPE; }
break;
case 888:
/* Line 1464 of yacc.c */
#line 5884 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); }
break;
case 889:
/* Line 1464 of yacc.c */
#line 5885 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); }
break;
case 890:
/* Line 1464 of yacc.c */
#line 5894 "gram.y"
{
(yyval.ielem) = makeNode(IndexElem);
(yyval.ielem)->name = (yyvsp[(1) - (5)].str);
(yyval.ielem)->expr = NULL;
(yyval.ielem)->indexcolname = NULL;
(yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
(yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
(yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival);
(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival);
}
break;
case 891:
/* Line 1464 of yacc.c */
#line 5905 "gram.y"
{
(yyval.ielem) = makeNode(IndexElem);
(yyval.ielem)->name = NULL;
(yyval.ielem)->expr = (yyvsp[(1) - (5)].node);
(yyval.ielem)->indexcolname = NULL;
(yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
(yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
(yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival);
(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival);
}
break;
case 892:
/* Line 1464 of yacc.c */
#line 5916 "gram.y"
{
(yyval.ielem) = makeNode(IndexElem);
(yyval.ielem)->name = NULL;
(yyval.ielem)->expr = (yyvsp[(2) - (7)].node);
(yyval.ielem)->indexcolname = NULL;
(yyval.ielem)->collation = (yyvsp[(4) - (7)].list);
(yyval.ielem)->opclass = (yyvsp[(5) - (7)].list);
(yyval.ielem)->ordering = (yyvsp[(6) - (7)].ival);
(yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].ival);
}
break;
case 893:
/* Line 1464 of yacc.c */
#line 5928 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 894:
/* Line 1464 of yacc.c */
#line 5929 "gram.y"
{ (yyval.list) = NIL; }
break;
case 895:
/* Line 1464 of yacc.c */
#line 5932 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 896:
/* Line 1464 of yacc.c */
#line 5933 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 897:
/* Line 1464 of yacc.c */
#line 5934 "gram.y"
{ (yyval.list) = NIL; }
break;
case 898:
/* Line 1464 of yacc.c */
#line 5937 "gram.y"
{ (yyval.ival) = SORTBY_ASC; }
break;
case 899:
/* Line 1464 of yacc.c */
#line 5938 "gram.y"
{ (yyval.ival) = SORTBY_DESC; }
break;
case 900:
/* Line 1464 of yacc.c */
#line 5939 "gram.y"
{ (yyval.ival) = SORTBY_DEFAULT; }
break;
case 901:
/* Line 1464 of yacc.c */
#line 5942 "gram.y"
{ (yyval.ival) = SORTBY_NULLS_FIRST; }
break;
case 902:
/* Line 1464 of yacc.c */
#line 5943 "gram.y"
{ (yyval.ival) = SORTBY_NULLS_LAST; }
break;
case 903:
/* Line 1464 of yacc.c */
#line 5944 "gram.y"
{ (yyval.ival) = SORTBY_NULLS_DEFAULT; }
break;
case 904:
/* Line 1464 of yacc.c */
#line 5962 "gram.y"
{
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
n->replace = (yyvsp[(2) - (9)].boolean);
n->funcname = (yyvsp[(4) - (9)].list);
n->parameters = (yyvsp[(5) - (9)].list);
n->returnType = (yyvsp[(7) - (9)].typnam);
n->options = (yyvsp[(8) - (9)].list);
n->withClause = (yyvsp[(9) - (9)].list);
(yyval.node) = (Node *)n;
}
break;
case 905:
/* Line 1464 of yacc.c */
#line 5974 "gram.y"
{
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
n->replace = (yyvsp[(2) - (12)].boolean);
n->funcname = (yyvsp[(4) - (12)].list);
n->parameters = mergeTableFuncParameters((yyvsp[(5) - (12)].list), (yyvsp[(9) - (12)].list));
n->returnType = TableFuncTypeName((yyvsp[(9) - (12)].list));
n->returnType->location = (yylsp[(7) - (12)]);
n->options = (yyvsp[(11) - (12)].list);
n->withClause = (yyvsp[(12) - (12)].list);
(yyval.node) = (Node *)n;
}
break;
case 906:
/* Line 1464 of yacc.c */
#line 5987 "gram.y"
{
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
n->replace = (yyvsp[(2) - (7)].boolean);
n->funcname = (yyvsp[(4) - (7)].list);
n->parameters = (yyvsp[(5) - (7)].list);
n->returnType = NULL;
n->options = (yyvsp[(6) - (7)].list);
n->withClause = (yyvsp[(7) - (7)].list);
(yyval.node) = (Node *)n;
}
break;
case 907:
/* Line 1464 of yacc.c */
#line 6000 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 908:
/* Line 1464 of yacc.c */
#line 6001 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 909:
/* Line 1464 of yacc.c */
#line 6004 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 910:
/* Line 1464 of yacc.c */
#line 6005 "gram.y"
{ (yyval.list) = NIL; }
break;
case 911:
/* Line 1464 of yacc.c */
#line 6009 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); }
break;
case 912:
/* Line 1464 of yacc.c */
#line 6010 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); }
break;
case 913:
/* Line 1464 of yacc.c */
#line 6018 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 914:
/* Line 1464 of yacc.c */
#line 6019 "gram.y"
{ (yyval.list) = NIL; }
break;
case 915:
/* Line 1464 of yacc.c */
#line 6023 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); }
break;
case 916:
/* Line 1464 of yacc.c */
#line 6025 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); }
break;
case 917:
/* Line 1464 of yacc.c */
#line 6040 "gram.y"
{
FunctionParameter *n = makeNode(FunctionParameter);
n->name = (yyvsp[(2) - (3)].str);
n->argType = (yyvsp[(3) - (3)].typnam);
n->mode = (yyvsp[(1) - (3)].fun_param_mode);
n->defexpr = NULL;
(yyval.fun_param) = n;
}
break;
case 918:
/* Line 1464 of yacc.c */
#line 6049 "gram.y"
{
FunctionParameter *n = makeNode(FunctionParameter);
n->name = (yyvsp[(1) - (3)].str);
n->argType = (yyvsp[(3) - (3)].typnam);
n->mode = (yyvsp[(2) - (3)].fun_param_mode);
n->defexpr = NULL;
(yyval.fun_param) = n;
}
break;
case 919:
/* Line 1464 of yacc.c */
#line 6058 "gram.y"
{
FunctionParameter *n = makeNode(FunctionParameter);
n->name = (yyvsp[(1) - (2)].str);
n->argType = (yyvsp[(2) - (2)].typnam);
n->mode = FUNC_PARAM_IN;
n->defexpr = NULL;
(yyval.fun_param) = n;
}
break;
case 920:
/* Line 1464 of yacc.c */
#line 6067 "gram.y"
{
FunctionParameter *n = makeNode(FunctionParameter);
n->name = NULL;
n->argType = (yyvsp[(2) - (2)].typnam);
n->mode = (yyvsp[(1) - (2)].fun_param_mode);
n->defexpr = NULL;
(yyval.fun_param) = n;
}
break;
case 921:
/* Line 1464 of yacc.c */
#line 6076 "gram.y"
{
FunctionParameter *n = makeNode(FunctionParameter);
n->name = NULL;
n->argType = (yyvsp[(1) - (1)].typnam);
n->mode = FUNC_PARAM_IN;
n->defexpr = NULL;
(yyval.fun_param) = n;
}
break;
case 922:
/* Line 1464 of yacc.c */
#line 6087 "gram.y"
{ (yyval.fun_param_mode) = FUNC_PARAM_IN; }
break;
case 923:
/* Line 1464 of yacc.c */
#line 6088 "gram.y"
{ (yyval.fun_param_mode) = FUNC_PARAM_OUT; }
break;
case 924:
/* Line 1464 of yacc.c */
#line 6089 "gram.y"
{ (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
break;
case 925:
/* Line 1464 of yacc.c */
#line 6090 "gram.y"
{ (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
break;
case 926:
/* Line 1464 of yacc.c */
#line 6091 "gram.y"
{ (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; }
break;
case 928:
/* Line 1464 of yacc.c */
#line 6102 "gram.y"
{
/* 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[(1) - (1)].typnam);
}
break;
case 929:
/* Line 1464 of yacc.c */
#line 6116 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 930:
/* Line 1464 of yacc.c */
#line 6118 "gram.y"
{
(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list)));
(yyval.typnam)->pct_type = true;
(yyval.typnam)->location = (yylsp[(1) - (4)]);
}
break;
case 931:
/* Line 1464 of yacc.c */
#line 6124 "gram.y"
{
(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list)));
(yyval.typnam)->pct_type = true;
(yyval.typnam)->setof = TRUE;
(yyval.typnam)->location = (yylsp[(2) - (5)]);
}
break;
case 932:
/* Line 1464 of yacc.c */
#line 6134 "gram.y"
{
(yyval.fun_param) = (yyvsp[(1) - (1)].fun_param);
}
break;
case 933:
/* Line 1464 of yacc.c */
#line 6138 "gram.y"
{
(yyval.fun_param) = (yyvsp[(1) - (3)].fun_param);
(yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node);
}
break;
case 934:
/* Line 1464 of yacc.c */
#line 6143 "gram.y"
{
(yyval.fun_param) = (yyvsp[(1) - (3)].fun_param);
(yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node);
}
break;
case 935:
/* Line 1464 of yacc.c */
#line 6152 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 936:
/* Line 1464 of yacc.c */
#line 6153 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 937:
/* Line 1464 of yacc.c */
#line 6161 "gram.y"
{
(yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(FALSE));
}
break;
case 938:
/* Line 1464 of yacc.c */
#line 6165 "gram.y"
{
(yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE));
}
break;
case 939:
/* Line 1464 of yacc.c */
#line 6169 "gram.y"
{
(yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE));
}
break;
case 940:
/* Line 1464 of yacc.c */
#line 6173 "gram.y"
{
(yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable"));
}
break;
case 941:
/* Line 1464 of yacc.c */
#line 6177 "gram.y"
{
(yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable"));
}
break;
case 942:
/* Line 1464 of yacc.c */
#line 6181 "gram.y"
{
(yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile"));
}
break;
case 943:
/* Line 1464 of yacc.c */
#line 6185 "gram.y"
{
(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE));
}
break;
case 944:
/* Line 1464 of yacc.c */
#line 6189 "gram.y"
{
(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE));
}
break;
case 945:
/* Line 1464 of yacc.c */
#line 6193 "gram.y"
{
(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE));
}
break;
case 946:
/* Line 1464 of yacc.c */
#line 6197 "gram.y"
{
(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE));
}
break;
case 947:
/* Line 1464 of yacc.c */
#line 6201 "gram.y"
{
(yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(TRUE));
}
break;
case 948:
/* Line 1464 of yacc.c */
#line 6205 "gram.y"
{
(yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(FALSE));
}
break;
case 949:
/* Line 1464 of yacc.c */
#line 6209 "gram.y"
{
(yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[(2) - (2)].value));
}
break;
case 950:
/* Line 1464 of yacc.c */
#line 6213 "gram.y"
{
(yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[(2) - (2)].value));
}
break;
case 951:
/* Line 1464 of yacc.c */
#line 6217 "gram.y"
{
/* we abuse the normal content of a DefElem here */
(yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[(1) - (1)].vsetstmt));
}
break;
case 952:
/* Line 1464 of yacc.c */
#line 6225 "gram.y"
{
(yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[(2) - (2)].list));
}
break;
case 953:
/* Line 1464 of yacc.c */
#line 6229 "gram.y"
{
(yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 954:
/* Line 1464 of yacc.c */
#line 6233 "gram.y"
{
(yyval.defelt) = makeDefElem("window", (Node *)makeInteger(TRUE));
}
break;
case 955:
/* Line 1464 of yacc.c */
#line 6237 "gram.y"
{
(yyval.defelt) = (yyvsp[(1) - (1)].defelt);
}
break;
case 956:
/* Line 1464 of yacc.c */
#line 6242 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 957:
/* Line 1464 of yacc.c */
#line 6244 "gram.y"
{
(yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str)));
}
break;
case 958:
/* Line 1464 of yacc.c */
#line 6250 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 959:
/* Line 1464 of yacc.c */
#line 6251 "gram.y"
{ (yyval.list) = NIL; }
break;
case 960:
/* Line 1464 of yacc.c */
#line 6255 "gram.y"
{
FunctionParameter *n = makeNode(FunctionParameter);
n->name = (yyvsp[(1) - (2)].str);
n->argType = (yyvsp[(2) - (2)].typnam);
n->mode = FUNC_PARAM_TABLE;
n->defexpr = NULL;
(yyval.fun_param) = n;
}
break;
case 961:
/* Line 1464 of yacc.c */
#line 6267 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param));
}
break;
case 962:
/* Line 1464 of yacc.c */
#line 6271 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param));
}
break;
case 963:
/* Line 1464 of yacc.c */
#line 6286 "gram.y"
{
AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
n->func = (yyvsp[(3) - (5)].funwithargs);
n->actions = (yyvsp[(4) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 964:
/* Line 1464 of yacc.c */
#line 6296 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 965:
/* Line 1464 of yacc.c */
#line 6297 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 968:
/* Line 1464 of yacc.c */
#line 6319 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_FUNCTION;
n->objects = list_make1((yyvsp[(3) - (5)].list));
n->arguments = list_make1(extractArgTypes((yyvsp[(4) - (5)].list)));
n->behavior = (yyvsp[(5) - (5)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 969:
/* Line 1464 of yacc.c */
#line 6330 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_FUNCTION;
n->objects = list_make1((yyvsp[(5) - (7)].list));
n->arguments = list_make1(extractArgTypes((yyvsp[(6) - (7)].list)));
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 970:
/* Line 1464 of yacc.c */
#line 6344 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_AGGREGATE;
n->objects = list_make1((yyvsp[(3) - (5)].list));
n->arguments = list_make1((yyvsp[(4) - (5)].list));
n->behavior = (yyvsp[(5) - (5)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 971:
/* Line 1464 of yacc.c */
#line 6355 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_AGGREGATE;
n->objects = list_make1((yyvsp[(5) - (7)].list));
n->arguments = list_make1((yyvsp[(6) - (7)].list));
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 972:
/* Line 1464 of yacc.c */
#line 6369 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_OPERATOR;
n->objects = list_make1((yyvsp[(3) - (5)].list));
n->arguments = list_make1((yyvsp[(4) - (5)].list));
n->behavior = (yyvsp[(5) - (5)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 973:
/* Line 1464 of yacc.c */
#line 6380 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_OPERATOR;
n->objects = list_make1((yyvsp[(5) - (7)].list));
n->arguments = list_make1((yyvsp[(6) - (7)].list));
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 974:
/* Line 1464 of yacc.c */
#line 6394 "gram.y"
{
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("missing argument"),
errhint("Use NONE to denote the missing argument of a unary operator."),
parser_errposition((yylsp[(3) - (3)]))));
}
break;
case 975:
/* Line 1464 of yacc.c */
#line 6402 "gram.y"
{ (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); }
break;
case 976:
/* Line 1464 of yacc.c */
#line 6404 "gram.y"
{ (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); }
break;
case 977:
/* Line 1464 of yacc.c */
#line 6406 "gram.y"
{ (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); }
break;
case 978:
/* Line 1464 of yacc.c */
#line 6411 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 979:
/* Line 1464 of yacc.c */
#line 6413 "gram.y"
{ (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); }
break;
case 980:
/* Line 1464 of yacc.c */
#line 6426 "gram.y"
{
DoStmt *n = makeNode(DoStmt);
n->args = (yyvsp[(2) - (2)].list);
(yyval.node) = (Node *)n;
}
break;
case 981:
/* Line 1464 of yacc.c */
#line 6434 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 982:
/* Line 1464 of yacc.c */
#line 6435 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 983:
/* Line 1464 of yacc.c */
#line 6440 "gram.y"
{
(yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[(1) - (1)].str)));
}
break;
case 984:
/* Line 1464 of yacc.c */
#line 6444 "gram.y"
{
(yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str)));
}
break;
case 985:
/* Line 1464 of yacc.c */
#line 6457 "gram.y"
{
CreateCastStmt *n = makeNode(CreateCastStmt);
n->sourcetype = (yyvsp[(4) - (11)].typnam);
n->targettype = (yyvsp[(6) - (11)].typnam);
n->func = (yyvsp[(10) - (11)].funwithargs);
n->context = (CoercionContext) (yyvsp[(11) - (11)].ival);
n->inout = false;
(yyval.node) = (Node *)n;
}
break;
case 986:
/* Line 1464 of yacc.c */
#line 6468 "gram.y"
{
CreateCastStmt *n = makeNode(CreateCastStmt);
n->sourcetype = (yyvsp[(4) - (10)].typnam);
n->targettype = (yyvsp[(6) - (10)].typnam);
n->func = NULL;
n->context = (CoercionContext) (yyvsp[(10) - (10)].ival);
n->inout = false;
(yyval.node) = (Node *)n;
}
break;
case 987:
/* Line 1464 of yacc.c */
#line 6479 "gram.y"
{
CreateCastStmt *n = makeNode(CreateCastStmt);
n->sourcetype = (yyvsp[(4) - (10)].typnam);
n->targettype = (yyvsp[(6) - (10)].typnam);
n->func = NULL;
n->context = (CoercionContext) (yyvsp[(10) - (10)].ival);
n->inout = true;
(yyval.node) = (Node *)n;
}
break;
case 988:
/* Line 1464 of yacc.c */
#line 6490 "gram.y"
{ (yyval.ival) = COERCION_IMPLICIT; }
break;
case 989:
/* Line 1464 of yacc.c */
#line 6491 "gram.y"
{ (yyval.ival) = COERCION_ASSIGNMENT; }
break;
case 990:
/* Line 1464 of yacc.c */
#line 6492 "gram.y"
{ (yyval.ival) = COERCION_EXPLICIT; }
break;
case 991:
/* Line 1464 of yacc.c */
#line 6497 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_CAST;
n->objects = list_make1(list_make1((yyvsp[(5) - (9)].typnam)));
n->arguments = list_make1(list_make1((yyvsp[(7) - (9)].typnam)));
n->behavior = (yyvsp[(9) - (9)].dbehavior);
n->missing_ok = (yyvsp[(3) - (9)].boolean);
n->concurrent = false;
(yyval.node) = (Node *)n;
}
break;
case 992:
/* Line 1464 of yacc.c */
#line 6509 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 993:
/* Line 1464 of yacc.c */
#line 6510 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 994:
/* Line 1464 of yacc.c */
#line 6525 "gram.y"
{
ReindexStmt *n = makeNode(ReindexStmt);
n->kind = (yyvsp[(2) - (4)].objtype);
n->relation = (yyvsp[(3) - (4)].range);
n->name = NULL;
(yyval.node) = (Node *)n;
}
break;
case 995:
/* Line 1464 of yacc.c */
#line 6533 "gram.y"
{
ReindexStmt *n = makeNode(ReindexStmt);
n->kind = OBJECT_DATABASE;
n->name = (yyvsp[(3) - (4)].str);
n->relation = NULL;
n->do_system = true;
n->do_user = false;
(yyval.node) = (Node *)n;
}
break;
case 996:
/* Line 1464 of yacc.c */
#line 6543 "gram.y"
{
ReindexStmt *n = makeNode(ReindexStmt);
n->kind = OBJECT_DATABASE;
n->name = (yyvsp[(3) - (4)].str);
n->relation = NULL;
n->do_system = true;
n->do_user = true;
(yyval.node) = (Node *)n;
}
break;
case 997:
/* Line 1464 of yacc.c */
#line 6555 "gram.y"
{ (yyval.objtype) = OBJECT_INDEX; }
break;
case 998:
/* Line 1464 of yacc.c */
#line 6556 "gram.y"
{ (yyval.objtype) = OBJECT_TABLE; }
break;
case 999:
/* Line 1464 of yacc.c */
#line 6559 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1000:
/* Line 1464 of yacc.c */
#line 6560 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1001:
/* Line 1464 of yacc.c */
#line 6571 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_AGGREGATE;
n->object = (yyvsp[(3) - (7)].list);
n->objarg = (yyvsp[(4) - (7)].list);
n->newname = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1002:
/* Line 1464 of yacc.c */
#line 6581 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_COLLATION;
n->object = (yyvsp[(3) - (6)].list);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1003:
/* Line 1464 of yacc.c */
#line 6590 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_CONVERSION;
n->object = (yyvsp[(3) - (6)].list);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1004:
/* Line 1464 of yacc.c */
#line 6599 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_DATABASE;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1005:
/* Line 1464 of yacc.c */
#line 6608 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_DOMAIN;
n->object = (yyvsp[(3) - (6)].list);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1006:
/* Line 1464 of yacc.c */
#line 6617 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_CONSTRAINT;
n->relationType = OBJECT_DOMAIN;
n->object = (yyvsp[(3) - (8)].list);
n->subname = (yyvsp[(6) - (8)].str);
n->newname = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *)n;
}
break;
case 1007:
/* Line 1464 of yacc.c */
#line 6627 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_FDW;
n->subname = (yyvsp[(5) - (8)].str);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1008:
/* Line 1464 of yacc.c */
#line 6636 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_FUNCTION;
n->object = (yyvsp[(3) - (6)].funwithargs)->funcname;
n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs;
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1009:
/* Line 1464 of yacc.c */
#line 6646 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_ROLE;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1010:
/* Line 1464 of yacc.c */
#line 6655 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_LANGUAGE;
n->subname = (yyvsp[(4) - (7)].str);
n->newname = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1011:
/* Line 1464 of yacc.c */
#line 6664 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_OPCLASS;
n->object = (yyvsp[(4) - (9)].list);
n->subname = (yyvsp[(6) - (9)].str);
n->newname = (yyvsp[(9) - (9)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1012:
/* Line 1464 of yacc.c */
#line 6674 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_OPFAMILY;
n->object = (yyvsp[(4) - (9)].list);
n->subname = (yyvsp[(6) - (9)].str);
n->newname = (yyvsp[(9) - (9)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1013:
/* Line 1464 of yacc.c */
#line 6684 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_SCHEMA;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1014:
/* Line 1464 of yacc.c */
#line 6693 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_FOREIGN_SERVER;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1015:
/* Line 1464 of yacc.c */
#line 6702 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TABLE;
n->relation = (yyvsp[(3) - (6)].range);
n->subname = NULL;
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1016:
/* Line 1464 of yacc.c */
#line 6712 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TABLE;
n->relation = (yyvsp[(5) - (8)].range);
n->subname = NULL;
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1017:
/* Line 1464 of yacc.c */
#line 6722 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_SEQUENCE;
n->relation = (yyvsp[(3) - (6)].range);
n->subname = NULL;
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1018:
/* Line 1464 of yacc.c */
#line 6732 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_SEQUENCE;
n->relation = (yyvsp[(5) - (8)].range);
n->subname = NULL;
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1019:
/* Line 1464 of yacc.c */
#line 6742 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_VIEW;
n->relation = (yyvsp[(3) - (6)].range);
n->subname = NULL;
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1020:
/* Line 1464 of yacc.c */
#line 6752 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_VIEW;
n->relation = (yyvsp[(5) - (8)].range);
n->subname = NULL;
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1021:
/* Line 1464 of yacc.c */
#line 6762 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_INDEX;
n->relation = (yyvsp[(3) - (6)].range);
n->subname = NULL;
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1022:
/* Line 1464 of yacc.c */
#line 6772 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_INDEX;
n->relation = (yyvsp[(5) - (8)].range);
n->subname = NULL;
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1023:
/* Line 1464 of yacc.c */
#line 6782 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_FOREIGN_TABLE;
n->relation = (yyvsp[(4) - (7)].range);
n->subname = NULL;
n->newname = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1024:
/* Line 1464 of yacc.c */
#line 6792 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_FOREIGN_TABLE;
n->relation = (yyvsp[(6) - (9)].range);
n->subname = NULL;
n->newname = (yyvsp[(9) - (9)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1025:
/* Line 1464 of yacc.c */
#line 6802 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_COLUMN;
n->relationType = OBJECT_TABLE;
n->relation = (yyvsp[(3) - (8)].range);
n->subname = (yyvsp[(6) - (8)].str);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1026:
/* Line 1464 of yacc.c */
#line 6813 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_COLUMN;
n->relationType = OBJECT_TABLE;
n->relation = (yyvsp[(5) - (10)].range);
n->subname = (yyvsp[(8) - (10)].str);
n->newname = (yyvsp[(10) - (10)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1027:
/* Line 1464 of yacc.c */
#line 6824 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_CONSTRAINT;
n->relationType = OBJECT_TABLE;
n->relation = (yyvsp[(3) - (8)].range);
n->subname = (yyvsp[(6) - (8)].str);
n->newname = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *)n;
}
break;
case 1028:
/* Line 1464 of yacc.c */
#line 6834 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_COLUMN;
n->relationType = OBJECT_FOREIGN_TABLE;
n->relation = (yyvsp[(4) - (9)].range);
n->subname = (yyvsp[(7) - (9)].str);
n->newname = (yyvsp[(9) - (9)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1029:
/* Line 1464 of yacc.c */
#line 6845 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_COLUMN;
n->relationType = OBJECT_FOREIGN_TABLE;
n->relation = (yyvsp[(6) - (11)].range);
n->subname = (yyvsp[(9) - (11)].str);
n->newname = (yyvsp[(11) - (11)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1030:
/* Line 1464 of yacc.c */
#line 6856 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TRIGGER;
n->relation = (yyvsp[(5) - (8)].range);
n->subname = (yyvsp[(3) - (8)].str);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1031:
/* Line 1464 of yacc.c */
#line 6866 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_ROLE;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1032:
/* Line 1464 of yacc.c */
#line 6875 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_ROLE;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1033:
/* Line 1464 of yacc.c */
#line 6884 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TABLESPACE;
n->subname = (yyvsp[(3) - (6)].str);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1034:
/* Line 1464 of yacc.c */
#line 6893 "gram.y"
{
AlterTableSpaceOptionsStmt *n =
makeNode(AlterTableSpaceOptionsStmt);
n->tablespacename = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
n->isReset = FALSE;
(yyval.node) = (Node *)n;
}
break;
case 1035:
/* Line 1464 of yacc.c */
#line 6902 "gram.y"
{
AlterTableSpaceOptionsStmt *n =
makeNode(AlterTableSpaceOptionsStmt);
n->tablespacename = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
n->isReset = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 1036:
/* Line 1464 of yacc.c */
#line 6911 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TSPARSER;
n->object = (yyvsp[(5) - (8)].list);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1037:
/* Line 1464 of yacc.c */
#line 6920 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TSDICTIONARY;
n->object = (yyvsp[(5) - (8)].list);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1038:
/* Line 1464 of yacc.c */
#line 6929 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TSTEMPLATE;
n->object = (yyvsp[(5) - (8)].list);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1039:
/* Line 1464 of yacc.c */
#line 6938 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TSCONFIGURATION;
n->object = (yyvsp[(5) - (8)].list);
n->newname = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1040:
/* Line 1464 of yacc.c */
#line 6947 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TYPE;
n->object = (yyvsp[(3) - (6)].list);
n->newname = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1041:
/* Line 1464 of yacc.c */
#line 6956 "gram.y"
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_ATTRIBUTE;
n->relationType = OBJECT_TYPE;
n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (9)].list), (yylsp[(3) - (9)]), yyscanner);
n->subname = (yyvsp[(6) - (9)].str);
n->newname = (yyvsp[(8) - (9)].str);
n->behavior = (yyvsp[(9) - (9)].dbehavior);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1042:
/* Line 1464 of yacc.c */
#line 6969 "gram.y"
{ (yyval.ival) = COLUMN; }
break;
case 1043:
/* Line 1464 of yacc.c */
#line 6970 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1044:
/* Line 1464 of yacc.c */
#line 6973 "gram.y"
{ (yyval.ival) = 1; }
break;
case 1045:
/* Line 1464 of yacc.c */
#line 6974 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1046:
/* Line 1464 of yacc.c */
#line 6985 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_AGGREGATE;
n->object = (yyvsp[(3) - (7)].list);
n->objarg = (yyvsp[(4) - (7)].list);
n->newschema = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1047:
/* Line 1464 of yacc.c */
#line 6995 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_COLLATION;
n->object = (yyvsp[(3) - (6)].list);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1048:
/* Line 1464 of yacc.c */
#line 7004 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_CONVERSION;
n->object = (yyvsp[(3) - (6)].list);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1049:
/* Line 1464 of yacc.c */
#line 7013 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_DOMAIN;
n->object = (yyvsp[(3) - (6)].list);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1050:
/* Line 1464 of yacc.c */
#line 7022 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_EXTENSION;
n->object = (yyvsp[(3) - (6)].list);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1051:
/* Line 1464 of yacc.c */
#line 7031 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_FUNCTION;
n->object = (yyvsp[(3) - (6)].funwithargs)->funcname;
n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs;
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1052:
/* Line 1464 of yacc.c */
#line 7041 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_OPERATOR;
n->object = (yyvsp[(3) - (7)].list);
n->objarg = (yyvsp[(4) - (7)].list);
n->newschema = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1053:
/* Line 1464 of yacc.c */
#line 7051 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_OPCLASS;
n->object = (yyvsp[(4) - (9)].list);
n->addname = (yyvsp[(6) - (9)].str);
n->newschema = (yyvsp[(9) - (9)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1054:
/* Line 1464 of yacc.c */
#line 7061 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_OPFAMILY;
n->object = (yyvsp[(4) - (9)].list);
n->addname = (yyvsp[(6) - (9)].str);
n->newschema = (yyvsp[(9) - (9)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1055:
/* Line 1464 of yacc.c */
#line 7071 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TABLE;
n->relation = (yyvsp[(3) - (6)].range);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1056:
/* Line 1464 of yacc.c */
#line 7080 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TABLE;
n->relation = (yyvsp[(5) - (8)].range);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1057:
/* Line 1464 of yacc.c */
#line 7089 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TSPARSER;
n->object = (yyvsp[(5) - (8)].list);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1058:
/* Line 1464 of yacc.c */
#line 7098 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TSDICTIONARY;
n->object = (yyvsp[(5) - (8)].list);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1059:
/* Line 1464 of yacc.c */
#line 7107 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TSTEMPLATE;
n->object = (yyvsp[(5) - (8)].list);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1060:
/* Line 1464 of yacc.c */
#line 7116 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TSCONFIGURATION;
n->object = (yyvsp[(5) - (8)].list);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1061:
/* Line 1464 of yacc.c */
#line 7125 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_SEQUENCE;
n->relation = (yyvsp[(3) - (6)].range);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1062:
/* Line 1464 of yacc.c */
#line 7134 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_SEQUENCE;
n->relation = (yyvsp[(5) - (8)].range);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1063:
/* Line 1464 of yacc.c */
#line 7143 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_VIEW;
n->relation = (yyvsp[(3) - (6)].range);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1064:
/* Line 1464 of yacc.c */
#line 7152 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_VIEW;
n->relation = (yyvsp[(5) - (8)].range);
n->newschema = (yyvsp[(8) - (8)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1065:
/* Line 1464 of yacc.c */
#line 7161 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_FOREIGN_TABLE;
n->relation = (yyvsp[(4) - (7)].range);
n->newschema = (yyvsp[(7) - (7)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1066:
/* Line 1464 of yacc.c */
#line 7170 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_FOREIGN_TABLE;
n->relation = (yyvsp[(6) - (9)].range);
n->newschema = (yyvsp[(9) - (9)].str);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1067:
/* Line 1464 of yacc.c */
#line 7179 "gram.y"
{
AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
n->objectType = OBJECT_TYPE;
n->object = (yyvsp[(3) - (6)].list);
n->newschema = (yyvsp[(6) - (6)].str);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1068:
/* Line 1464 of yacc.c */
#line 7196 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_AGGREGATE;
n->object = (yyvsp[(3) - (7)].list);
n->objarg = (yyvsp[(4) - (7)].list);
n->newowner = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *)n;
}
break;
case 1069:
/* Line 1464 of yacc.c */
#line 7205 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_COLLATION;
n->object = (yyvsp[(3) - (6)].list);
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1070:
/* Line 1464 of yacc.c */
#line 7213 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_CONVERSION;
n->object = (yyvsp[(3) - (6)].list);
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1071:
/* Line 1464 of yacc.c */
#line 7221 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_DATABASE;
n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1072:
/* Line 1464 of yacc.c */
#line 7229 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_DOMAIN;
n->object = (yyvsp[(3) - (6)].list);
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1073:
/* Line 1464 of yacc.c */
#line 7237 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_FUNCTION;
n->object = (yyvsp[(3) - (6)].funwithargs)->funcname;
n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs;
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1074:
/* Line 1464 of yacc.c */
#line 7246 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_LANGUAGE;
n->object = list_make1(makeString((yyvsp[(4) - (7)].str)));
n->newowner = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *)n;
}
break;
case 1075:
/* Line 1464 of yacc.c */
#line 7254 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_LARGEOBJECT;
n->object = list_make1((yyvsp[(4) - (7)].value));
n->newowner = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *)n;
}
break;
case 1076:
/* Line 1464 of yacc.c */
#line 7262 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_OPERATOR;
n->object = (yyvsp[(3) - (7)].list);
n->objarg = (yyvsp[(4) - (7)].list);
n->newowner = (yyvsp[(7) - (7)].str);
(yyval.node) = (Node *)n;
}
break;
case 1077:
/* Line 1464 of yacc.c */
#line 7271 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_OPCLASS;
n->object = (yyvsp[(4) - (9)].list);
n->addname = (yyvsp[(6) - (9)].str);
n->newowner = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *)n;
}
break;
case 1078:
/* Line 1464 of yacc.c */
#line 7280 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_OPFAMILY;
n->object = (yyvsp[(4) - (9)].list);
n->addname = (yyvsp[(6) - (9)].str);
n->newowner = (yyvsp[(9) - (9)].str);
(yyval.node) = (Node *)n;
}
break;
case 1079:
/* Line 1464 of yacc.c */
#line 7289 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_SCHEMA;
n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1080:
/* Line 1464 of yacc.c */
#line 7297 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_TYPE;
n->object = (yyvsp[(3) - (6)].list);
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1081:
/* Line 1464 of yacc.c */
#line 7305 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_TABLESPACE;
n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1082:
/* Line 1464 of yacc.c */
#line 7313 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_TSDICTIONARY;
n->object = (yyvsp[(5) - (8)].list);
n->newowner = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *)n;
}
break;
case 1083:
/* Line 1464 of yacc.c */
#line 7321 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_TSCONFIGURATION;
n->object = (yyvsp[(5) - (8)].list);
n->newowner = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *)n;
}
break;
case 1084:
/* Line 1464 of yacc.c */
#line 7329 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_FDW;
n->object = list_make1(makeString((yyvsp[(5) - (8)].str)));
n->newowner = (yyvsp[(8) - (8)].str);
(yyval.node) = (Node *)n;
}
break;
case 1085:
/* Line 1464 of yacc.c */
#line 7337 "gram.y"
{
AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
n->objectType = OBJECT_FOREIGN_SERVER;
n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
n->newowner = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1086:
/* Line 1464 of yacc.c */
#line 7356 "gram.y"
{
RuleStmt *n = makeNode(RuleStmt);
n->replace = (yyvsp[(2) - (13)].boolean);
n->relation = (yyvsp[(9) - (13)].range);
n->rulename = (yyvsp[(4) - (13)].str);
n->whereClause = (yyvsp[(10) - (13)].node);
n->event = (yyvsp[(7) - (13)].ival);
n->instead = (yyvsp[(12) - (13)].boolean);
n->actions = (yyvsp[(13) - (13)].list);
(yyval.node) = (Node *)n;
}
break;
case 1087:
/* Line 1464 of yacc.c */
#line 7370 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1088:
/* Line 1464 of yacc.c */
#line 7371 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1089:
/* Line 1464 of yacc.c */
#line 7372 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 1090:
/* Line 1464 of yacc.c */
#line 7378 "gram.y"
{ if ((yyvsp[(3) - (3)].node) != NULL)
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
else
(yyval.list) = (yyvsp[(1) - (3)].list);
}
break;
case 1091:
/* Line 1464 of yacc.c */
#line 7384 "gram.y"
{ if ((yyvsp[(1) - (1)].node) != NULL)
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
else
(yyval.list) = NIL;
}
break;
case 1097:
/* Line 1464 of yacc.c */
#line 7400 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1098:
/* Line 1464 of yacc.c */
#line 7401 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1099:
/* Line 1464 of yacc.c */
#line 7404 "gram.y"
{ (yyval.ival) = CMD_SELECT; }
break;
case 1100:
/* Line 1464 of yacc.c */
#line 7405 "gram.y"
{ (yyval.ival) = CMD_UPDATE; }
break;
case 1101:
/* Line 1464 of yacc.c */
#line 7406 "gram.y"
{ (yyval.ival) = CMD_DELETE; }
break;
case 1102:
/* Line 1464 of yacc.c */
#line 7407 "gram.y"
{ (yyval.ival) = CMD_INSERT; }
break;
case 1103:
/* Line 1464 of yacc.c */
#line 7411 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1104:
/* Line 1464 of yacc.c */
#line 7412 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1105:
/* Line 1464 of yacc.c */
#line 7413 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1106:
/* Line 1464 of yacc.c */
#line 7419 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_RULE;
n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str))));
n->arguments = NIL;
n->behavior = (yyvsp[(6) - (6)].dbehavior);
n->missing_ok = false;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 1107:
/* Line 1464 of yacc.c */
#line 7430 "gram.y"
{
DropStmt *n = makeNode(DropStmt);
n->removeType = OBJECT_RULE;
n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str))));
n->arguments = NIL;
n->behavior = (yyvsp[(8) - (8)].dbehavior);
n->missing_ok = true;
n->concurrent = false;
(yyval.node) = (Node *) n;
}
break;
case 1108:
/* Line 1464 of yacc.c */
#line 7452 "gram.y"
{
NotifyStmt *n = makeNode(NotifyStmt);
n->conditionname = (yyvsp[(2) - (3)].str);
n->payload = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 1109:
/* Line 1464 of yacc.c */
#line 7461 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 1110:
/* Line 1464 of yacc.c */
#line 7462 "gram.y"
{ (yyval.str) = NULL; }
break;
case 1111:
/* Line 1464 of yacc.c */
#line 7466 "gram.y"
{
ListenStmt *n = makeNode(ListenStmt);
n->conditionname = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *)n;
}
break;
case 1112:
/* Line 1464 of yacc.c */
#line 7475 "gram.y"
{
UnlistenStmt *n = makeNode(UnlistenStmt);
n->conditionname = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *)n;
}
break;
case 1113:
/* Line 1464 of yacc.c */
#line 7481 "gram.y"
{
UnlistenStmt *n = makeNode(UnlistenStmt);
n->conditionname = NULL;
(yyval.node) = (Node *)n;
}
break;
case 1114:
/* Line 1464 of yacc.c */
#line 7500 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_ROLLBACK;
n->options = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1115:
/* Line 1464 of yacc.c */
#line 7507 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_BEGIN;
n->options = (yyvsp[(3) - (3)].list);
(yyval.node) = (Node *)n;
}
break;
case 1116:
/* Line 1464 of yacc.c */
#line 7514 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_START;
n->options = (yyvsp[(3) - (3)].list);
(yyval.node) = (Node *)n;
}
break;
case 1117:
/* Line 1464 of yacc.c */
#line 7521 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_COMMIT;
n->options = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1118:
/* Line 1464 of yacc.c */
#line 7528 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_COMMIT;
n->options = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1119:
/* Line 1464 of yacc.c */
#line 7535 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_ROLLBACK;
n->options = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1120:
/* Line 1464 of yacc.c */
#line 7542 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_SAVEPOINT;
n->options = list_make1(makeDefElem("savepoint_name",
(Node *)makeString((yyvsp[(2) - (2)].str))));
(yyval.node) = (Node *)n;
}
break;
case 1121:
/* Line 1464 of yacc.c */
#line 7550 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_RELEASE;
n->options = list_make1(makeDefElem("savepoint_name",
(Node *)makeString((yyvsp[(3) - (3)].str))));
(yyval.node) = (Node *)n;
}
break;
case 1122:
/* Line 1464 of yacc.c */
#line 7558 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_RELEASE;
n->options = list_make1(makeDefElem("savepoint_name",
(Node *)makeString((yyvsp[(2) - (2)].str))));
(yyval.node) = (Node *)n;
}
break;
case 1123:
/* Line 1464 of yacc.c */
#line 7566 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_ROLLBACK_TO;
n->options = list_make1(makeDefElem("savepoint_name",
(Node *)makeString((yyvsp[(5) - (5)].str))));
(yyval.node) = (Node *)n;
}
break;
case 1124:
/* Line 1464 of yacc.c */
#line 7574 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_ROLLBACK_TO;
n->options = list_make1(makeDefElem("savepoint_name",
(Node *)makeString((yyvsp[(4) - (4)].str))));
(yyval.node) = (Node *)n;
}
break;
case 1125:
/* Line 1464 of yacc.c */
#line 7582 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_PREPARE;
n->gid = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 1126:
/* Line 1464 of yacc.c */
#line 7589 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_COMMIT_PREPARED;
n->gid = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 1127:
/* Line 1464 of yacc.c */
#line 7596 "gram.y"
{
TransactionStmt *n = makeNode(TransactionStmt);
n->kind = TRANS_STMT_ROLLBACK_PREPARED;
n->gid = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *)n;
}
break;
case 1128:
/* Line 1464 of yacc.c */
#line 7604 "gram.y"
{}
break;
case 1129:
/* Line 1464 of yacc.c */
#line 7605 "gram.y"
{}
break;
case 1130:
/* Line 1464 of yacc.c */
#line 7606 "gram.y"
{}
break;
case 1131:
/* Line 1464 of yacc.c */
#line 7611 "gram.y"
{ (yyval.defelt) = makeDefElem("transaction_isolation",
makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); }
break;
case 1132:
/* Line 1464 of yacc.c */
#line 7614 "gram.y"
{ (yyval.defelt) = makeDefElem("transaction_read_only",
makeIntConst(TRUE, (yylsp[(1) - (2)]))); }
break;
case 1133:
/* Line 1464 of yacc.c */
#line 7617 "gram.y"
{ (yyval.defelt) = makeDefElem("transaction_read_only",
makeIntConst(FALSE, (yylsp[(1) - (2)]))); }
break;
case 1134:
/* Line 1464 of yacc.c */
#line 7620 "gram.y"
{ (yyval.defelt) = makeDefElem("transaction_deferrable",
makeIntConst(TRUE, (yylsp[(1) - (1)]))); }
break;
case 1135:
/* Line 1464 of yacc.c */
#line 7623 "gram.y"
{ (yyval.defelt) = makeDefElem("transaction_deferrable",
makeIntConst(FALSE, (yylsp[(1) - (2)]))); }
break;
case 1136:
/* Line 1464 of yacc.c */
#line 7630 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); }
break;
case 1137:
/* Line 1464 of yacc.c */
#line 7632 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); }
break;
case 1138:
/* Line 1464 of yacc.c */
#line 7634 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 1140:
/* Line 1464 of yacc.c */
#line 7640 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1141:
/* Line 1464 of yacc.c */
#line 7654 "gram.y"
{
ViewStmt *n = makeNode(ViewStmt);
n->view = (yyvsp[(4) - (9)].range);
n->view->relpersistence = (yyvsp[(2) - (9)].ival);
n->aliases = (yyvsp[(5) - (9)].list);
n->query = (yyvsp[(8) - (9)].node);
n->replace = false;
n->options = (yyvsp[(6) - (9)].list);
(yyval.node) = (Node *) n;
}
break;
case 1142:
/* Line 1464 of yacc.c */
#line 7666 "gram.y"
{
ViewStmt *n = makeNode(ViewStmt);
n->view = (yyvsp[(6) - (11)].range);
n->view->relpersistence = (yyvsp[(4) - (11)].ival);
n->aliases = (yyvsp[(7) - (11)].list);
n->query = (yyvsp[(10) - (11)].node);
n->replace = true;
n->options = (yyvsp[(8) - (11)].list);
(yyval.node) = (Node *) n;
}
break;
case 1143:
/* Line 1464 of yacc.c */
#line 7680 "gram.y"
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("WITH CHECK OPTION is not implemented")));
}
break;
case 1144:
/* Line 1464 of yacc.c */
#line 7686 "gram.y"
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("WITH CHECK OPTION is not implemented")));
}
break;
case 1145:
/* Line 1464 of yacc.c */
#line 7692 "gram.y"
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("WITH CHECK OPTION is not implemented")));
}
break;
case 1146:
/* Line 1464 of yacc.c */
#line 7697 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1147:
/* Line 1464 of yacc.c */
#line 7708 "gram.y"
{
LoadStmt *n = makeNode(LoadStmt);
n->filename = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *)n;
}
break;
case 1148:
/* Line 1464 of yacc.c */
#line 7724 "gram.y"
{
CreatedbStmt *n = makeNode(CreatedbStmt);
n->dbname = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 1149:
/* Line 1464 of yacc.c */
#line 7733 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 1150:
/* Line 1464 of yacc.c */
#line 7734 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1151:
/* Line 1464 of yacc.c */
#line 7739 "gram.y"
{
(yyval.defelt) = makeDefElem("tablespace", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1152:
/* Line 1464 of yacc.c */
#line 7743 "gram.y"
{
(yyval.defelt) = makeDefElem("tablespace", NULL);
}
break;
case 1153:
/* Line 1464 of yacc.c */
#line 7747 "gram.y"
{
(yyval.defelt) = makeDefElem("location", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1154:
/* Line 1464 of yacc.c */
#line 7751 "gram.y"
{
(yyval.defelt) = makeDefElem("location", NULL);
}
break;
case 1155:
/* Line 1464 of yacc.c */
#line 7755 "gram.y"
{
(yyval.defelt) = makeDefElem("template", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1156:
/* Line 1464 of yacc.c */
#line 7759 "gram.y"
{
(yyval.defelt) = makeDefElem("template", NULL);
}
break;
case 1157:
/* Line 1464 of yacc.c */
#line 7763 "gram.y"
{
(yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1158:
/* Line 1464 of yacc.c */
#line 7767 "gram.y"
{
(yyval.defelt) = makeDefElem("encoding", (Node *)makeInteger((yyvsp[(3) - (3)].ival)));
}
break;
case 1159:
/* Line 1464 of yacc.c */
#line 7771 "gram.y"
{
(yyval.defelt) = makeDefElem("encoding", NULL);
}
break;
case 1160:
/* Line 1464 of yacc.c */
#line 7775 "gram.y"
{
(yyval.defelt) = makeDefElem("lc_collate", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1161:
/* Line 1464 of yacc.c */
#line 7779 "gram.y"
{
(yyval.defelt) = makeDefElem("lc_collate", NULL);
}
break;
case 1162:
/* Line 1464 of yacc.c */
#line 7783 "gram.y"
{
(yyval.defelt) = makeDefElem("lc_ctype", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1163:
/* Line 1464 of yacc.c */
#line 7787 "gram.y"
{
(yyval.defelt) = makeDefElem("lc_ctype", NULL);
}
break;
case 1164:
/* Line 1464 of yacc.c */
#line 7791 "gram.y"
{
(yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(4) - (4)].ival)));
}
break;
case 1165:
/* Line 1464 of yacc.c */
#line 7795 "gram.y"
{
(yyval.defelt) = makeDefElem("owner", (Node *)makeString((yyvsp[(3) - (3)].str)));
}
break;
case 1166:
/* Line 1464 of yacc.c */
#line 7799 "gram.y"
{
(yyval.defelt) = makeDefElem("owner", NULL);
}
break;
case 1167:
/* Line 1464 of yacc.c */
#line 7808 "gram.y"
{}
break;
case 1168:
/* Line 1464 of yacc.c */
#line 7809 "gram.y"
{}
break;
case 1169:
/* Line 1464 of yacc.c */
#line 7821 "gram.y"
{
AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
n->dbname = (yyvsp[(3) - (5)].str);
n->options = (yyvsp[(5) - (5)].list);
(yyval.node) = (Node *)n;
}
break;
case 1170:
/* Line 1464 of yacc.c */
#line 7828 "gram.y"
{
AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
n->dbname = (yyvsp[(3) - (6)].str);
n->options = list_make1(makeDefElem("tablespace",
(Node *)makeString((yyvsp[(6) - (6)].str))));
(yyval.node) = (Node *)n;
}
break;
case 1171:
/* Line 1464 of yacc.c */
#line 7839 "gram.y"
{
AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
n->dbname = (yyvsp[(3) - (4)].str);
n->setstmt = (yyvsp[(4) - (4)].vsetstmt);
(yyval.node) = (Node *)n;
}
break;
case 1172:
/* Line 1464 of yacc.c */
#line 7849 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); }
break;
case 1173:
/* Line 1464 of yacc.c */
#line 7850 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1174:
/* Line 1464 of yacc.c */
#line 7855 "gram.y"
{
(yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(4) - (4)].ival)));
}
break;
case 1175:
/* Line 1464 of yacc.c */
#line 7869 "gram.y"
{
DropdbStmt *n = makeNode(DropdbStmt);
n->dbname = (yyvsp[(3) - (3)].str);
n->missing_ok = FALSE;
(yyval.node) = (Node *)n;
}
break;
case 1176:
/* Line 1464 of yacc.c */
#line 7876 "gram.y"
{
DropdbStmt *n = makeNode(DropdbStmt);
n->dbname = (yyvsp[(5) - (5)].str);
n->missing_ok = TRUE;
(yyval.node) = (Node *)n;
}
break;
case 1177:
/* Line 1464 of yacc.c */
#line 7893 "gram.y"
{
CreateDomainStmt *n = makeNode(CreateDomainStmt);
n->domainname = (yyvsp[(3) - (6)].list);
n->typeName = (yyvsp[(5) - (6)].typnam);
SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause,
yyscanner);
(yyval.node) = (Node *)n;
}
break;
case 1178:
/* Line 1464 of yacc.c */
#line 7906 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'T';
n->typeName = (yyvsp[(3) - (4)].list);
n->def = (yyvsp[(4) - (4)].node);
(yyval.node) = (Node *)n;
}
break;
case 1179:
/* Line 1464 of yacc.c */
#line 7915 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'N';
n->typeName = (yyvsp[(3) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 1180:
/* Line 1464 of yacc.c */
#line 7923 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'O';
n->typeName = (yyvsp[(3) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 1181:
/* Line 1464 of yacc.c */
#line 7931 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'C';
n->typeName = (yyvsp[(3) - (5)].list);
n->def = (yyvsp[(5) - (5)].node);
(yyval.node) = (Node *)n;
}
break;
case 1182:
/* Line 1464 of yacc.c */
#line 7940 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'X';
n->typeName = (yyvsp[(3) - (7)].list);
n->name = (yyvsp[(6) - (7)].str);
n->behavior = (yyvsp[(7) - (7)].dbehavior);
n->missing_ok = false;
(yyval.node) = (Node *)n;
}
break;
case 1183:
/* Line 1464 of yacc.c */
#line 7951 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'X';
n->typeName = (yyvsp[(3) - (9)].list);
n->name = (yyvsp[(8) - (9)].str);
n->behavior = (yyvsp[(9) - (9)].dbehavior);
n->missing_ok = true;
(yyval.node) = (Node *)n;
}
break;
case 1184:
/* Line 1464 of yacc.c */
#line 7962 "gram.y"
{
AlterDomainStmt *n = makeNode(AlterDomainStmt);
n->subtype = 'V';
n->typeName = (yyvsp[(3) - (6)].list);
n->name = (yyvsp[(6) - (6)].str);
(yyval.node) = (Node *)n;
}
break;
case 1185:
/* Line 1464 of yacc.c */
#line 7971 "gram.y"
{}
break;
case 1186:
/* Line 1464 of yacc.c */
#line 7972 "gram.y"
{}
break;
case 1187:
/* Line 1464 of yacc.c */
#line 7984 "gram.y"
{
AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt);
n->dictname = (yyvsp[(5) - (6)].list);
n->options = (yyvsp[(6) - (6)].list);
(yyval.node) = (Node *)n;
}
break;
case 1188:
/* Line 1464 of yacc.c */
#line 7994 "gram.y"
{
AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
n->cfgname = (yyvsp[(5) - (11)].list);
n->tokentype = (yyvsp[(9) - (11)].list);
n->dicts = (yyvsp[(11) - (11)].list);
n->override = false;
n->replace = false;
(yyval.node) = (Node*)n;
}
break;
case 1189:
/* Line 1464 of yacc.c */
#line 8004 "gram.y"
{
AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
n->cfgname = (yyvsp[(5) - (11)].list);
n->tokentype = (yyvsp[(9) - (11)].list);
n->dicts = (yyvsp[(11) - (11)].list);
n->override = true;
n->replace = false;
(yyval.node) = (Node*)n;
}
break;
case 1190:
/* Line 1464 of yacc.c */
#line 8014 "gram.y"
{
AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
n->cfgname = (yyvsp[(5) - (11)].list);
n->tokentype = NIL;
n->dicts = list_make2((yyvsp[(9) - (11)].list),(yyvsp[(11) - (11)].list));
n->override = false;
n->replace = true;
(yyval.node) = (Node*)n;
}
break;
case 1191:
/* Line 1464 of yacc.c */
#line 8024 "gram.y"
{
AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
n->cfgname = (yyvsp[(5) - (13)].list);
n->tokentype = (yyvsp[(9) - (13)].list);
n->dicts = list_make2((yyvsp[(11) - (13)].list),(yyvsp[(13) - (13)].list));
n->override = false;
n->replace = true;
(yyval.node) = (Node*)n;
}
break;
case 1192:
/* Line 1464 of yacc.c */
#line 8034 "gram.y"
{
AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
n->cfgname = (yyvsp[(5) - (9)].list);
n->tokentype = (yyvsp[(9) - (9)].list);
n->missing_ok = false;
(yyval.node) = (Node*)n;
}
break;
case 1193:
/* Line 1464 of yacc.c */
#line 8042 "gram.y"
{
AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
n->cfgname = (yyvsp[(5) - (11)].list);
n->tokentype = (yyvsp[(11) - (11)].list);
n->missing_ok = true;
(yyval.node) = (Node*)n;
}
break;
case 1194:
/* Line 1464 of yacc.c */
#line 8064 "gram.y"
{
CreateConversionStmt *n = makeNode(CreateConversionStmt);
n->conversion_name = (yyvsp[(4) - (10)].list);
n->for_encoding_name = (yyvsp[(6) - (10)].str);
n->to_encoding_name = (yyvsp[(8) - (10)].str);
n->func_name = (yyvsp[(10) - (10)].list);
n->def = (yyvsp[(2) - (10)].boolean);
(yyval.node) = (Node *)n;
}
break;
case 1195:
/* Line 1464 of yacc.c */
#line 8086 "gram.y"
{
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = (yyvsp[(3) - (4)].range);
n->indexname = (yyvsp[(4) - (4)].str);
n->verbose = (yyvsp[(2) - (4)].boolean);
(yyval.node) = (Node*)n;
}
break;
case 1196:
/* Line 1464 of yacc.c */
#line 8094 "gram.y"
{
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = NULL;
n->indexname = NULL;
n->verbose = (yyvsp[(2) - (2)].boolean);
(yyval.node) = (Node*)n;
}
break;
case 1197:
/* Line 1464 of yacc.c */
#line 8103 "gram.y"
{
ClusterStmt *n = makeNode(ClusterStmt);
n->relation = (yyvsp[(5) - (5)].range);
n->indexname = (yyvsp[(3) - (5)].str);
n->verbose = (yyvsp[(2) - (5)].boolean);
(yyval.node) = (Node*)n;
}
break;
case 1198:
/* Line 1464 of yacc.c */
#line 8113 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); }
break;
case 1199:
/* Line 1464 of yacc.c */
#line 8114 "gram.y"
{ (yyval.str) = NULL; }
break;
case 1200:
/* Line 1464 of yacc.c */
#line 8127 "gram.y"
{
VacuumStmt *n = makeNode(VacuumStmt);
n->options = VACOPT_VACUUM;
if ((yyvsp[(2) - (4)].boolean))
n->options |= VACOPT_FULL;
if ((yyvsp[(4) - (4)].boolean))
n->options |= VACOPT_VERBOSE;
n->freeze_min_age = (yyvsp[(3) - (4)].boolean) ? 0 : -1;
n->freeze_table_age = (yyvsp[(3) - (4)].boolean) ? 0 : -1;
n->relation = NULL;
n->va_cols = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1201:
/* Line 1464 of yacc.c */
#line 8141 "gram.y"
{
VacuumStmt *n = makeNode(VacuumStmt);
n->options = VACOPT_VACUUM;
if ((yyvsp[(2) - (5)].boolean))
n->options |= VACOPT_FULL;
if ((yyvsp[(4) - (5)].boolean))
n->options |= VACOPT_VERBOSE;
n->freeze_min_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
n->freeze_table_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
n->relation = (yyvsp[(5) - (5)].range);
n->va_cols = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1202:
/* Line 1464 of yacc.c */
#line 8155 "gram.y"
{
VacuumStmt *n = (VacuumStmt *) (yyvsp[(5) - (5)].node);
n->options |= VACOPT_VACUUM;
if ((yyvsp[(2) - (5)].boolean))
n->options |= VACOPT_FULL;
if ((yyvsp[(4) - (5)].boolean))
n->options |= VACOPT_VERBOSE;
n->freeze_min_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
n->freeze_table_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
(yyval.node) = (Node *)n;
}
break;
case 1203:
/* Line 1464 of yacc.c */
#line 8167 "gram.y"
{
VacuumStmt *n = makeNode(VacuumStmt);
n->options = VACOPT_VACUUM | (yyvsp[(3) - (4)].ival);
if (n->options & VACOPT_FREEZE)
n->freeze_min_age = n->freeze_table_age = 0;
else
n->freeze_min_age = n->freeze_table_age = -1;
n->relation = NULL;
n->va_cols = NIL;
(yyval.node) = (Node *) n;
}
break;
case 1204:
/* Line 1464 of yacc.c */
#line 8179 "gram.y"
{
VacuumStmt *n = makeNode(VacuumStmt);
n->options = VACOPT_VACUUM | (yyvsp[(3) - (6)].ival);
if (n->options & VACOPT_FREEZE)
n->freeze_min_age = n->freeze_table_age = 0;
else
n->freeze_min_age = n->freeze_table_age = -1;
n->relation = (yyvsp[(5) - (6)].range);
n->va_cols = (yyvsp[(6) - (6)].list);
if (n->va_cols != NIL) /* implies analyze */
n->options |= VACOPT_ANALYZE;
(yyval.node) = (Node *) n;
}
break;
case 1205:
/* Line 1464 of yacc.c */
#line 8195 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (1)].ival); }
break;
case 1206:
/* Line 1464 of yacc.c */
#line 8196 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); }
break;
case 1207:
/* Line 1464 of yacc.c */
#line 8200 "gram.y"
{ (yyval.ival) = VACOPT_ANALYZE; }
break;
case 1208:
/* Line 1464 of yacc.c */
#line 8201 "gram.y"
{ (yyval.ival) = VACOPT_VERBOSE; }
break;
case 1209:
/* Line 1464 of yacc.c */
#line 8202 "gram.y"
{ (yyval.ival) = VACOPT_FREEZE; }
break;
case 1210:
/* Line 1464 of yacc.c */
#line 8203 "gram.y"
{ (yyval.ival) = VACOPT_FULL; }
break;
case 1211:
/* Line 1464 of yacc.c */
#line 8208 "gram.y"
{
VacuumStmt *n = makeNode(VacuumStmt);
n->options = VACOPT_ANALYZE;
if ((yyvsp[(2) - (2)].boolean))
n->options |= VACOPT_VERBOSE;
n->freeze_min_age = -1;
n->freeze_table_age = -1;
n->relation = NULL;
n->va_cols = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1212:
/* Line 1464 of yacc.c */
#line 8220 "gram.y"
{
VacuumStmt *n = makeNode(VacuumStmt);
n->options = VACOPT_ANALYZE;
if ((yyvsp[(2) - (4)].boolean))
n->options |= VACOPT_VERBOSE;
n->freeze_min_age = -1;
n->freeze_table_age = -1;
n->relation = (yyvsp[(3) - (4)].range);
n->va_cols = (yyvsp[(4) - (4)].list);
(yyval.node) = (Node *)n;
}
break;
case 1213:
/* Line 1464 of yacc.c */
#line 8234 "gram.y"
{}
break;
case 1214:
/* Line 1464 of yacc.c */
#line 8235 "gram.y"
{}
break;
case 1215:
/* Line 1464 of yacc.c */
#line 8239 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1216:
/* Line 1464 of yacc.c */
#line 8240 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1217:
/* Line 1464 of yacc.c */
#line 8243 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1218:
/* Line 1464 of yacc.c */
#line 8244 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1219:
/* Line 1464 of yacc.c */
#line 8247 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1220:
/* Line 1464 of yacc.c */
#line 8248 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1221:
/* Line 1464 of yacc.c */
#line 8252 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 1222:
/* Line 1464 of yacc.c */
#line 8253 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1223:
/* Line 1464 of yacc.c */
#line 8267 "gram.y"
{
ExplainStmt *n = makeNode(ExplainStmt);
n->query = (yyvsp[(2) - (2)].node);
n->options = NIL;
(yyval.node) = (Node *) n;
}
break;
case 1224:
/* Line 1464 of yacc.c */
#line 8274 "gram.y"
{
ExplainStmt *n = makeNode(ExplainStmt);
n->query = (yyvsp[(4) - (4)].node);
n->options = list_make1(makeDefElem("analyze", NULL));
if ((yyvsp[(3) - (4)].boolean))
n->options = lappend(n->options,
makeDefElem("verbose", NULL));
(yyval.node) = (Node *) n;
}
break;
case 1225:
/* Line 1464 of yacc.c */
#line 8284 "gram.y"
{
ExplainStmt *n = makeNode(ExplainStmt);
n->query = (yyvsp[(3) - (3)].node);
n->options = list_make1(makeDefElem("verbose", NULL));
(yyval.node) = (Node *) n;
}
break;
case 1226:
/* Line 1464 of yacc.c */
#line 8291 "gram.y"
{
ExplainStmt *n = makeNode(ExplainStmt);
n->query = (yyvsp[(5) - (5)].node);
n->options = (yyvsp[(3) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 1234:
/* Line 1464 of yacc.c */
#line 8311 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
}
break;
case 1235:
/* Line 1464 of yacc.c */
#line 8315 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
}
break;
case 1236:
/* Line 1464 of yacc.c */
#line 8322 "gram.y"
{
(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node));
}
break;
case 1237:
/* Line 1464 of yacc.c */
#line 8328 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1238:
/* Line 1464 of yacc.c */
#line 8329 "gram.y"
{ (yyval.str) = "analyze"; }
break;
case 1239:
/* Line 1464 of yacc.c */
#line 8330 "gram.y"
{ (yyval.str) = "verbose"; }
break;
case 1240:
/* Line 1464 of yacc.c */
#line 8334 "gram.y"
{ (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); }
break;
case 1241:
/* Line 1464 of yacc.c */
#line 8335 "gram.y"
{ (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); }
break;
case 1242:
/* Line 1464 of yacc.c */
#line 8336 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1243:
/* Line 1464 of yacc.c */
#line 8347 "gram.y"
{
PrepareStmt *n = makeNode(PrepareStmt);
n->name = (yyvsp[(2) - (5)].str);
n->argtypes = (yyvsp[(3) - (5)].list);
n->query = (yyvsp[(5) - (5)].node);
(yyval.node) = (Node *) n;
}
break;
case 1244:
/* Line 1464 of yacc.c */
#line 8356 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 1245:
/* Line 1464 of yacc.c */
#line 8357 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1250:
/* Line 1464 of yacc.c */
#line 8375 "gram.y"
{
ExecuteStmt *n = makeNode(ExecuteStmt);
n->name = (yyvsp[(2) - (3)].str);
n->params = (yyvsp[(3) - (3)].list);
(yyval.node) = (Node *) n;
}
break;
case 1251:
/* Line 1464 of yacc.c */
#line 8383 "gram.y"
{
CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
ExecuteStmt *n = makeNode(ExecuteStmt);
n->name = (yyvsp[(7) - (9)].str);
n->params = (yyvsp[(8) - (9)].list);
ctas->query = (Node *) n;
ctas->into = (yyvsp[(4) - (9)].into);
ctas->is_select_into = false;
/* cram additional flags into the IntoClause */
(yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival);
(yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
(yyval.node) = (Node *) ctas;
}
break;
case 1252:
/* Line 1464 of yacc.c */
#line 8398 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 1253:
/* Line 1464 of yacc.c */
#line 8399 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1254:
/* Line 1464 of yacc.c */
#line 8410 "gram.y"
{
DeallocateStmt *n = makeNode(DeallocateStmt);
n->name = (yyvsp[(2) - (2)].str);
(yyval.node) = (Node *) n;
}
break;
case 1255:
/* Line 1464 of yacc.c */
#line 8416 "gram.y"
{
DeallocateStmt *n = makeNode(DeallocateStmt);
n->name = (yyvsp[(3) - (3)].str);
(yyval.node) = (Node *) n;
}
break;
case 1256:
/* Line 1464 of yacc.c */
#line 8422 "gram.y"
{
DeallocateStmt *n = makeNode(DeallocateStmt);
n->name = NULL;
(yyval.node) = (Node *) n;
}
break;
case 1257:
/* Line 1464 of yacc.c */
#line 8428 "gram.y"
{
DeallocateStmt *n = makeNode(DeallocateStmt);
n->name = NULL;
(yyval.node) = (Node *) n;
}
break;
case 1258:
/* Line 1464 of yacc.c */
#line 8444 "gram.y"
{
(yyvsp[(5) - (6)].istmt)->relation = (yyvsp[(4) - (6)].range);
(yyvsp[(5) - (6)].istmt)->returningList = (yyvsp[(6) - (6)].list);
(yyvsp[(5) - (6)].istmt)->withClause = (yyvsp[(1) - (6)].with);
(yyval.node) = (Node *) (yyvsp[(5) - (6)].istmt);
}
break;
case 1259:
/* Line 1464 of yacc.c */
#line 8454 "gram.y"
{
(yyval.istmt) = makeNode(InsertStmt);
(yyval.istmt)->cols = NIL;
(yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node);
}
break;
case 1260:
/* Line 1464 of yacc.c */
#line 8460 "gram.y"
{
(yyval.istmt) = makeNode(InsertStmt);
(yyval.istmt)->cols = (yyvsp[(2) - (4)].list);
(yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
}
break;
case 1261:
/* Line 1464 of yacc.c */
#line 8466 "gram.y"
{
(yyval.istmt) = makeNode(InsertStmt);
(yyval.istmt)->cols = NIL;
(yyval.istmt)->selectStmt = NULL;
}
break;
case 1262:
/* Line 1464 of yacc.c */
#line 8475 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); }
break;
case 1263:
/* Line 1464 of yacc.c */
#line 8477 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); }
break;
case 1264:
/* Line 1464 of yacc.c */
#line 8482 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = (yyvsp[(1) - (2)].str);
(yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
(yyval.target)->val = NULL;
(yyval.target)->location = (yylsp[(1) - (2)]);
}
break;
case 1265:
/* Line 1464 of yacc.c */
#line 8492 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 1266:
/* Line 1464 of yacc.c */
#line 8493 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1267:
/* Line 1464 of yacc.c */
#line 8506 "gram.y"
{
DeleteStmt *n = makeNode(DeleteStmt);
n->relation = (yyvsp[(4) - (7)].range);
n->usingClause = (yyvsp[(5) - (7)].list);
n->whereClause = (yyvsp[(6) - (7)].node);
n->returningList = (yyvsp[(7) - (7)].list);
n->withClause = (yyvsp[(1) - (7)].with);
(yyval.node) = (Node *)n;
}
break;
case 1268:
/* Line 1464 of yacc.c */
#line 8518 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 1269:
/* Line 1464 of yacc.c */
#line 8519 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1270:
/* Line 1464 of yacc.c */
#line 8531 "gram.y"
{
LockStmt *n = makeNode(LockStmt);
n->relations = (yyvsp[(3) - (5)].list);
n->mode = (yyvsp[(4) - (5)].ival);
n->nowait = (yyvsp[(5) - (5)].boolean);
(yyval.node) = (Node *)n;
}
break;
case 1271:
/* Line 1464 of yacc.c */
#line 8541 "gram.y"
{ (yyval.ival) = (yyvsp[(2) - (3)].ival); }
break;
case 1272:
/* Line 1464 of yacc.c */
#line 8542 "gram.y"
{ (yyval.ival) = AccessExclusiveLock; }
break;
case 1273:
/* Line 1464 of yacc.c */
#line 8545 "gram.y"
{ (yyval.ival) = AccessShareLock; }
break;
case 1274:
/* Line 1464 of yacc.c */
#line 8546 "gram.y"
{ (yyval.ival) = RowShareLock; }
break;
case 1275:
/* Line 1464 of yacc.c */
#line 8547 "gram.y"
{ (yyval.ival) = RowExclusiveLock; }
break;
case 1276:
/* Line 1464 of yacc.c */
#line 8548 "gram.y"
{ (yyval.ival) = ShareUpdateExclusiveLock; }
break;
case 1277:
/* Line 1464 of yacc.c */
#line 8549 "gram.y"
{ (yyval.ival) = ShareLock; }
break;
case 1278:
/* Line 1464 of yacc.c */
#line 8550 "gram.y"
{ (yyval.ival) = ShareRowExclusiveLock; }
break;
case 1279:
/* Line 1464 of yacc.c */
#line 8551 "gram.y"
{ (yyval.ival) = ExclusiveLock; }
break;
case 1280:
/* Line 1464 of yacc.c */
#line 8552 "gram.y"
{ (yyval.ival) = AccessExclusiveLock; }
break;
case 1281:
/* Line 1464 of yacc.c */
#line 8555 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1282:
/* Line 1464 of yacc.c */
#line 8556 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1283:
/* Line 1464 of yacc.c */
#line 8572 "gram.y"
{
UpdateStmt *n = makeNode(UpdateStmt);
n->relation = (yyvsp[(3) - (8)].range);
n->targetList = (yyvsp[(5) - (8)].list);
n->fromClause = (yyvsp[(6) - (8)].list);
n->whereClause = (yyvsp[(7) - (8)].node);
n->returningList = (yyvsp[(8) - (8)].list);
n->withClause = (yyvsp[(1) - (8)].with);
(yyval.node) = (Node *)n;
}
break;
case 1284:
/* Line 1464 of yacc.c */
#line 8585 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1285:
/* Line 1464 of yacc.c */
#line 8586 "gram.y"
{ (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); }
break;
case 1286:
/* Line 1464 of yacc.c */
#line 8590 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); }
break;
case 1287:
/* Line 1464 of yacc.c */
#line 8591 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1288:
/* Line 1464 of yacc.c */
#line 8596 "gram.y"
{
(yyval.target) = (yyvsp[(1) - (3)].target);
(yyval.target)->val = (Node *) (yyvsp[(3) - (3)].node);
}
break;
case 1289:
/* Line 1464 of yacc.c */
#line 8604 "gram.y"
{
ListCell *col_cell;
ListCell *val_cell;
/*
* Break the ctext_row apart, merge individual expressions
* into the destination ResTargets. XXX this approach
* cannot work for general row expressions as sources.
*/
if (list_length((yyvsp[(2) - (5)].list)) != list_length((yyvsp[(5) - (5)].list)))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("number of columns does not match number of values"),
parser_errposition((yylsp[(1) - (5)]))));
forboth(col_cell, (yyvsp[(2) - (5)].list), val_cell, (yyvsp[(5) - (5)].list))
{
ResTarget *res_col = (ResTarget *) lfirst(col_cell);
Node *res_val = (Node *) lfirst(val_cell);
res_col->val = res_val;
}
(yyval.list) = (yyvsp[(2) - (5)].list);
}
break;
case 1290:
/* Line 1464 of yacc.c */
#line 8632 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = (yyvsp[(1) - (2)].str);
(yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
(yyval.target)->val = NULL; /* upper production sets this */
(yyval.target)->location = (yylsp[(1) - (2)]);
}
break;
case 1291:
/* Line 1464 of yacc.c */
#line 8642 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); }
break;
case 1292:
/* Line 1464 of yacc.c */
#line 8643 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); }
break;
case 1293:
/* Line 1464 of yacc.c */
#line 8654 "gram.y"
{
DeclareCursorStmt *n = makeNode(DeclareCursorStmt);
n->portalname = (yyvsp[(2) - (7)].str);
/* currently we always set FAST_PLAN option */
n->options = (yyvsp[(3) - (7)].ival) | (yyvsp[(5) - (7)].ival) | CURSOR_OPT_FAST_PLAN;
n->query = (yyvsp[(7) - (7)].node);
(yyval.node) = (Node *)n;
}
break;
case 1294:
/* Line 1464 of yacc.c */
#line 8664 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1295:
/* Line 1464 of yacc.c */
#line 8667 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1296:
/* Line 1464 of yacc.c */
#line 8668 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; }
break;
case 1297:
/* Line 1464 of yacc.c */
#line 8669 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; }
break;
case 1298:
/* Line 1464 of yacc.c */
#line 8670 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; }
break;
case 1299:
/* Line 1464 of yacc.c */
#line 8671 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; }
break;
case 1300:
/* Line 1464 of yacc.c */
#line 8674 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1301:
/* Line 1464 of yacc.c */
#line 8675 "gram.y"
{ (yyval.ival) = CURSOR_OPT_HOLD; }
break;
case 1302:
/* Line 1464 of yacc.c */
#line 8676 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1305:
/* Line 1464 of yacc.c */
#line 8729 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (3)].node); }
break;
case 1306:
/* Line 1464 of yacc.c */
#line 8730 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (3)].node); }
break;
case 1307:
/* Line 1464 of yacc.c */
#line 8744 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1308:
/* Line 1464 of yacc.c */
#line 8746 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL,
NULL, NULL, NULL,
yyscanner);
(yyval.node) = (yyvsp[(1) - (2)].node);
}
break;
case 1309:
/* Line 1464 of yacc.c */
#line 8753 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list),
list_nth((yyvsp[(4) - (4)].list), 0), list_nth((yyvsp[(4) - (4)].list), 1),
NULL,
yyscanner);
(yyval.node) = (yyvsp[(1) - (4)].node);
}
break;
case 1310:
/* Line 1464 of yacc.c */
#line 8761 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list),
list_nth((yyvsp[(3) - (4)].list), 0), list_nth((yyvsp[(3) - (4)].list), 1),
NULL,
yyscanner);
(yyval.node) = (yyvsp[(1) - (4)].node);
}
break;
case 1311:
/* Line 1464 of yacc.c */
#line 8769 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL,
NULL, NULL,
(yyvsp[(1) - (2)].with),
yyscanner);
(yyval.node) = (yyvsp[(2) - (2)].node);
}
break;
case 1312:
/* Line 1464 of yacc.c */
#line 8777 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL,
NULL, NULL,
(yyvsp[(1) - (3)].with),
yyscanner);
(yyval.node) = (yyvsp[(2) - (3)].node);
}
break;
case 1313:
/* Line 1464 of yacc.c */
#line 8785 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list),
list_nth((yyvsp[(5) - (5)].list), 0), list_nth((yyvsp[(5) - (5)].list), 1),
(yyvsp[(1) - (5)].with),
yyscanner);
(yyval.node) = (yyvsp[(2) - (5)].node);
}
break;
case 1314:
/* Line 1464 of yacc.c */
#line 8793 "gram.y"
{
insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list),
list_nth((yyvsp[(4) - (5)].list), 0), list_nth((yyvsp[(4) - (5)].list), 1),
(yyvsp[(1) - (5)].with),
yyscanner);
(yyval.node) = (yyvsp[(2) - (5)].node);
}
break;
case 1315:
/* Line 1464 of yacc.c */
#line 8803 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1316:
/* Line 1464 of yacc.c */
#line 8804 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1317:
/* Line 1464 of yacc.c */
#line 8834 "gram.y"
{
SelectStmt *n = makeNode(SelectStmt);
n->distinctClause = (yyvsp[(2) - (9)].list);
n->targetList = (yyvsp[(3) - (9)].list);
n->intoClause = (yyvsp[(4) - (9)].into);
n->fromClause = (yyvsp[(5) - (9)].list);
n->whereClause = (yyvsp[(6) - (9)].node);
n->groupClause = (yyvsp[(7) - (9)].list);
n->havingClause = (yyvsp[(8) - (9)].node);
n->windowClause = (yyvsp[(9) - (9)].list);
(yyval.node) = (Node *)n;
}
break;
case 1318:
/* Line 1464 of yacc.c */
#line 8846 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1319:
/* Line 1464 of yacc.c */
#line 8848 "gram.y"
{
/* 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[(2) - (2)].range));
(yyval.node) = (Node *)n;
}
break;
case 1320:
/* Line 1464 of yacc.c */
#line 8867 "gram.y"
{
(yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
}
break;
case 1321:
/* Line 1464 of yacc.c */
#line 8871 "gram.y"
{
(yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
}
break;
case 1322:
/* Line 1464 of yacc.c */
#line 8875 "gram.y"
{
(yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
}
break;
case 1323:
/* Line 1464 of yacc.c */
#line 8890 "gram.y"
{
(yyval.with) = makeNode(WithClause);
(yyval.with)->ctes = (yyvsp[(2) - (2)].list);
(yyval.with)->recursive = false;
(yyval.with)->location = (yylsp[(1) - (2)]);
}
break;
case 1324:
/* Line 1464 of yacc.c */
#line 8897 "gram.y"
{
(yyval.with) = makeNode(WithClause);
(yyval.with)->ctes = (yyvsp[(3) - (3)].list);
(yyval.with)->recursive = true;
(yyval.with)->location = (yylsp[(1) - (3)]);
}
break;
case 1325:
/* Line 1464 of yacc.c */
#line 8906 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1326:
/* Line 1464 of yacc.c */
#line 8907 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 1327:
/* Line 1464 of yacc.c */
#line 8911 "gram.y"
{
CommonTableExpr *n = makeNode(CommonTableExpr);
n->ctename = (yyvsp[(1) - (6)].str);
n->aliascolnames = (yyvsp[(2) - (6)].list);
n->ctequery = (yyvsp[(5) - (6)].node);
n->location = (yylsp[(1) - (6)]);
(yyval.node) = (Node *) n;
}
break;
case 1328:
/* Line 1464 of yacc.c */
#line 8922 "gram.y"
{ (yyval.with) = (yyvsp[(1) - (1)].with); }
break;
case 1329:
/* Line 1464 of yacc.c */
#line 8923 "gram.y"
{ (yyval.with) = NULL; }
break;
case 1330:
/* Line 1464 of yacc.c */
#line 8928 "gram.y"
{
(yyval.into) = makeNode(IntoClause);
(yyval.into)->rel = (yyvsp[(2) - (2)].range);
(yyval.into)->colNames = NIL;
(yyval.into)->options = NIL;
(yyval.into)->onCommit = ONCOMMIT_NOOP;
(yyval.into)->tableSpaceName = NULL;
(yyval.into)->skipData = false;
}
break;
case 1331:
/* Line 1464 of yacc.c */
#line 8938 "gram.y"
{ (yyval.into) = NULL; }
break;
case 1332:
/* Line 1464 of yacc.c */
#line 8947 "gram.y"
{
(yyval.range) = (yyvsp[(3) - (3)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
}
break;
case 1333:
/* Line 1464 of yacc.c */
#line 8952 "gram.y"
{
(yyval.range) = (yyvsp[(3) - (3)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
}
break;
case 1334:
/* Line 1464 of yacc.c */
#line 8957 "gram.y"
{
(yyval.range) = (yyvsp[(4) - (4)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
}
break;
case 1335:
/* Line 1464 of yacc.c */
#line 8962 "gram.y"
{
(yyval.range) = (yyvsp[(4) - (4)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
}
break;
case 1336:
/* Line 1464 of yacc.c */
#line 8967 "gram.y"
{
ereport(WARNING,
(errmsg("GLOBAL is deprecated in temporary table creation"),
parser_errposition((yylsp[(1) - (4)]))));
(yyval.range) = (yyvsp[(4) - (4)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
}
break;
case 1337:
/* Line 1464 of yacc.c */
#line 8975 "gram.y"
{
ereport(WARNING,
(errmsg("GLOBAL is deprecated in temporary table creation"),
parser_errposition((yylsp[(1) - (4)]))));
(yyval.range) = (yyvsp[(4) - (4)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
}
break;
case 1338:
/* Line 1464 of yacc.c */
#line 8983 "gram.y"
{
(yyval.range) = (yyvsp[(3) - (3)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED;
}
break;
case 1339:
/* Line 1464 of yacc.c */
#line 8988 "gram.y"
{
(yyval.range) = (yyvsp[(2) - (2)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
}
break;
case 1340:
/* Line 1464 of yacc.c */
#line 8993 "gram.y"
{
(yyval.range) = (yyvsp[(1) - (1)].range);
(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
}
break;
case 1341:
/* Line 1464 of yacc.c */
#line 8999 "gram.y"
{}
break;
case 1342:
/* Line 1464 of yacc.c */
#line 9000 "gram.y"
{}
break;
case 1343:
/* Line 1464 of yacc.c */
#line 9003 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1344:
/* Line 1464 of yacc.c */
#line 9004 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1345:
/* Line 1464 of yacc.c */
#line 9005 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1346:
/* Line 1464 of yacc.c */
#line 9012 "gram.y"
{ (yyval.list) = list_make1(NIL); }
break;
case 1347:
/* Line 1464 of yacc.c */
#line 9013 "gram.y"
{ (yyval.list) = (yyvsp[(4) - (5)].list); }
break;
case 1348:
/* Line 1464 of yacc.c */
#line 9014 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1349:
/* Line 1464 of yacc.c */
#line 9015 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1350:
/* Line 1464 of yacc.c */
#line 9019 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list);}
break;
case 1351:
/* Line 1464 of yacc.c */
#line 9020 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1352:
/* Line 1464 of yacc.c */
#line 9024 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (3)].list); }
break;
case 1353:
/* Line 1464 of yacc.c */
#line 9028 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); }
break;
case 1354:
/* Line 1464 of yacc.c */
#line 9029 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); }
break;
case 1355:
/* Line 1464 of yacc.c */
#line 9033 "gram.y"
{
(yyval.sortby) = makeNode(SortBy);
(yyval.sortby)->node = (yyvsp[(1) - (4)].node);
(yyval.sortby)->sortby_dir = SORTBY_USING;
(yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].ival);
(yyval.sortby)->useOp = (yyvsp[(3) - (4)].list);
(yyval.sortby)->location = (yylsp[(3) - (4)]);
}
break;
case 1356:
/* Line 1464 of yacc.c */
#line 9042 "gram.y"
{
(yyval.sortby) = makeNode(SortBy);
(yyval.sortby)->node = (yyvsp[(1) - (3)].node);
(yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].ival);
(yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].ival);
(yyval.sortby)->useOp = NIL;
(yyval.sortby)->location = -1; /* no operator */
}
break;
case 1357:
/* Line 1464 of yacc.c */
#line 9054 "gram.y"
{ (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); }
break;
case 1358:
/* Line 1464 of yacc.c */
#line 9055 "gram.y"
{ (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); }
break;
case 1359:
/* Line 1464 of yacc.c */
#line 9056 "gram.y"
{ (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); }
break;
case 1360:
/* Line 1464 of yacc.c */
#line 9057 "gram.y"
{ (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); }
break;
case 1361:
/* Line 1464 of yacc.c */
#line 9061 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1362:
/* Line 1464 of yacc.c */
#line 9062 "gram.y"
{ (yyval.list) = list_make2(NULL,NULL); }
break;
case 1363:
/* Line 1464 of yacc.c */
#line 9067 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1364:
/* Line 1464 of yacc.c */
#line 9069 "gram.y"
{
/* 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[(1) - (4)]))));
}
break;
case 1365:
/* Line 1464 of yacc.c */
#line 9079 "gram.y"
{ (yyval.node) = (yyvsp[(3) - (5)].node); }
break;
case 1366:
/* Line 1464 of yacc.c */
#line 9084 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1367:
/* Line 1464 of yacc.c */
#line 9087 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (3)].node); }
break;
case 1368:
/* Line 1464 of yacc.c */
#line 9091 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1369:
/* Line 1464 of yacc.c */
#line 9093 "gram.y"
{
/* LIMIT ALL is represented as a NULL constant */
(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
}
break;
case 1370:
/* Line 1464 of yacc.c */
#line 9100 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1371:
/* Line 1464 of yacc.c */
#line 9110 "gram.y"
{ (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); }
break;
case 1372:
/* Line 1464 of yacc.c */
#line 9111 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (3)].node); }
break;
case 1373:
/* Line 1464 of yacc.c */
#line 9112 "gram.y"
{ (yyval.node) = makeIntConst(1, -1); }
break;
case 1374:
/* Line 1464 of yacc.c */
#line 9120 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1375:
/* Line 1464 of yacc.c */
#line 9124 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1376:
/* Line 1464 of yacc.c */
#line 9125 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1377:
/* Line 1464 of yacc.c */
#line 9128 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1378:
/* Line 1464 of yacc.c */
#line 9129 "gram.y"
{ (yyval.ival) = 0; }
break;
case 1379:
/* Line 1464 of yacc.c */
#line 9134 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (3)].list); }
break;
case 1380:
/* Line 1464 of yacc.c */
#line 9135 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1381:
/* Line 1464 of yacc.c */
#line 9139 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1382:
/* Line 1464 of yacc.c */
#line 9140 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1383:
/* Line 1464 of yacc.c */
#line 9144 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1384:
/* Line 1464 of yacc.c */
#line 9145 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1385:
/* Line 1464 of yacc.c */
#line 9149 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1386:
/* Line 1464 of yacc.c */
#line 9150 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1387:
/* Line 1464 of yacc.c */
#line 9154 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1388:
/* Line 1464 of yacc.c */
#line 9155 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); }
break;
case 1389:
/* Line 1464 of yacc.c */
#line 9160 "gram.y"
{
LockingClause *n = makeNode(LockingClause);
n->lockedRels = (yyvsp[(3) - (4)].list);
n->forUpdate = TRUE;
n->noWait = (yyvsp[(4) - (4)].boolean);
(yyval.node) = (Node *) n;
}
break;
case 1390:
/* Line 1464 of yacc.c */
#line 9168 "gram.y"
{
LockingClause *n = makeNode(LockingClause);
n->lockedRels = (yyvsp[(3) - (4)].list);
n->forUpdate = FALSE;
n->noWait = (yyvsp[(4) - (4)].boolean);
(yyval.node) = (Node *) n;
}
break;
case 1391:
/* Line 1464 of yacc.c */
#line 9178 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 1392:
/* Line 1464 of yacc.c */
#line 9179 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1393:
/* Line 1464 of yacc.c */
#line 9185 "gram.y"
{
SelectStmt *n = makeNode(SelectStmt);
n->valuesLists = list_make1((yyvsp[(2) - (2)].list));
(yyval.node) = (Node *) n;
}
break;
case 1394:
/* Line 1464 of yacc.c */
#line 9191 "gram.y"
{
SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (3)].node);
n->valuesLists = lappend(n->valuesLists, (yyvsp[(3) - (3)].list));
(yyval.node) = (Node *) n;
}
break;
case 1395:
/* Line 1464 of yacc.c */
#line 9208 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 1396:
/* Line 1464 of yacc.c */
#line 9209 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1397:
/* Line 1464 of yacc.c */
#line 9213 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1398:
/* Line 1464 of yacc.c */
#line 9214 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 1399:
/* Line 1464 of yacc.c */
#line 9225 "gram.y"
{
(yyval.node) = (Node *) (yyvsp[(1) - (1)].range);
}
break;
case 1400:
/* Line 1464 of yacc.c */
#line 9229 "gram.y"
{
(yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias);
(yyval.node) = (Node *) (yyvsp[(1) - (2)].range);
}
break;
case 1401:
/* Line 1464 of yacc.c */
#line 9234 "gram.y"
{
RangeFunction *n = makeNode(RangeFunction);
n->funccallnode = (yyvsp[(1) - (1)].node);
n->coldeflist = NIL;
(yyval.node) = (Node *) n;
}
break;
case 1402:
/* Line 1464 of yacc.c */
#line 9241 "gram.y"
{
RangeFunction *n = makeNode(RangeFunction);
n->funccallnode = (yyvsp[(1) - (2)].node);
n->alias = (yyvsp[(2) - (2)].alias);
n->coldeflist = NIL;
(yyval.node) = (Node *) n;
}
break;
case 1403:
/* Line 1464 of yacc.c */
#line 9249 "gram.y"
{
RangeFunction *n = makeNode(RangeFunction);
n->funccallnode = (yyvsp[(1) - (5)].node);
n->coldeflist = (yyvsp[(4) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 1404:
/* Line 1464 of yacc.c */
#line 9256 "gram.y"
{
RangeFunction *n = makeNode(RangeFunction);
Alias *a = makeNode(Alias);
n->funccallnode = (yyvsp[(1) - (6)].node);
a->aliasname = (yyvsp[(3) - (6)].str);
n->alias = a;
n->coldeflist = (yyvsp[(5) - (6)].list);
(yyval.node) = (Node *) n;
}
break;
case 1405:
/* Line 1464 of yacc.c */
#line 9266 "gram.y"
{
RangeFunction *n = makeNode(RangeFunction);
Alias *a = makeNode(Alias);
n->funccallnode = (yyvsp[(1) - (5)].node);
a->aliasname = (yyvsp[(2) - (5)].str);
n->alias = a;
n->coldeflist = (yyvsp[(4) - (5)].list);
(yyval.node) = (Node *) n;
}
break;
case 1406:
/* Line 1464 of yacc.c */
#line 9276 "gram.y"
{
/*
* 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 (IsA((yyvsp[(1) - (1)].node), SelectStmt) &&
((SelectStmt *) (yyvsp[(1) - (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) - (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) - (1)]))));
(yyval.node) = NULL;
}
break;
case 1407:
/* Line 1464 of yacc.c */
#line 9304 "gram.y"
{
RangeSubselect *n = makeNode(RangeSubselect);
n->subquery = (yyvsp[(1) - (2)].node);
n->alias = (yyvsp[(2) - (2)].alias);
(yyval.node) = (Node *) n;
}
break;
case 1408:
/* Line 1464 of yacc.c */
#line 9311 "gram.y"
{
(yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr);
}
break;
case 1409:
/* Line 1464 of yacc.c */
#line 9315 "gram.y"
{
(yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias);
(yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr);
}
break;
case 1410:
/* Line 1464 of yacc.c */
#line 9341 "gram.y"
{
(yyval.jexpr) = (yyvsp[(2) - (3)].jexpr);
}
break;
case 1411:
/* Line 1464 of yacc.c */
#line 9345 "gram.y"
{
/* CROSS JOIN is same as unqualified inner join */
JoinExpr *n = makeNode(JoinExpr);
n->jointype = JOIN_INNER;
n->isNatural = FALSE;
n->larg = (yyvsp[(1) - (4)].node);
n->rarg = (yyvsp[(4) - (4)].node);
n->usingClause = NIL;
n->quals = NULL;
(yyval.jexpr) = n;
}
break;
case 1412:
/* Line 1464 of yacc.c */
#line 9357 "gram.y"
{
JoinExpr *n = makeNode(JoinExpr);
n->jointype = (yyvsp[(2) - (5)].jtype);
n->isNatural = FALSE;
n->larg = (yyvsp[(1) - (5)].node);
n->rarg = (yyvsp[(4) - (5)].node);
if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), List))
n->usingClause = (List *) (yyvsp[(5) - (5)].node); /* USING clause */
else
n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
(yyval.jexpr) = n;
}
break;
case 1413:
/* Line 1464 of yacc.c */
#line 9370 "gram.y"
{
/* letting join_type reduce to empty doesn't work */
JoinExpr *n = makeNode(JoinExpr);
n->jointype = JOIN_INNER;
n->isNatural = FALSE;
n->larg = (yyvsp[(1) - (4)].node);
n->rarg = (yyvsp[(3) - (4)].node);
if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), List))
n->usingClause = (List *) (yyvsp[(4) - (4)].node); /* USING clause */
else
n->quals = (yyvsp[(4) - (4)].node); /* ON clause */
(yyval.jexpr) = n;
}
break;
case 1414:
/* Line 1464 of yacc.c */
#line 9384 "gram.y"
{
JoinExpr *n = makeNode(JoinExpr);
n->jointype = (yyvsp[(3) - (5)].jtype);
n->isNatural = TRUE;
n->larg = (yyvsp[(1) - (5)].node);
n->rarg = (yyvsp[(5) - (5)].node);
n->usingClause = NIL; /* figure out which columns later... */
n->quals = NULL; /* fill later */
(yyval.jexpr) = n;
}
break;
case 1415:
/* Line 1464 of yacc.c */
#line 9395 "gram.y"
{
/* letting join_type reduce to empty doesn't work */
JoinExpr *n = makeNode(JoinExpr);
n->jointype = JOIN_INNER;
n->isNatural = TRUE;
n->larg = (yyvsp[(1) - (4)].node);
n->rarg = (yyvsp[(4) - (4)].node);
n->usingClause = NIL; /* figure out which columns later... */
n->quals = NULL; /* fill later */
(yyval.jexpr) = n;
}
break;
case 1416:
/* Line 1464 of yacc.c */
#line 9410 "gram.y"
{
(yyval.alias) = makeNode(Alias);
(yyval.alias)->aliasname = (yyvsp[(2) - (5)].str);
(yyval.alias)->colnames = (yyvsp[(4) - (5)].list);
}
break;
case 1417:
/* Line 1464 of yacc.c */
#line 9416 "gram.y"
{
(yyval.alias) = makeNode(Alias);
(yyval.alias)->aliasname = (yyvsp[(2) - (2)].str);
}
break;
case 1418:
/* Line 1464 of yacc.c */
#line 9421 "gram.y"
{
(yyval.alias) = makeNode(Alias);
(yyval.alias)->aliasname = (yyvsp[(1) - (4)].str);
(yyval.alias)->colnames = (yyvsp[(3) - (4)].list);
}
break;
case 1419:
/* Line 1464 of yacc.c */
#line 9427 "gram.y"
{
(yyval.alias) = makeNode(Alias);
(yyval.alias)->aliasname = (yyvsp[(1) - (1)].str);
}
break;
case 1420:
/* Line 1464 of yacc.c */
#line 9433 "gram.y"
{ (yyval.jtype) = JOIN_FULL; }
break;
case 1421:
/* Line 1464 of yacc.c */
#line 9434 "gram.y"
{ (yyval.jtype) = JOIN_LEFT; }
break;
case 1422:
/* Line 1464 of yacc.c */
#line 9435 "gram.y"
{ (yyval.jtype) = JOIN_RIGHT; }
break;
case 1423:
/* Line 1464 of yacc.c */
#line 9436 "gram.y"
{ (yyval.jtype) = JOIN_INNER; }
break;
case 1424:
/* Line 1464 of yacc.c */
#line 9440 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1425:
/* Line 1464 of yacc.c */
#line 9441 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1426:
/* Line 1464 of yacc.c */
#line 9453 "gram.y"
{ (yyval.node) = (Node *) (yyvsp[(3) - (4)].list); }
break;
case 1427:
/* Line 1464 of yacc.c */
#line 9454 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1428:
/* Line 1464 of yacc.c */
#line 9460 "gram.y"
{
/* default inheritance */
(yyval.range) = (yyvsp[(1) - (1)].range);
(yyval.range)->inhOpt = INH_DEFAULT;
(yyval.range)->alias = NULL;
}
break;
case 1429:
/* Line 1464 of yacc.c */
#line 9467 "gram.y"
{
/* inheritance query */
(yyval.range) = (yyvsp[(1) - (2)].range);
(yyval.range)->inhOpt = INH_YES;
(yyval.range)->alias = NULL;
}
break;
case 1430:
/* Line 1464 of yacc.c */
#line 9474 "gram.y"
{
/* no inheritance */
(yyval.range) = (yyvsp[(2) - (2)].range);
(yyval.range)->inhOpt = INH_NO;
(yyval.range)->alias = NULL;
}
break;
case 1431:
/* Line 1464 of yacc.c */
#line 9481 "gram.y"
{
/* no inheritance, SQL99-style syntax */
(yyval.range) = (yyvsp[(3) - (4)].range);
(yyval.range)->inhOpt = INH_NO;
(yyval.range)->alias = NULL;
}
break;
case 1432:
/* Line 1464 of yacc.c */
#line 9491 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); }
break;
case 1433:
/* Line 1464 of yacc.c */
#line 9492 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); }
break;
case 1434:
/* Line 1464 of yacc.c */
#line 9506 "gram.y"
{
(yyval.range) = (yyvsp[(1) - (1)].range);
}
break;
case 1435:
/* Line 1464 of yacc.c */
#line 9510 "gram.y"
{
Alias *alias = makeNode(Alias);
alias->aliasname = (yyvsp[(2) - (2)].str);
(yyvsp[(1) - (2)].range)->alias = alias;
(yyval.range) = (yyvsp[(1) - (2)].range);
}
break;
case 1436:
/* Line 1464 of yacc.c */
#line 9517 "gram.y"
{
Alias *alias = makeNode(Alias);
alias->aliasname = (yyvsp[(3) - (3)].str);
(yyvsp[(1) - (3)].range)->alias = alias;
(yyval.range) = (yyvsp[(1) - (3)].range);
}
break;
case 1437:
/* Line 1464 of yacc.c */
#line 9526 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1438:
/* Line 1464 of yacc.c */
#line 9531 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1439:
/* Line 1464 of yacc.c */
#line 9532 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1440:
/* Line 1464 of yacc.c */
#line 9537 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1441:
/* Line 1464 of yacc.c */
#line 9539 "gram.y"
{
CurrentOfExpr *n = makeNode(CurrentOfExpr);
/* cvarno is filled in by parse analysis */
n->cursor_name = (yyvsp[(4) - (4)].str);
n->cursor_param = 0;
(yyval.node) = (Node *) n;
}
break;
case 1442:
/* Line 1464 of yacc.c */
#line 9546 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1443:
/* Line 1464 of yacc.c */
#line 9551 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1444:
/* Line 1464 of yacc.c */
#line 9552 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1445:
/* Line 1464 of yacc.c */
#line 9557 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 1446:
/* Line 1464 of yacc.c */
#line 9561 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 1447:
/* Line 1464 of yacc.c */
#line 9567 "gram.y"
{
ColumnDef *n = makeNode(ColumnDef);
n->colname = (yyvsp[(1) - (3)].str);
n->typeName = (yyvsp[(2) - (3)].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[(3) - (3)].node);
n->collOid = InvalidOid;
n->constraints = NIL;
(yyval.node) = (Node *)n;
}
break;
case 1448:
/* Line 1464 of yacc.c */
#line 9596 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
(yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
}
break;
case 1449:
/* Line 1464 of yacc.c */
#line 9601 "gram.y"
{
(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
(yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
(yyval.typnam)->setof = TRUE;
}
break;
case 1450:
/* Line 1464 of yacc.c */
#line 9608 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (5)].typnam);
(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
}
break;
case 1451:
/* Line 1464 of yacc.c */
#line 9613 "gram.y"
{
(yyval.typnam) = (yyvsp[(2) - (6)].typnam);
(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
(yyval.typnam)->setof = TRUE;
}
break;
case 1452:
/* Line 1464 of yacc.c */
#line 9619 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
}
break;
case 1453:
/* Line 1464 of yacc.c */
#line 9624 "gram.y"
{
(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
(yyval.typnam)->setof = TRUE;
}
break;
case 1454:
/* Line 1464 of yacc.c */
#line 9633 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); }
break;
case 1455:
/* Line 1464 of yacc.c */
#line 9635 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); }
break;
case 1456:
/* Line 1464 of yacc.c */
#line 9637 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1457:
/* Line 1464 of yacc.c */
#line 9641 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1458:
/* Line 1464 of yacc.c */
#line 9642 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1459:
/* Line 1464 of yacc.c */
#line 9643 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1460:
/* Line 1464 of yacc.c */
#line 9644 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1461:
/* Line 1464 of yacc.c */
#line 9645 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1462:
/* Line 1464 of yacc.c */
#line 9647 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
}
break;
case 1463:
/* Line 1464 of yacc.c */
#line 9652 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (5)].typnam);
if ((yyvsp[(5) - (5)].list) != NIL)
{
if (list_length((yyvsp[(5) - (5)].list)) != 1)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("interval precision specified twice"),
parser_errposition((yylsp[(1) - (5)]))));
(yyval.typnam)->typmods = lappend((yyvsp[(5) - (5)].list), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
}
else
(yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
}
break;
case 1464:
/* Line 1464 of yacc.c */
#line 9681 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1465:
/* Line 1464 of yacc.c */
#line 9682 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1466:
/* Line 1464 of yacc.c */
#line 9683 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1467:
/* Line 1464 of yacc.c */
#line 9684 "gram.y"
{ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); }
break;
case 1468:
/* Line 1464 of yacc.c */
#line 9696 "gram.y"
{
(yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str));
(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1469:
/* Line 1464 of yacc.c */
#line 9702 "gram.y"
{
(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list)));
(yyval.typnam)->typmods = (yyvsp[(3) - (3)].list);
(yyval.typnam)->location = (yylsp[(1) - (3)]);
}
break;
case 1470:
/* Line 1464 of yacc.c */
#line 9709 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 1471:
/* Line 1464 of yacc.c */
#line 9710 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1472:
/* Line 1464 of yacc.c */
#line 9717 "gram.y"
{
(yyval.typnam) = SystemTypeName("int4");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1473:
/* Line 1464 of yacc.c */
#line 9722 "gram.y"
{
(yyval.typnam) = SystemTypeName("int4");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1474:
/* Line 1464 of yacc.c */
#line 9727 "gram.y"
{
(yyval.typnam) = SystemTypeName("int2");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1475:
/* Line 1464 of yacc.c */
#line 9732 "gram.y"
{
(yyval.typnam) = SystemTypeName("int8");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1476:
/* Line 1464 of yacc.c */
#line 9737 "gram.y"
{
(yyval.typnam) = SystemTypeName("float4");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1477:
/* Line 1464 of yacc.c */
#line 9742 "gram.y"
{
(yyval.typnam) = (yyvsp[(2) - (2)].typnam);
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1478:
/* Line 1464 of yacc.c */
#line 9747 "gram.y"
{
(yyval.typnam) = SystemTypeName("float8");
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1479:
/* Line 1464 of yacc.c */
#line 9752 "gram.y"
{
(yyval.typnam) = SystemTypeName("numeric");
(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1480:
/* Line 1464 of yacc.c */
#line 9758 "gram.y"
{
(yyval.typnam) = SystemTypeName("numeric");
(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1481:
/* Line 1464 of yacc.c */
#line 9764 "gram.y"
{
(yyval.typnam) = SystemTypeName("numeric");
(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1482:
/* Line 1464 of yacc.c */
#line 9770 "gram.y"
{
(yyval.typnam) = SystemTypeName("bool");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1483:
/* Line 1464 of yacc.c */
#line 9777 "gram.y"
{
/*
* Check FLOAT() precision limits assuming IEEE floating
* types - thomas 1997-09-18
*/
if ((yyvsp[(2) - (3)].ival) < 1)
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("precision for type float must be at least 1 bit"),
parser_errposition((yylsp[(2) - (3)]))));
else if ((yyvsp[(2) - (3)].ival) <= 24)
(yyval.typnam) = SystemTypeName("float4");
else if ((yyvsp[(2) - (3)].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[(2) - (3)]))));
}
break;
case 1484:
/* Line 1464 of yacc.c */
#line 9798 "gram.y"
{
(yyval.typnam) = SystemTypeName("float8");
}
break;
case 1485:
/* Line 1464 of yacc.c */
#line 9808 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
}
break;
case 1486:
/* Line 1464 of yacc.c */
#line 9812 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
}
break;
case 1487:
/* Line 1464 of yacc.c */
#line 9820 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
}
break;
case 1488:
/* Line 1464 of yacc.c */
#line 9824 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
(yyval.typnam)->typmods = NIL;
}
break;
case 1489:
/* Line 1464 of yacc.c */
#line 9832 "gram.y"
{
char *typname;
typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit";
(yyval.typnam) = SystemTypeName(typname);
(yyval.typnam)->typmods = (yyvsp[(4) - (5)].list);
(yyval.typnam)->location = (yylsp[(1) - (5)]);
}
break;
case 1490:
/* Line 1464 of yacc.c */
#line 9844 "gram.y"
{
/* bit defaults to bit(1), varbit to no limit */
if ((yyvsp[(2) - (2)].boolean))
{
(yyval.typnam) = SystemTypeName("varbit");
}
else
{
(yyval.typnam) = SystemTypeName("bit");
(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
}
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1491:
/* Line 1464 of yacc.c */
#line 9865 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
}
break;
case 1492:
/* Line 1464 of yacc.c */
#line 9869 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
}
break;
case 1493:
/* Line 1464 of yacc.c */
#line 9875 "gram.y"
{
(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
}
break;
case 1494:
/* Line 1464 of yacc.c */
#line 9879 "gram.y"
{
/* Length was not specified so allow to be unrestricted.
* This handles problems with fixed-length (char) 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[(1) - (1)].typnam);
(yyval.typnam)->typmods = NIL;
}
break;
case 1495:
/* Line 1464 of yacc.c */
#line 9892 "gram.y"
{
if (((yyvsp[(5) - (5)].str) != NULL) && (strcmp((yyvsp[(5) - (5)].str), "sql_text") != 0))
{
char *type;
type = palloc(strlen((yyvsp[(1) - (5)].str)) + 1 + strlen((yyvsp[(5) - (5)].str)) + 1);
strcpy(type, (yyvsp[(1) - (5)].str));
strcat(type, "_");
strcat(type, (yyvsp[(5) - (5)].str));
(yyvsp[(1) - (5)].str) = type;
}
(yyval.typnam) = SystemTypeName((yyvsp[(1) - (5)].str));
(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
(yyval.typnam)->location = (yylsp[(1) - (5)]);
}
break;
case 1496:
/* Line 1464 of yacc.c */
#line 9911 "gram.y"
{
if (((yyvsp[(2) - (2)].str) != NULL) && (strcmp((yyvsp[(2) - (2)].str), "sql_text") != 0))
{
char *type;
type = palloc(strlen((yyvsp[(1) - (2)].str)) + 1 + strlen((yyvsp[(2) - (2)].str)) + 1);
strcpy(type, (yyvsp[(1) - (2)].str));
strcat(type, "_");
strcat(type, (yyvsp[(2) - (2)].str));
(yyvsp[(1) - (2)].str) = type;
}
(yyval.typnam) = SystemTypeName((yyvsp[(1) - (2)].str));
/* char defaults to char(1), varchar to no limit */
if (strcmp((yyvsp[(1) - (2)].str), "char") == 0)
(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1497:
/* Line 1464 of yacc.c */
#line 9934 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "char"; }
break;
case 1498:
/* Line 1464 of yacc.c */
#line 9936 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "char"; }
break;
case 1499:
/* Line 1464 of yacc.c */
#line 9938 "gram.y"
{ (yyval.str) = "varchar"; }
break;
case 1500:
/* Line 1464 of yacc.c */
#line 9940 "gram.y"
{ (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "char"; }
break;
case 1501:
/* Line 1464 of yacc.c */
#line 9942 "gram.y"
{ (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "char"; }
break;
case 1502:
/* Line 1464 of yacc.c */
#line 9944 "gram.y"
{ (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "char"; }
break;
case 1503:
/* Line 1464 of yacc.c */
#line 9948 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1504:
/* Line 1464 of yacc.c */
#line 9949 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1505:
/* Line 1464 of yacc.c */
#line 9953 "gram.y"
{ (yyval.str) = (yyvsp[(3) - (3)].str); }
break;
case 1506:
/* Line 1464 of yacc.c */
#line 9954 "gram.y"
{ (yyval.str) = NULL; }
break;
case 1507:
/* Line 1464 of yacc.c */
#line 9962 "gram.y"
{
if ((yyvsp[(5) - (5)].boolean))
(yyval.typnam) = SystemTypeName("timestamptz");
else
(yyval.typnam) = SystemTypeName("timestamp");
(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
(yyval.typnam)->location = (yylsp[(1) - (5)]);
}
break;
case 1508:
/* Line 1464 of yacc.c */
#line 9971 "gram.y"
{
if ((yyvsp[(2) - (2)].boolean))
(yyval.typnam) = SystemTypeName("timestamptz");
else
(yyval.typnam) = SystemTypeName("timestamp");
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1509:
/* Line 1464 of yacc.c */
#line 9979 "gram.y"
{
if ((yyvsp[(5) - (5)].boolean))
(yyval.typnam) = SystemTypeName("timetz");
else
(yyval.typnam) = SystemTypeName("time");
(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
(yyval.typnam)->location = (yylsp[(1) - (5)]);
}
break;
case 1510:
/* Line 1464 of yacc.c */
#line 9988 "gram.y"
{
if ((yyvsp[(2) - (2)].boolean))
(yyval.typnam) = SystemTypeName("timetz");
else
(yyval.typnam) = SystemTypeName("time");
(yyval.typnam)->location = (yylsp[(1) - (2)]);
}
break;
case 1511:
/* Line 1464 of yacc.c */
#line 9999 "gram.y"
{
(yyval.typnam) = SystemTypeName("interval");
(yyval.typnam)->location = (yylsp[(1) - (1)]);
}
break;
case 1512:
/* Line 1464 of yacc.c */
#line 10006 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1513:
/* Line 1464 of yacc.c */
#line 10007 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1514:
/* Line 1464 of yacc.c */
#line 10008 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1515:
/* Line 1464 of yacc.c */
#line 10013 "gram.y"
{ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); }
break;
case 1516:
/* Line 1464 of yacc.c */
#line 10015 "gram.y"
{ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); }
break;
case 1517:
/* Line 1464 of yacc.c */
#line 10017 "gram.y"
{ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); }
break;
case 1518:
/* Line 1464 of yacc.c */
#line 10019 "gram.y"
{ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); }
break;
case 1519:
/* Line 1464 of yacc.c */
#line 10021 "gram.y"
{ (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); }
break;
case 1520:
/* Line 1464 of yacc.c */
#line 10023 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1521:
/* Line 1464 of yacc.c */
#line 10025 "gram.y"
{
(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
}
break;
case 1522:
/* Line 1464 of yacc.c */
#line 10030 "gram.y"
{
(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
}
break;
case 1523:
/* Line 1464 of yacc.c */
#line 10035 "gram.y"
{
(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
}
break;
case 1524:
/* Line 1464 of yacc.c */
#line 10041 "gram.y"
{
(yyval.list) = (yyvsp[(3) - (3)].list);
linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE) |
INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
}
break;
case 1525:
/* Line 1464 of yacc.c */
#line 10049 "gram.y"
{
(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
}
break;
case 1526:
/* Line 1464 of yacc.c */
#line 10054 "gram.y"
{
(yyval.list) = (yyvsp[(3) - (3)].list);
linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE) |
INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
}
break;
case 1527:
/* Line 1464 of yacc.c */
#line 10061 "gram.y"
{
(yyval.list) = (yyvsp[(3) - (3)].list);
linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
}
break;
case 1528:
/* Line 1464 of yacc.c */
#line 10067 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1529:
/* Line 1464 of yacc.c */
#line 10072 "gram.y"
{
(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)])));
}
break;
case 1530:
/* Line 1464 of yacc.c */
#line 10076 "gram.y"
{
(yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])),
makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
}
break;
case 1531:
/* Line 1464 of yacc.c */
#line 10105 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1532:
/* Line 1464 of yacc.c */
#line 10107 "gram.y"
{ (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); }
break;
case 1533:
/* Line 1464 of yacc.c */
#line 10109 "gram.y"
{
CollateClause *n = makeNode(CollateClause);
n->arg = (yyvsp[(1) - (3)].node);
n->collname = (yyvsp[(3) - (3)].list);
n->location = (yylsp[(2) - (3)]);
(yyval.node) = (Node *) n;
}
break;
case 1534:
/* Line 1464 of yacc.c */
#line 10117 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("timezone");
n->args = list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (5)]);
(yyval.node) = (Node *) n;
}
break;
case 1535:
/* Line 1464 of yacc.c */
#line 10139 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1536:
/* Line 1464 of yacc.c */
#line 10141 "gram.y"
{ (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1537:
/* Line 1464 of yacc.c */
#line 10143 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1538:
/* Line 1464 of yacc.c */
#line 10145 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1539:
/* Line 1464 of yacc.c */
#line 10147 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1540:
/* Line 1464 of yacc.c */
#line 10149 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1541:
/* Line 1464 of yacc.c */
#line 10151 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1542:
/* Line 1464 of yacc.c */
#line 10153 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1543:
/* Line 1464 of yacc.c */
#line 10155 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1544:
/* Line 1464 of yacc.c */
#line 10157 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1545:
/* Line 1464 of yacc.c */
#line 10159 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1546:
/* Line 1464 of yacc.c */
#line 10162 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1547:
/* Line 1464 of yacc.c */
#line 10164 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1548:
/* Line 1464 of yacc.c */
#line 10166 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); }
break;
case 1549:
/* Line 1464 of yacc.c */
#line 10169 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1550:
/* Line 1464 of yacc.c */
#line 10171 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1551:
/* Line 1464 of yacc.c */
#line 10173 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1552:
/* Line 1464 of yacc.c */
#line 10176 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1553:
/* Line 1464 of yacc.c */
#line 10178 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("like_escape");
n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (5)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)]));
}
break;
case 1554:
/* Line 1464 of yacc.c */
#line 10191 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); }
break;
case 1555:
/* Line 1464 of yacc.c */
#line 10193 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("like_escape");
n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (6)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)]));
}
break;
case 1556:
/* Line 1464 of yacc.c */
#line 10206 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1557:
/* Line 1464 of yacc.c */
#line 10208 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("like_escape");
n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (5)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)]));
}
break;
case 1558:
/* Line 1464 of yacc.c */
#line 10221 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); }
break;
case 1559:
/* Line 1464 of yacc.c */
#line 10223 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("like_escape");
n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (6)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)]));
}
break;
case 1560:
/* Line 1464 of yacc.c */
#line 10237 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("similar_escape");
n->args = list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (4)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", (yyvsp[(1) - (4)].node), (Node *) n, (yylsp[(2) - (4)]));
}
break;
case 1561:
/* Line 1464 of yacc.c */
#line 10250 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("similar_escape");
n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (6)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)]));
}
break;
case 1562:
/* Line 1464 of yacc.c */
#line 10263 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("similar_escape");
n->args = list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (5)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)]));
}
break;
case 1563:
/* Line 1464 of yacc.c */
#line 10276 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("similar_escape");
n->args = list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(2) - (7)]);
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", (yyvsp[(1) - (7)].node), (Node *) n, (yylsp[(2) - (7)]));
}
break;
case 1564:
/* Line 1464 of yacc.c */
#line 10299 "gram.y"
{
NullTest *n = makeNode(NullTest);
n->arg = (Expr *) (yyvsp[(1) - (3)].node);
n->nulltesttype = IS_NULL;
(yyval.node) = (Node *)n;
}
break;
case 1565:
/* Line 1464 of yacc.c */
#line 10306 "gram.y"
{
NullTest *n = makeNode(NullTest);
n->arg = (Expr *) (yyvsp[(1) - (2)].node);
n->nulltesttype = IS_NULL;
(yyval.node) = (Node *)n;
}
break;
case 1566:
/* Line 1464 of yacc.c */
#line 10313 "gram.y"
{
NullTest *n = makeNode(NullTest);
n->arg = (Expr *) (yyvsp[(1) - (4)].node);
n->nulltesttype = IS_NOT_NULL;
(yyval.node) = (Node *)n;
}
break;
case 1567:
/* Line 1464 of yacc.c */
#line 10320 "gram.y"
{
NullTest *n = makeNode(NullTest);
n->arg = (Expr *) (yyvsp[(1) - (2)].node);
n->nulltesttype = IS_NOT_NULL;
(yyval.node) = (Node *)n;
}
break;
case 1568:
/* Line 1464 of yacc.c */
#line 10327 "gram.y"
{
(yyval.node) = (Node *)makeOverlaps((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list), (yylsp[(2) - (3)]), yyscanner);
}
break;
case 1569:
/* Line 1464 of yacc.c */
#line 10331 "gram.y"
{
BooleanTest *b = makeNode(BooleanTest);
b->arg = (Expr *) (yyvsp[(1) - (3)].node);
b->booltesttype = IS_TRUE;
(yyval.node) = (Node *)b;
}
break;
case 1570:
/* Line 1464 of yacc.c */
#line 10338 "gram.y"
{
BooleanTest *b = makeNode(BooleanTest);
b->arg = (Expr *) (yyvsp[(1) - (4)].node);
b->booltesttype = IS_NOT_TRUE;
(yyval.node) = (Node *)b;
}
break;
case 1571:
/* Line 1464 of yacc.c */
#line 10345 "gram.y"
{
BooleanTest *b = makeNode(BooleanTest);
b->arg = (Expr *) (yyvsp[(1) - (3)].node);
b->booltesttype = IS_FALSE;
(yyval.node) = (Node *)b;
}
break;
case 1572:
/* Line 1464 of yacc.c */
#line 10352 "gram.y"
{
BooleanTest *b = makeNode(BooleanTest);
b->arg = (Expr *) (yyvsp[(1) - (4)].node);
b->booltesttype = IS_NOT_FALSE;
(yyval.node) = (Node *)b;
}
break;
case 1573:
/* Line 1464 of yacc.c */
#line 10359 "gram.y"
{
BooleanTest *b = makeNode(BooleanTest);
b->arg = (Expr *) (yyvsp[(1) - (3)].node);
b->booltesttype = IS_UNKNOWN;
(yyval.node) = (Node *)b;
}
break;
case 1574:
/* Line 1464 of yacc.c */
#line 10366 "gram.y"
{
BooleanTest *b = makeNode(BooleanTest);
b->arg = (Expr *) (yyvsp[(1) - (4)].node);
b->booltesttype = IS_NOT_UNKNOWN;
(yyval.node) = (Node *)b;
}
break;
case 1575:
/* Line 1464 of yacc.c */
#line 10373 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
}
break;
case 1576:
/* Line 1464 of yacc.c */
#line 10377 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
(Node *) makeSimpleA_Expr(AEXPR_DISTINCT,
"=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
(yylsp[(2) - (6)]));
}
break;
case 1577:
/* Line 1464 of yacc.c */
#line 10385 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
}
break;
case 1578:
/* Line 1464 of yacc.c */
#line 10389 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
}
break;
case 1579:
/* Line 1464 of yacc.c */
#line 10399 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL,
(Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])),
(Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
(yylsp[(2) - (6)]));
}
break;
case 1580:
/* Line 1464 of yacc.c */
#line 10406 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL,
(Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])),
(Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])),
(yylsp[(2) - (7)]));
}
break;
case 1581:
/* Line 1464 of yacc.c */
#line 10413 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL,
(Node *) makeA_Expr(AEXPR_AND, NIL,
(Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])),
(Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
(yylsp[(2) - (6)])),
(Node *) makeA_Expr(AEXPR_AND, NIL,
(Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
(Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])),
(yylsp[(2) - (6)])),
(yylsp[(2) - (6)]));
}
break;
case 1582:
/* Line 1464 of yacc.c */
#line 10426 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL,
(Node *) makeA_Expr(AEXPR_OR, NIL,
(Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])),
(Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])),
(yylsp[(2) - (7)])),
(Node *) makeA_Expr(AEXPR_OR, NIL,
(Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])),
(Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])),
(yylsp[(2) - (7)])),
(yylsp[(2) - (7)]));
}
break;
case 1583:
/* Line 1464 of yacc.c */
#line 10439 "gram.y"
{
/* in_expr returns a SubLink or a list of a_exprs */
if (IsA((yyvsp[(3) - (3)].node), SubLink))
{
/* generate foo = ANY (subquery) */
SubLink *n = (SubLink *) (yyvsp[(3) - (3)].node);
n->subLinkType = ANY_SUBLINK;
n->testexpr = (yyvsp[(1) - (3)].node);
n->operName = list_make1(makeString("="));
n->location = (yylsp[(2) - (3)]);
(yyval.node) = (Node *)n;
}
else
{
/* generate scalar IN expression */
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
}
}
break;
case 1584:
/* Line 1464 of yacc.c */
#line 10458 "gram.y"
{
/* in_expr returns a SubLink or a list of a_exprs */
if (IsA((yyvsp[(4) - (4)].node), SubLink))
{
/* generate NOT (foo = ANY (subquery)) */
/* Make an = ANY node */
SubLink *n = (SubLink *) (yyvsp[(4) - (4)].node);
n->subLinkType = ANY_SUBLINK;
n->testexpr = (yyvsp[(1) - (4)].node);
n->operName = list_make1(makeString("="));
n->location = (yylsp[(3) - (4)]);
/* Stick a NOT on top */
(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n, (yylsp[(2) - (4)]));
}
else
{
/* generate scalar NOT IN expression */
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
}
}
break;
case 1585:
/* Line 1464 of yacc.c */
#line 10479 "gram.y"
{
SubLink *n = makeNode(SubLink);
n->subLinkType = (yyvsp[(3) - (4)].ival);
n->testexpr = (yyvsp[(1) - (4)].node);
n->operName = (yyvsp[(2) - (4)].list);
n->subselect = (yyvsp[(4) - (4)].node);
n->location = (yylsp[(2) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1586:
/* Line 1464 of yacc.c */
#line 10489 "gram.y"
{
if ((yyvsp[(3) - (6)].ival) == ANY_SUBLINK)
(yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
else
(yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
}
break;
case 1587:
/* Line 1464 of yacc.c */
#line 10496 "gram.y"
{
/* 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) - (2)]))));
}
break;
case 1588:
/* Line 1464 of yacc.c */
#line 10512 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)]));
}
break;
case 1589:
/* Line 1464 of yacc.c */
#line 10517 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
makeXmlExpr(IS_DOCUMENT, NULL, NIL,
list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])),
(yylsp[(2) - (4)]));
}
break;
case 1590:
/* Line 1464 of yacc.c */
#line 10535 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1591:
/* Line 1464 of yacc.c */
#line 10537 "gram.y"
{ (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); }
break;
case 1592:
/* Line 1464 of yacc.c */
#line 10539 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1593:
/* Line 1464 of yacc.c */
#line 10541 "gram.y"
{ (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1594:
/* Line 1464 of yacc.c */
#line 10543 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1595:
/* Line 1464 of yacc.c */
#line 10545 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1596:
/* Line 1464 of yacc.c */
#line 10547 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1597:
/* Line 1464 of yacc.c */
#line 10549 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1598:
/* Line 1464 of yacc.c */
#line 10551 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1599:
/* Line 1464 of yacc.c */
#line 10553 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1600:
/* Line 1464 of yacc.c */
#line 10555 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1601:
/* Line 1464 of yacc.c */
#line 10557 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1602:
/* Line 1464 of yacc.c */
#line 10559 "gram.y"
{ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1603:
/* Line 1464 of yacc.c */
#line 10561 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); }
break;
case 1604:
/* Line 1464 of yacc.c */
#line 10563 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); }
break;
case 1605:
/* Line 1464 of yacc.c */
#line 10565 "gram.y"
{ (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); }
break;
case 1606:
/* Line 1464 of yacc.c */
#line 10567 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
}
break;
case 1607:
/* Line 1464 of yacc.c */
#line 10571 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL,
NULL, (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)]));
}
break;
case 1608:
/* Line 1464 of yacc.c */
#line 10576 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
}
break;
case 1609:
/* Line 1464 of yacc.c */
#line 10580 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
}
break;
case 1610:
/* Line 1464 of yacc.c */
#line 10584 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)]));
}
break;
case 1611:
/* Line 1464 of yacc.c */
#line 10589 "gram.y"
{
(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
makeXmlExpr(IS_DOCUMENT, NULL, NIL,
list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])),
(yylsp[(2) - (4)]));
}
break;
case 1612:
/* Line 1464 of yacc.c */
#line 10605 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1613:
/* Line 1464 of yacc.c */
#line 10606 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1614:
/* Line 1464 of yacc.c */
#line 10608 "gram.y"
{
ParamRef *p = makeNode(ParamRef);
p->number = (yyvsp[(1) - (2)].ival);
p->location = (yylsp[(1) - (2)]);
if ((yyvsp[(2) - (2)].list))
{
A_Indirection *n = makeNode(A_Indirection);
n->arg = (Node *) p;
n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
(yyval.node) = (Node *) n;
}
else
(yyval.node) = (Node *) p;
}
break;
case 1615:
/* Line 1464 of yacc.c */
#line 10623 "gram.y"
{
if ((yyvsp[(4) - (4)].list))
{
A_Indirection *n = makeNode(A_Indirection);
n->arg = (yyvsp[(2) - (4)].node);
n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner);
(yyval.node) = (Node *)n;
}
else
(yyval.node) = (yyvsp[(2) - (4)].node);
}
break;
case 1616:
/* Line 1464 of yacc.c */
#line 10635 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1617:
/* Line 1464 of yacc.c */
#line 10637 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1618:
/* Line 1464 of yacc.c */
#line 10639 "gram.y"
{
SubLink *n = makeNode(SubLink);
n->subLinkType = EXPR_SUBLINK;
n->testexpr = NULL;
n->operName = NIL;
n->subselect = (yyvsp[(1) - (1)].node);
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1619:
/* Line 1464 of yacc.c */
#line 10649 "gram.y"
{
/*
* 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->testexpr = NULL;
n->operName = NIL;
n->subselect = (yyvsp[(1) - (2)].node);
n->location = (yylsp[(1) - (2)]);
a->arg = (Node *)n;
a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
(yyval.node) = (Node *)a;
}
break;
case 1620:
/* Line 1464 of yacc.c */
#line 10672 "gram.y"
{
SubLink *n = makeNode(SubLink);
n->subLinkType = EXISTS_SUBLINK;
n->testexpr = NULL;
n->operName = NIL;
n->subselect = (yyvsp[(2) - (2)].node);
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 1621:
/* Line 1464 of yacc.c */
#line 10682 "gram.y"
{
SubLink *n = makeNode(SubLink);
n->subLinkType = ARRAY_SUBLINK;
n->testexpr = NULL;
n->operName = NIL;
n->subselect = (yyvsp[(2) - (2)].node);
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 1622:
/* Line 1464 of yacc.c */
#line 10692 "gram.y"
{
A_ArrayExpr *n = (A_ArrayExpr *) (yyvsp[(2) - (2)].node);
Assert(IsA(n, A_ArrayExpr));
/* point outermost A_ArrayExpr to the ARRAY keyword */
n->location = (yylsp[(1) - (2)]);
(yyval.node) = (Node *)n;
}
break;
case 1623:
/* Line 1464 of yacc.c */
#line 10700 "gram.y"
{
RowExpr *r = makeNode(RowExpr);
r->args = (yyvsp[(1) - (1)].list);
r->row_typeid = InvalidOid; /* not analyzed yet */
r->colnames = NIL; /* to be filled in during analysis */
r->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)r;
}
break;
case 1624:
/* Line 1464 of yacc.c */
#line 10719 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (4)].list);
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = (yyvsp[(4) - (4)].windef);
n->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1625:
/* Line 1464 of yacc.c */
#line 10732 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (5)].list);
n->args = (yyvsp[(3) - (5)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = (yyvsp[(5) - (5)].windef);
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1626:
/* Line 1464 of yacc.c */
#line 10745 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (6)].list);
n->args = list_make1((yyvsp[(4) - (6)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = TRUE;
n->over = (yyvsp[(6) - (6)].windef);
n->location = (yylsp[(1) - (6)]);
(yyval.node) = (Node *)n;
}
break;
case 1627:
/* Line 1464 of yacc.c */
#line 10758 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (8)].list);
n->args = lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = TRUE;
n->over = (yyvsp[(8) - (8)].windef);
n->location = (yylsp[(1) - (8)]);
(yyval.node) = (Node *)n;
}
break;
case 1628:
/* Line 1464 of yacc.c */
#line 10771 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (6)].list);
n->args = (yyvsp[(3) - (6)].list);
n->agg_order = (yyvsp[(4) - (6)].list);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = (yyvsp[(6) - (6)].windef);
n->location = (yylsp[(1) - (6)]);
(yyval.node) = (Node *)n;
}
break;
case 1629:
/* Line 1464 of yacc.c */
#line 10784 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (7)].list);
n->args = (yyvsp[(4) - (7)].list);
n->agg_order = (yyvsp[(5) - (7)].list);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
/* 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.
*/
n->func_variadic = FALSE;
n->over = (yyvsp[(7) - (7)].windef);
n->location = (yylsp[(1) - (7)]);
(yyval.node) = (Node *)n;
}
break;
case 1630:
/* Line 1464 of yacc.c */
#line 10801 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (7)].list);
n->args = (yyvsp[(4) - (7)].list);
n->agg_order = (yyvsp[(5) - (7)].list);
n->agg_star = FALSE;
n->agg_distinct = TRUE;
n->func_variadic = FALSE;
n->over = (yyvsp[(7) - (7)].windef);
n->location = (yylsp[(1) - (7)]);
(yyval.node) = (Node *)n;
}
break;
case 1631:
/* Line 1464 of yacc.c */
#line 10814 "gram.y"
{
/*
* We consider AGGREGATE(*) to invoke a parameterless
* aggregate. This does the right thing for COUNT(*),
* and there are no other aggregates in SQL92 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 = makeNode(FuncCall);
n->funcname = (yyvsp[(1) - (5)].list);
n->args = NIL;
n->agg_order = NIL;
n->agg_star = TRUE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = (yyvsp[(5) - (5)].windef);
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1632:
/* Line 1464 of yacc.c */
#line 10837 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("pg_collation_for");
n->args = list_make1((yyvsp[(4) - (5)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1633:
/* Line 1464 of yacc.c */
#line 10850 "gram.y"
{
/*
* Translate as "'now'::text::date".
*
* We cannot use "'now'::date" because coerce_type() will
* immediately reduce that to a constant representing
* today's date. We need to delay the conversion until
* runtime, else the wrong things will happen when
* CURRENT_DATE is used in a column default value or rule.
*
* This could be simplified if we had a way to generate
* an expression tree representing runtime application
* of type-input conversion functions. (As of PG 7.3
* that is actually possible, but not clear that we want
* to rely on it.)
*/
Node *n;
n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
(yyval.node) = makeTypeCast(n, SystemTypeName("date"), -1);
}
break;
case 1634:
/* Line 1464 of yacc.c */
#line 10871 "gram.y"
{
/*
* Translate as "'now'::text::timetz".
* See comments for CURRENT_DATE.
*/
Node *n;
n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
(yyval.node) = makeTypeCast(n, SystemTypeName("timetz"), -1);
}
break;
case 1635:
/* Line 1464 of yacc.c */
#line 10881 "gram.y"
{
/*
* Translate as "'now'::text::timetz(n)".
* See comments for CURRENT_DATE.
*/
Node *n;
TypeName *d;
n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
d = SystemTypeName("timetz");
d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
(yyval.node) = makeTypeCast(n, d, -1);
}
break;
case 1636:
/* Line 1464 of yacc.c */
#line 10894 "gram.y"
{
/*
* Translate as "now()", since we have a function that
* does exactly what is needed.
*/
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("now");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1637:
/* Line 1464 of yacc.c */
#line 10911 "gram.y"
{
/*
* Translate as "'now'::text::timestamptz(n)".
* See comments for CURRENT_DATE.
*/
Node *n;
TypeName *d;
n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
d = SystemTypeName("timestamptz");
d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
(yyval.node) = makeTypeCast(n, d, -1);
}
break;
case 1638:
/* Line 1464 of yacc.c */
#line 10924 "gram.y"
{
/*
* Translate as "'now'::text::time".
* See comments for CURRENT_DATE.
*/
Node *n;
n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
(yyval.node) = makeTypeCast((Node *)n, SystemTypeName("time"), -1);
}
break;
case 1639:
/* Line 1464 of yacc.c */
#line 10934 "gram.y"
{
/*
* Translate as "'now'::text::time(n)".
* See comments for CURRENT_DATE.
*/
Node *n;
TypeName *d;
n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
d = SystemTypeName("time");
d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
(yyval.node) = makeTypeCast((Node *)n, d, -1);
}
break;
case 1640:
/* Line 1464 of yacc.c */
#line 10947 "gram.y"
{
/*
* Translate as "'now'::text::timestamp".
* See comments for CURRENT_DATE.
*/
Node *n;
n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
(yyval.node) = makeTypeCast(n, SystemTypeName("timestamp"), -1);
}
break;
case 1641:
/* Line 1464 of yacc.c */
#line 10957 "gram.y"
{
/*
* Translate as "'now'::text::timestamp(n)".
* See comments for CURRENT_DATE.
*/
Node *n;
TypeName *d;
n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
d = SystemTypeName("timestamp");
d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
(yyval.node) = makeTypeCast(n, d, -1);
}
break;
case 1642:
/* Line 1464 of yacc.c */
#line 10970 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("current_user");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1643:
/* Line 1464 of yacc.c */
#line 10983 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("current_user");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1644:
/* Line 1464 of yacc.c */
#line 10996 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("session_user");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1645:
/* Line 1464 of yacc.c */
#line 11009 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("current_user");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1646:
/* Line 1464 of yacc.c */
#line 11022 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("current_database");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1647:
/* Line 1464 of yacc.c */
#line 11035 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("current_schema");
n->args = NIL;
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *)n;
}
break;
case 1648:
/* Line 1464 of yacc.c */
#line 11048 "gram.y"
{ (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); }
break;
case 1649:
/* Line 1464 of yacc.c */
#line 11050 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("date_part");
n->args = (yyvsp[(3) - (4)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1650:
/* Line 1464 of yacc.c */
#line 11063 "gram.y"
{
/* 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)
*/
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("overlay");
n->args = (yyvsp[(3) - (4)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1651:
/* Line 1464 of yacc.c */
#line 11081 "gram.y"
{
/* position(A in B) is converted to position(B, A) */
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("position");
n->args = (yyvsp[(3) - (4)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1652:
/* Line 1464 of yacc.c */
#line 11095 "gram.y"
{
/* substring(A from B for C) is converted to
* substring(A, B, C) - thomas 2000-11-28
*/
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("substring");
n->args = (yyvsp[(3) - (4)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1653:
/* Line 1464 of yacc.c */
#line 11111 "gram.y"
{
/* 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.
*/
FuncCall *n = makeNode(FuncCall);
/* Convert SystemTypeName() to SystemFuncName() even though
* at the moment they result in the same thing.
*/
n->funcname = SystemFuncName(((Value *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str);
n->args = list_make1((yyvsp[(3) - (6)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (6)]);
(yyval.node) = (Node *)n;
}
break;
case 1654:
/* Line 1464 of yacc.c */
#line 11133 "gram.y"
{
/* various trim expressions are defined in SQL92
* - thomas 1997-07-19
*/
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("btrim");
n->args = (yyvsp[(4) - (5)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1655:
/* Line 1464 of yacc.c */
#line 11149 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("ltrim");
n->args = (yyvsp[(4) - (5)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1656:
/* Line 1464 of yacc.c */
#line 11162 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("rtrim");
n->args = (yyvsp[(4) - (5)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1657:
/* Line 1464 of yacc.c */
#line 11175 "gram.y"
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("btrim");
n->args = (yyvsp[(3) - (4)].list);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)n;
}
break;
case 1658:
/* Line 1464 of yacc.c */
#line 11188 "gram.y"
{
(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]));
}
break;
case 1659:
/* Line 1464 of yacc.c */
#line 11192 "gram.y"
{
CoalesceExpr *c = makeNode(CoalesceExpr);
c->args = (yyvsp[(3) - (4)].list);
c->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)c;
}
break;
case 1660:
/* Line 1464 of yacc.c */
#line 11199 "gram.y"
{
MinMaxExpr *v = makeNode(MinMaxExpr);
v->args = (yyvsp[(3) - (4)].list);
v->op = IS_GREATEST;
v->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)v;
}
break;
case 1661:
/* Line 1464 of yacc.c */
#line 11207 "gram.y"
{
MinMaxExpr *v = makeNode(MinMaxExpr);
v->args = (yyvsp[(3) - (4)].list);
v->op = IS_LEAST;
v->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)v;
}
break;
case 1662:
/* Line 1464 of yacc.c */
#line 11215 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
}
break;
case 1663:
/* Line 1464 of yacc.c */
#line 11219 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)]));
}
break;
case 1664:
/* Line 1464 of yacc.c */
#line 11223 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)]));
}
break;
case 1665:
/* Line 1464 of yacc.c */
#line 11227 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)]));
}
break;
case 1666:
/* Line 1464 of yacc.c */
#line 11231 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)]));
}
break;
case 1667:
/* Line 1464 of yacc.c */
#line 11235 "gram.y"
{
/* xmlexists(A PASSING [BY REF] B [BY REF]) is
* converted to xmlexists(A, B)*/
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("xmlexists");
n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node));
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)n;
}
break;
case 1668:
/* Line 1464 of yacc.c */
#line 11250 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)]));
}
break;
case 1669:
/* Line 1464 of yacc.c */
#line 11254 "gram.y"
{
XmlExpr *x = (XmlExpr *)
makeXmlExpr(IS_XMLPARSE, NULL, NIL,
list_make2((yyvsp[(4) - (6)].node), makeBoolAConst((yyvsp[(5) - (6)].boolean), -1)),
(yylsp[(1) - (6)]));
x->xmloption = (yyvsp[(3) - (6)].ival);
(yyval.node) = (Node *)x;
}
break;
case 1670:
/* Line 1464 of yacc.c */
#line 11263 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)]));
}
break;
case 1671:
/* Line 1464 of yacc.c */
#line 11267 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)]));
}
break;
case 1672:
/* Line 1464 of yacc.c */
#line 11271 "gram.y"
{
(yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL,
list_make3((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)]));
}
break;
case 1673:
/* Line 1464 of yacc.c */
#line 11276 "gram.y"
{
XmlSerialize *n = makeNode(XmlSerialize);
n->xmloption = (yyvsp[(3) - (7)].ival);
n->expr = (yyvsp[(4) - (7)].node);
n->typeName = (yyvsp[(6) - (7)].typnam);
n->location = (yylsp[(1) - (7)]);
(yyval.node) = (Node *)n;
}
break;
case 1674:
/* Line 1464 of yacc.c */
#line 11290 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1675:
/* Line 1464 of yacc.c */
#line 11292 "gram.y"
{ (yyval.node) = makeNullAConst(-1); }
break;
case 1676:
/* Line 1464 of yacc.c */
#line 11296 "gram.y"
{ (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); }
break;
case 1677:
/* Line 1464 of yacc.c */
#line 11298 "gram.y"
{ (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); }
break;
case 1678:
/* Line 1464 of yacc.c */
#line 11300 "gram.y"
{ (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); }
break;
case 1679:
/* Line 1464 of yacc.c */
#line 11302 "gram.y"
{ (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); }
break;
case 1680:
/* Line 1464 of yacc.c */
#line 11305 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 1681:
/* Line 1464 of yacc.c */
#line 11308 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); }
break;
case 1682:
/* Line 1464 of yacc.c */
#line 11309 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); }
break;
case 1683:
/* Line 1464 of yacc.c */
#line 11313 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = (yyvsp[(3) - (3)].str);
(yyval.target)->indirection = NIL;
(yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node);
(yyval.target)->location = (yylsp[(1) - (3)]);
}
break;
case 1684:
/* Line 1464 of yacc.c */
#line 11321 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = NULL;
(yyval.target)->indirection = NIL;
(yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node);
(yyval.target)->location = (yylsp[(1) - (1)]);
}
break;
case 1685:
/* Line 1464 of yacc.c */
#line 11330 "gram.y"
{ (yyval.ival) = XMLOPTION_DOCUMENT; }
break;
case 1686:
/* Line 1464 of yacc.c */
#line 11331 "gram.y"
{ (yyval.ival) = XMLOPTION_CONTENT; }
break;
case 1687:
/* Line 1464 of yacc.c */
#line 11334 "gram.y"
{ (yyval.boolean) = TRUE; }
break;
case 1688:
/* Line 1464 of yacc.c */
#line 11335 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1689:
/* Line 1464 of yacc.c */
#line 11336 "gram.y"
{ (yyval.boolean) = FALSE; }
break;
case 1690:
/* Line 1464 of yacc.c */
#line 11342 "gram.y"
{
(yyval.node) = (yyvsp[(2) - (2)].node);
}
break;
case 1691:
/* Line 1464 of yacc.c */
#line 11346 "gram.y"
{
(yyval.node) = (yyvsp[(2) - (4)].node);
}
break;
case 1692:
/* Line 1464 of yacc.c */
#line 11350 "gram.y"
{
(yyval.node) = (yyvsp[(4) - (4)].node);
}
break;
case 1693:
/* Line 1464 of yacc.c */
#line 11354 "gram.y"
{
(yyval.node) = (yyvsp[(4) - (6)].node);
}
break;
case 1694:
/* Line 1464 of yacc.c */
#line 11364 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 1695:
/* Line 1464 of yacc.c */
#line 11365 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1696:
/* Line 1464 of yacc.c */
#line 11369 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); }
break;
case 1697:
/* Line 1464 of yacc.c */
#line 11371 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); }
break;
case 1698:
/* Line 1464 of yacc.c */
#line 11376 "gram.y"
{
WindowDef *n = (yyvsp[(3) - (3)].windef);
n->name = (yyvsp[(1) - (3)].str);
(yyval.windef) = n;
}
break;
case 1699:
/* Line 1464 of yacc.c */
#line 11384 "gram.y"
{ (yyval.windef) = (yyvsp[(2) - (2)].windef); }
break;
case 1700:
/* Line 1464 of yacc.c */
#line 11386 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->name = (yyvsp[(2) - (2)].str);
n->refname = NULL;
n->partitionClause = NIL;
n->orderClause = NIL;
n->frameOptions = FRAMEOPTION_DEFAULTS;
n->startOffset = NULL;
n->endOffset = NULL;
n->location = (yylsp[(2) - (2)]);
(yyval.windef) = n;
}
break;
case 1701:
/* Line 1464 of yacc.c */
#line 11399 "gram.y"
{ (yyval.windef) = NULL; }
break;
case 1702:
/* Line 1464 of yacc.c */
#line 11404 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->name = NULL;
n->refname = (yyvsp[(2) - (6)].str);
n->partitionClause = (yyvsp[(3) - (6)].list);
n->orderClause = (yyvsp[(4) - (6)].list);
/* copy relevant fields of opt_frame_clause */
n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions;
n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset;
n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset;
n->location = (yylsp[(1) - (6)]);
(yyval.windef) = n;
}
break;
case 1703:
/* Line 1464 of yacc.c */
#line 11429 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1704:
/* Line 1464 of yacc.c */
#line 11430 "gram.y"
{ (yyval.str) = NULL; }
break;
case 1705:
/* Line 1464 of yacc.c */
#line 11433 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (3)].list); }
break;
case 1706:
/* Line 1464 of yacc.c */
#line 11434 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1707:
/* Line 1464 of yacc.c */
#line 11446 "gram.y"
{
WindowDef *n = (yyvsp[(2) - (2)].windef);
n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
if (n->frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING |
FRAMEOPTION_END_VALUE_PRECEDING))
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("RANGE PRECEDING is only supported with UNBOUNDED"),
parser_errposition((yylsp[(1) - (2)]))));
if (n->frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING |
FRAMEOPTION_END_VALUE_FOLLOWING))
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"),
parser_errposition((yylsp[(1) - (2)]))));
(yyval.windef) = n;
}
break;
case 1708:
/* Line 1464 of yacc.c */
#line 11464 "gram.y"
{
WindowDef *n = (yyvsp[(2) - (2)].windef);
n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
(yyval.windef) = n;
}
break;
case 1709:
/* Line 1464 of yacc.c */
#line 11470 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->frameOptions = FRAMEOPTION_DEFAULTS;
n->startOffset = NULL;
n->endOffset = NULL;
(yyval.windef) = n;
}
break;
case 1710:
/* Line 1464 of yacc.c */
#line 11480 "gram.y"
{
WindowDef *n = (yyvsp[(1) - (1)].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[(1) - (1)]))));
if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING)
ereport(ERROR,
(errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame starting from following row cannot end with current row"),
parser_errposition((yylsp[(1) - (1)]))));
n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
(yyval.windef) = n;
}
break;
case 1711:
/* Line 1464 of yacc.c */
#line 11497 "gram.y"
{
WindowDef *n1 = (yyvsp[(2) - (4)].windef);
WindowDef *n2 = (yyvsp[(4) - (4)].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) - (4)]))));
if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
ereport(ERROR,
(errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame end cannot be UNBOUNDED PRECEDING"),
parser_errposition((yylsp[(4) - (4)]))));
if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
(frameOptions & FRAMEOPTION_END_VALUE_PRECEDING))
ereport(ERROR,
(errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame starting from current row cannot have preceding rows"),
parser_errposition((yylsp[(4) - (4)]))));
if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) &&
(frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING |
FRAMEOPTION_END_CURRENT_ROW)))
ereport(ERROR,
(errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame starting from following row cannot have preceding rows"),
parser_errposition((yylsp[(4) - (4)]))));
n1->frameOptions = frameOptions;
n1->endOffset = n2->startOffset;
(yyval.windef) = n1;
}
break;
case 1712:
/* Line 1464 of yacc.c */
#line 11542 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
n->startOffset = NULL;
n->endOffset = NULL;
(yyval.windef) = n;
}
break;
case 1713:
/* Line 1464 of yacc.c */
#line 11550 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
n->startOffset = NULL;
n->endOffset = NULL;
(yyval.windef) = n;
}
break;
case 1714:
/* Line 1464 of yacc.c */
#line 11558 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
n->startOffset = NULL;
n->endOffset = NULL;
(yyval.windef) = n;
}
break;
case 1715:
/* Line 1464 of yacc.c */
#line 11566 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING;
n->startOffset = (yyvsp[(1) - (2)].node);
n->endOffset = NULL;
(yyval.windef) = n;
}
break;
case 1716:
/* Line 1464 of yacc.c */
#line 11574 "gram.y"
{
WindowDef *n = makeNode(WindowDef);
n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING;
n->startOffset = (yyvsp[(1) - (2)].node);
n->endOffset = NULL;
(yyval.windef) = n;
}
break;
case 1717:
/* Line 1464 of yacc.c */
#line 11594 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 1718:
/* Line 1464 of yacc.c */
#line 11595 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1719:
/* Line 1464 of yacc.c */
#line 11596 "gram.y"
{ (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); }
break;
case 1720:
/* Line 1464 of yacc.c */
#line 11599 "gram.y"
{ (yyval.ival) = ANY_SUBLINK; }
break;
case 1721:
/* Line 1464 of yacc.c */
#line 11600 "gram.y"
{ (yyval.ival) = ANY_SUBLINK; }
break;
case 1722:
/* Line 1464 of yacc.c */
#line 11601 "gram.y"
{ (yyval.ival) = ALL_SUBLINK; }
break;
case 1723:
/* Line 1464 of yacc.c */
#line 11604 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1724:
/* Line 1464 of yacc.c */
#line 11605 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1725:
/* Line 1464 of yacc.c */
#line 11608 "gram.y"
{ (yyval.str) = "+"; }
break;
case 1726:
/* Line 1464 of yacc.c */
#line 11609 "gram.y"
{ (yyval.str) = "-"; }
break;
case 1727:
/* Line 1464 of yacc.c */
#line 11610 "gram.y"
{ (yyval.str) = "*"; }
break;
case 1728:
/* Line 1464 of yacc.c */
#line 11611 "gram.y"
{ (yyval.str) = "/"; }
break;
case 1729:
/* Line 1464 of yacc.c */
#line 11612 "gram.y"
{ (yyval.str) = "%"; }
break;
case 1730:
/* Line 1464 of yacc.c */
#line 11613 "gram.y"
{ (yyval.str) = "^"; }
break;
case 1731:
/* Line 1464 of yacc.c */
#line 11614 "gram.y"
{ (yyval.str) = "<"; }
break;
case 1732:
/* Line 1464 of yacc.c */
#line 11615 "gram.y"
{ (yyval.str) = ">"; }
break;
case 1733:
/* Line 1464 of yacc.c */
#line 11616 "gram.y"
{ (yyval.str) = "="; }
break;
case 1734:
/* Line 1464 of yacc.c */
#line 11620 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 1735:
/* Line 1464 of yacc.c */
#line 11622 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 1736:
/* Line 1464 of yacc.c */
#line 11627 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 1737:
/* Line 1464 of yacc.c */
#line 11629 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 1738:
/* Line 1464 of yacc.c */
#line 11634 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 1739:
/* Line 1464 of yacc.c */
#line 11636 "gram.y"
{ (yyval.list) = (yyvsp[(3) - (4)].list); }
break;
case 1740:
/* Line 1464 of yacc.c */
#line 11638 "gram.y"
{ (yyval.list) = list_make1(makeString("~~")); }
break;
case 1741:
/* Line 1464 of yacc.c */
#line 11640 "gram.y"
{ (yyval.list) = list_make1(makeString("!~~")); }
break;
case 1742:
/* Line 1464 of yacc.c */
#line 11642 "gram.y"
{ (yyval.list) = list_make1(makeString("~~*")); }
break;
case 1743:
/* Line 1464 of yacc.c */
#line 11644 "gram.y"
{ (yyval.list) = list_make1(makeString("!~~*")); }
break;
case 1744:
/* Line 1464 of yacc.c */
#line 11656 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 1745:
/* Line 1464 of yacc.c */
#line 11660 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 1746:
/* Line 1464 of yacc.c */
#line 11667 "gram.y"
{
(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
}
break;
case 1747:
/* Line 1464 of yacc.c */
#line 11671 "gram.y"
{
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 1748:
/* Line 1464 of yacc.c */
#line 11677 "gram.y"
{
(yyval.node) = (yyvsp[(1) - (1)].node);
}
break;
case 1749:
/* Line 1464 of yacc.c */
#line 11681 "gram.y"
{
NamedArgExpr *na = makeNode(NamedArgExpr);
na->name = (yyvsp[(1) - (3)].str);
na->arg = (Expr *) (yyvsp[(3) - (3)].node);
na->argnumber = -1; /* until determined */
na->location = (yylsp[(1) - (3)]);
(yyval.node) = (Node *) na;
}
break;
case 1750:
/* Line 1464 of yacc.c */
#line 11691 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); }
break;
case 1751:
/* Line 1464 of yacc.c */
#line 11692 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); }
break;
case 1752:
/* Line 1464 of yacc.c */
#line 11696 "gram.y"
{
(yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]));
}
break;
case 1753:
/* Line 1464 of yacc.c */
#line 11700 "gram.y"
{
(yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]));
}
break;
case 1754:
/* Line 1464 of yacc.c */
#line 11704 "gram.y"
{
(yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)]));
}
break;
case 1755:
/* Line 1464 of yacc.c */
#line 11709 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1756:
/* Line 1464 of yacc.c */
#line 11710 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 1757:
/* Line 1464 of yacc.c */
#line 11716 "gram.y"
{
(yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
}
break;
case 1758:
/* Line 1464 of yacc.c */
#line 11719 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1759:
/* Line 1464 of yacc.c */
#line 11726 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1760:
/* Line 1464 of yacc.c */
#line 11727 "gram.y"
{ (yyval.str) = "year"; }
break;
case 1761:
/* Line 1464 of yacc.c */
#line 11728 "gram.y"
{ (yyval.str) = "month"; }
break;
case 1762:
/* Line 1464 of yacc.c */
#line 11729 "gram.y"
{ (yyval.str) = "day"; }
break;
case 1763:
/* Line 1464 of yacc.c */
#line 11730 "gram.y"
{ (yyval.str) = "hour"; }
break;
case 1764:
/* Line 1464 of yacc.c */
#line 11731 "gram.y"
{ (yyval.str) = "minute"; }
break;
case 1765:
/* Line 1464 of yacc.c */
#line 11732 "gram.y"
{ (yyval.str) = "second"; }
break;
case 1766:
/* Line 1464 of yacc.c */
#line 11733 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1767:
/* Line 1464 of yacc.c */
#line 11744 "gram.y"
{
(yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
}
break;
case 1768:
/* Line 1464 of yacc.c */
#line 11748 "gram.y"
{
(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
}
break;
case 1769:
/* Line 1464 of yacc.c */
#line 11755 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1770:
/* Line 1464 of yacc.c */
#line 11761 "gram.y"
{ (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); }
break;
case 1771:
/* Line 1464 of yacc.c */
#line 11762 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1772:
/* Line 1464 of yacc.c */
#line 11779 "gram.y"
{
(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
}
break;
case 1773:
/* Line 1464 of yacc.c */
#line 11783 "gram.y"
{
/* not legal per SQL99, but might as well allow it */
(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node));
}
break;
case 1774:
/* Line 1464 of yacc.c */
#line 11788 "gram.y"
{
(yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
}
break;
case 1775:
/* Line 1464 of yacc.c */
#line 11792 "gram.y"
{
/*
* 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) - (2)].node), makeIntConst(1, -1),
makeTypeCast((yyvsp[(2) - (2)].node),
SystemTypeName("int4"), -1));
}
break;
case 1776:
/* Line 1464 of yacc.c */
#line 11807 "gram.y"
{
(yyval.list) = (yyvsp[(1) - (1)].list);
}
break;
case 1777:
/* Line 1464 of yacc.c */
#line 11811 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1778:
/* Line 1464 of yacc.c */
#line 11815 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1779:
/* Line 1464 of yacc.c */
#line 11818 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1780:
/* Line 1464 of yacc.c */
#line 11821 "gram.y"
{ (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); }
break;
case 1781:
/* Line 1464 of yacc.c */
#line 11822 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (2)].list); }
break;
case 1782:
/* Line 1464 of yacc.c */
#line 11823 "gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 1783:
/* Line 1464 of yacc.c */
#line 11827 "gram.y"
{
SubLink *n = makeNode(SubLink);
n->subselect = (yyvsp[(1) - (1)].node);
/* other fields will be filled later */
(yyval.node) = (Node *)n;
}
break;
case 1784:
/* Line 1464 of yacc.c */
#line 11833 "gram.y"
{ (yyval.node) = (Node *)(yyvsp[(2) - (3)].list); }
break;
case 1785:
/* Line 1464 of yacc.c */
#line 11844 "gram.y"
{
CaseExpr *c = makeNode(CaseExpr);
c->casetype = InvalidOid; /* not analyzed yet */
c->arg = (Expr *) (yyvsp[(2) - (5)].node);
c->args = (yyvsp[(3) - (5)].list);
c->defresult = (Expr *) (yyvsp[(4) - (5)].node);
c->location = (yylsp[(1) - (5)]);
(yyval.node) = (Node *)c;
}
break;
case 1786:
/* Line 1464 of yacc.c */
#line 11857 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1787:
/* Line 1464 of yacc.c */
#line 11858 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); }
break;
case 1788:
/* Line 1464 of yacc.c */
#line 11863 "gram.y"
{
CaseWhen *w = makeNode(CaseWhen);
w->expr = (Expr *) (yyvsp[(2) - (4)].node);
w->result = (Expr *) (yyvsp[(4) - (4)].node);
w->location = (yylsp[(1) - (4)]);
(yyval.node) = (Node *)w;
}
break;
case 1789:
/* Line 1464 of yacc.c */
#line 11873 "gram.y"
{ (yyval.node) = (yyvsp[(2) - (2)].node); }
break;
case 1790:
/* Line 1464 of yacc.c */
#line 11874 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1791:
/* Line 1464 of yacc.c */
#line 11877 "gram.y"
{ (yyval.node) = (yyvsp[(1) - (1)].node); }
break;
case 1792:
/* Line 1464 of yacc.c */
#line 11878 "gram.y"
{ (yyval.node) = NULL; }
break;
case 1793:
/* Line 1464 of yacc.c */
#line 11882 "gram.y"
{
(yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
}
break;
case 1794:
/* Line 1464 of yacc.c */
#line 11886 "gram.y"
{
(yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
}
break;
case 1795:
/* Line 1464 of yacc.c */
#line 11893 "gram.y"
{
(yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str));
}
break;
case 1796:
/* Line 1464 of yacc.c */
#line 11897 "gram.y"
{
(yyval.node) = (Node *) makeNode(A_Star);
}
break;
case 1797:
/* Line 1464 of yacc.c */
#line 11901 "gram.y"
{
A_Indices *ai = makeNode(A_Indices);
ai->lidx = NULL;
ai->uidx = (yyvsp[(2) - (3)].node);
(yyval.node) = (Node *) ai;
}
break;
case 1798:
/* Line 1464 of yacc.c */
#line 11908 "gram.y"
{
A_Indices *ai = makeNode(A_Indices);
ai->lidx = (yyvsp[(2) - (5)].node);
ai->uidx = (yyvsp[(4) - (5)].node);
(yyval.node) = (Node *) ai;
}
break;
case 1799:
/* Line 1464 of yacc.c */
#line 11917 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1800:
/* Line 1464 of yacc.c */
#line 11918 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); }
break;
case 1801:
/* Line 1464 of yacc.c */
#line 11922 "gram.y"
{ (yyval.list) = NIL; }
break;
case 1802:
/* Line 1464 of yacc.c */
#line 11923 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); }
break;
case 1805:
/* Line 1464 of yacc.c */
#line 11938 "gram.y"
{ (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); }
break;
case 1806:
/* Line 1464 of yacc.c */
#line 11940 "gram.y"
{
SetToDefault *n = makeNode(SetToDefault);
n->location = (yylsp[(1) - (1)]);
(yyval.node) = (Node *) n;
}
break;
case 1807:
/* Line 1464 of yacc.c */
#line 11948 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); }
break;
case 1808:
/* Line 1464 of yacc.c */
#line 11949 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); }
break;
case 1809:
/* Line 1464 of yacc.c */
#line 11957 "gram.y"
{ (yyval.list) = (yyvsp[(2) - (3)].list); }
break;
case 1810:
/* Line 1464 of yacc.c */
#line 11968 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); }
break;
case 1811:
/* Line 1464 of yacc.c */
#line 11969 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); }
break;
case 1812:
/* Line 1464 of yacc.c */
#line 11973 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = (yyvsp[(3) - (3)].str);
(yyval.target)->indirection = NIL;
(yyval.target)->val = (Node *)(yyvsp[(1) - (3)].node);
(yyval.target)->location = (yylsp[(1) - (3)]);
}
break;
case 1813:
/* Line 1464 of yacc.c */
#line 11989 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = (yyvsp[(2) - (2)].str);
(yyval.target)->indirection = NIL;
(yyval.target)->val = (Node *)(yyvsp[(1) - (2)].node);
(yyval.target)->location = (yylsp[(1) - (2)]);
}
break;
case 1814:
/* Line 1464 of yacc.c */
#line 11997 "gram.y"
{
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = NULL;
(yyval.target)->indirection = NIL;
(yyval.target)->val = (Node *)(yyvsp[(1) - (1)].node);
(yyval.target)->location = (yylsp[(1) - (1)]);
}
break;
case 1815:
/* Line 1464 of yacc.c */
#line 12005 "gram.y"
{
ColumnRef *n = makeNode(ColumnRef);
n->fields = list_make1(makeNode(A_Star));
n->location = (yylsp[(1) - (1)]);
(yyval.target) = makeNode(ResTarget);
(yyval.target)->name = NULL;
(yyval.target)->indirection = NIL;
(yyval.target)->val = (Node *)n;
(yyval.target)->location = (yylsp[(1) - (1)]);
}
break;
case 1816:
/* Line 1464 of yacc.c */
#line 12026 "gram.y"
{ (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); }
break;
case 1817:
/* Line 1464 of yacc.c */
#line 12027 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); }
break;
case 1818:
/* Line 1464 of yacc.c */
#line 12039 "gram.y"
{
(yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 1819:
/* Line 1464 of yacc.c */
#line 12043 "gram.y"
{
check_qualified_name((yyvsp[(2) - (2)].list), yyscanner);
(yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)]));
switch (list_length((yyvsp[(2) - (2)].list)))
{
case 1:
(yyval.range)->catalogname = NULL;
(yyval.range)->schemaname = (yyvsp[(1) - (2)].str);
(yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list)));
break;
case 2:
(yyval.range)->catalogname = (yyvsp[(1) - (2)].str);
(yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list)));
(yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list)));
break;
default:
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("improper qualified name (too many dotted names): %s",
NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))),
parser_errposition((yylsp[(1) - (2)]))));
break;
}
}
break;
case 1820:
/* Line 1464 of yacc.c */
#line 12070 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 1821:
/* Line 1464 of yacc.c */
#line 12072 "gram.y"
{ (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); }
break;
case 1822:
/* Line 1464 of yacc.c */
#line 12076 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1823:
/* Line 1464 of yacc.c */
#line 12079 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1824:
/* Line 1464 of yacc.c */
#line 12082 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1825:
/* Line 1464 of yacc.c */
#line 12084 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1826:
/* Line 1464 of yacc.c */
#line 12086 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1827:
/* Line 1464 of yacc.c */
#line 12088 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1828:
/* Line 1464 of yacc.c */
#line 12099 "gram.y"
{ (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); }
break;
case 1829:
/* Line 1464 of yacc.c */
#line 12101 "gram.y"
{
(yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)),
yyscanner);
}
break;
case 1830:
/* Line 1464 of yacc.c */
#line 12112 "gram.y"
{
(yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
}
break;
case 1831:
/* Line 1464 of yacc.c */
#line 12116 "gram.y"
{
(yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 1832:
/* Line 1464 of yacc.c */
#line 12120 "gram.y"
{
(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 1833:
/* Line 1464 of yacc.c */
#line 12124 "gram.y"
{
(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 1834:
/* Line 1464 of yacc.c */
#line 12128 "gram.y"
{
/* This is a bit constant per SQL99:
* Without Feature F511, "BIT data type",
* a shall not be a
* or a .
*/
(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
}
break;
case 1835:
/* Line 1464 of yacc.c */
#line 12137 "gram.y"
{
/* generic type 'literal' syntax */
TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
t->location = (yylsp[(1) - (2)]);
(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t);
}
break;
case 1836:
/* Line 1464 of yacc.c */
#line 12144 "gram.y"
{
/* generic syntax with a type modifier */
TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (5)].list));
ListCell *lc;
/*
* We must use func_arg_list in the production to avoid
* reduce/reduce conflicts, but we don't actually wish
* to allow NamedArgExpr in this context.
*/
foreach(lc, (yyvsp[(3) - (5)].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)));
}
t->typmods = (yyvsp[(3) - (5)].list);
t->location = (yylsp[(1) - (5)]);
(yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t);
}
break;
case 1837:
/* Line 1464 of yacc.c */
#line 12169 "gram.y"
{
(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
}
break;
case 1838:
/* Line 1464 of yacc.c */
#line 12173 "gram.y"
{
TypeName *t = (yyvsp[(1) - (3)].typnam);
t->typmods = (yyvsp[(3) - (3)].list);
(yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
}
break;
case 1839:
/* Line 1464 of yacc.c */
#line 12179 "gram.y"
{
TypeName *t = (yyvsp[(1) - (6)].typnam);
if ((yyvsp[(6) - (6)].list) != NIL)
{
if (list_length((yyvsp[(6) - (6)].list)) != 1)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("interval precision specified twice"),
parser_errposition((yylsp[(1) - (6)]))));
t->typmods = lappend((yyvsp[(6) - (6)].list), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
}
else
t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
(yyval.node) = makeStringConstCast((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]), t);
}
break;
case 1840:
/* Line 1464 of yacc.c */
#line 12196 "gram.y"
{
(yyval.node) = makeBoolAConst(TRUE, (yylsp[(1) - (1)]));
}
break;
case 1841:
/* Line 1464 of yacc.c */
#line 12200 "gram.y"
{
(yyval.node) = makeBoolAConst(FALSE, (yylsp[(1) - (1)]));
}
break;
case 1842:
/* Line 1464 of yacc.c */
#line 12204 "gram.y"
{
(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
}
break;
case 1843:
/* Line 1464 of yacc.c */
#line 12209 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (1)].ival); }
break;
case 1844:
/* Line 1464 of yacc.c */
#line 12210 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1845:
/* Line 1464 of yacc.c */
#line 12211 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1846:
/* Line 1464 of yacc.c */
#line 12213 "gram.y"
{ (yyval.ival) = (yyvsp[(1) - (1)].ival); }
break;
case 1847:
/* Line 1464 of yacc.c */
#line 12214 "gram.y"
{ (yyval.ival) = + (yyvsp[(2) - (2)].ival); }
break;
case 1848:
/* Line 1464 of yacc.c */
#line 12215 "gram.y"
{ (yyval.ival) = - (yyvsp[(2) - (2)].ival); }
break;
case 1849:
/* Line 1464 of yacc.c */
#line 12231 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1850:
/* Line 1464 of yacc.c */
#line 12232 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1851:
/* Line 1464 of yacc.c */
#line 12233 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1852:
/* Line 1464 of yacc.c */
#line 12238 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1853:
/* Line 1464 of yacc.c */
#line 12239 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1854:
/* Line 1464 of yacc.c */
#line 12240 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1855:
/* Line 1464 of yacc.c */
#line 12246 "gram.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); }
break;
case 1856:
/* Line 1464 of yacc.c */
#line 12247 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1857:
/* Line 1464 of yacc.c */
#line 12248 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1858:
/* Line 1464 of yacc.c */
#line 12249 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
case 1859:
/* Line 1464 of yacc.c */
#line 12250 "gram.y"
{ (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); }
break;
/* Line 1464 of yacc.c */
#line 38175 "gram.c"
default: break;
}
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. */
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
++yynerrs;
#if ! YYERROR_VERBOSE
yyerror (&yylloc, yyscanner, YY_("syntax error"));
#else
{
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
{
YYSIZE_T yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
}
}
if (0 < yysize && yysize <= yymsg_alloc)
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (&yylloc, yyscanner, yymsg);
}
else
{
yyerror (&yylloc, yyscanner, YY_("syntax error"));
if (yysize != 0)
goto yyexhaustedlab;
}
}
#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 like GCC when the user code never invokes
YYERROR and the label yyerrorlab therefore never appears in user
code. */
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
yyerror_range[1] = yylsp[1-yylen];
/* Do not reclaim the symbols of the rule which 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 (yyn != YYPACT_NINF)
{
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);
}
*++yyvsp = yylval;
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:
if (yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval, &yylloc, yyscanner);
/* Do not reclaim the symbols of the rule which 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
/* Make sure YYID is used. */
return YYID (yyresult);
}
/* Line 1684 of yacc.c */
#line 12703 "gram.y"
/*
* 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 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);
}
/* makeOverlaps()
* Create and populate a FuncCall node to support the OVERLAPS operator.
*/
static FuncCall *
makeOverlaps(List *largs, List *rargs, int location, core_yyscan_t yyscanner)
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("overlaps");
if (list_length(largs) == 1)
largs = lappend(largs, largs);
else if (list_length(largs) != 2)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("wrong number of parameters on left side of OVERLAPS expression"),
parser_errposition(location)));
if (list_length(rargs) == 1)
rargs = lappend(rargs, rargs);
else if (list_length(rargs) != 2)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("wrong number of parameters on right side of OVERLAPS expression"),
parser_errposition(location)));
n->args = list_concat(largs, rargs);
n->agg_order = NIL;
n->agg_star = FALSE;
n->agg_distinct = FALSE;
n->func_variadic = FALSE;
n->over = NULL;
n->location = location;
return n;
}
/* 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;
}
/* 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
{
char *newval = (char *) palloc(strlen(oldval) + 2);
*newval = '-';
strcpy(newval+1, oldval);
v->val.str = newval;
}
}
static Node *
makeAArrayExpr(List *elements, int location)
{
A_ArrayExpr *n = makeNode(A_ArrayExpr);
n->elements = elements;
n->location = location;
return (Node *) n;
}
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 = (TypeName *) 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)));
}
}
/* 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 */
}
/*
* Create a DefElem setting "oids" to the specified value.
*/
static DefElem *
defWithOids(bool value)
{
DefElem *f = makeNode(DefElem);
f->defname = "oids";
f->arg = (Node *) makeInteger(value);
return f;
}
/*
* Must undefine this stuff before including scan.c, since it has different
* definitions for these macros.
*/
#undef yyerror
#undef yylval
#undef yylloc
#include "scan.c"